2016-05-09 4 views
2

Зонирование:CVC-тип_данных-valid.1.2.1: 'mylns: XSI' не является допустимым значением 'NCName'

<xs:complexType> 
    <xs:sequence> 
    <xs:element ref="FileCreationList"/> 
    <xs:element ref="DivestedExample"/> 
    </xs:sequence> 
    <xs:attribute name="mylns:xsi" type="xs:string"/> 
    <xs:attribute name="xsi:schemaLocation" type="xs:string"/> 
</xs:complexType> 

Ошибка:

Multiple annotations found at this line: 
    - s4s-att-invalid-value: Invalid attribute value for 'name' in element 'attribute'. Recorded reason: cvc-datatype-valid.1.2.1: 'mylns:xsi' is not a valid 
    value for 'NCName'. 
    - src-attribute.3.1: One of 'ref' or 'name' must be present in a local attribute declaration. 
    - s4s-elt-invalid-content.1: The content of '#AnonType_File' is invalid. Element 'attribute' is invalid, misplaced, or occurs too often. 

ответ

2

атрибутов декларации имен должны быть NCNames (не-колонизировали имена):

NCName ::= (Letter | '_') (NCNameChar)* /* An XML Name, minus the ":" */ 

Удалите двоеточия от mylns:xsi и xsi:schemaLocation, чтобы устранить ошибку.

Примечания:

  • Не включать префикс пространства имен в качестве XSD декларации элемента или имя атрибута.
  • Не объявлять xsi:schemaLocation как атрибут в XSD; объявить и ссылаться на http://www.w3.org/2001/XMLSchema-instance имен:

    <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://www.example.com/name try.xsd"/> 
    
0

Вообще, если вы хотите объявить элемент, который использует атрибуты в другом пространстве имен, то вам нужно (а) объявить эти атрибуты в отдельном XSD документ с другим целевым пространством имен, (b) использовать xs: import для импорта этого документа XSD и (c) ссылаться на объявления атрибутов, используя <xs:attribute ref="somens:localname"/>.

Однако:

(I) декларации пространств имен (Xmlns: хх = «URI») не считаются атрибутами и не должны быть объявлены (на самом деле, не должны быть объявлены) в схеме

(ii) Атрибуты в пространстве имен «xsi» являются специальными - они автоматически разрешаются для каждого элемента и не должны быть объявлены в схеме.