cvc-complex-type.2.4.a: 发现以元素 'xs:attribute' 开头的无效内容
cvc-complex-type.2.4.a: Invalid content was found starting with element 'xs:attribute'
我对 XML 和 XSD 很陌生,只是想学习基础知识。谁能给我解释一下为什么这段代码会出错。
<?xml version="1.0"?>
<xs:schema version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="DreamHomes">
<xs:complexType>
<xs:sequence>
<xs:element name ="Branch">
<xs:complexType>
<xs:attribute name ="branchNo" type="xs:string" default="1"/>
<xs:sequence>
<xs:element name="Street">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
错误与我的属性标记有关,因为当我删除它时我没有错误。为什么这里会出现这个错误?
XSD
xs:attribute
声明必须出现在 xs:sequence
之后 xs:complexType
:
<?xml version="1.0"?>
<xs:schema version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="DreamHomes">
<xs:complexType>
<xs:sequence>
<xs:element name="Branch">
<xs:complexType>
<xs:sequence>
<xs:element name="Street">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="branchNo" type="xs:string" default="1"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
样本XML
根据上述 XSD 以下 XML 有效:
<DreamHomes>
<Branch branchNo="2">
<Street>123 Main</Street>
</Branch>
</DreamHomes>
我对 XML 和 XSD 很陌生,只是想学习基础知识。谁能给我解释一下为什么这段代码会出错。
<?xml version="1.0"?>
<xs:schema version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="DreamHomes">
<xs:complexType>
<xs:sequence>
<xs:element name ="Branch">
<xs:complexType>
<xs:attribute name ="branchNo" type="xs:string" default="1"/>
<xs:sequence>
<xs:element name="Street">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
错误与我的属性标记有关,因为当我删除它时我没有错误。为什么这里会出现这个错误?
XSD
xs:attribute
声明必须出现在 xs:sequence
之后 xs:complexType
:
<?xml version="1.0"?>
<xs:schema version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="DreamHomes">
<xs:complexType>
<xs:sequence>
<xs:element name="Branch">
<xs:complexType>
<xs:sequence>
<xs:element name="Street">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="branchNo" type="xs:string" default="1"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
样本XML
根据上述 XSD 以下 XML 有效:
<DreamHomes>
<Branch branchNo="2">
<Street>123 Main</Street>
</Branch>
</DreamHomes>