架构:
<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.
答案 0 :(得分:3)
属性名称声明必须是NCNames(非殖民化名称):
NCName ::= (Letter | '_') (NCNameChar)* /* An XML Name, minus the ":" */
从mylns:xsi
和xsi:schemaLocation
中删除冒号以消除错误。
备注强>:
不要将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"/>
答案 1 :(得分:0)
通常,如果要声明在不同命名空间中使用属性的元素,则需要(a)在单独的XSD文档中使用不同的targetNamespace声明这些属性,(b)使用xs:import导入该XSD文档,以及(c)使用<xs:attribute ref="somens:localname"/>
引用属性声明。
然而:
(i)名称空间声明(xmlns:xx =“uri”)不被视为属性,不需要在模式中声明(实际上,不得声明)
(ii)“xsi”命名空间中的属性是特殊的 - 它们在每个元素上自动被允许,不应在模式中声明。