由于我的 XSD 不适用于 Visual Studio 2010,我用它来生成一个。mine 和 Generated 之间的区别是层次结构?我使用 dtype 来调用 complexetypes。为什么那行不通?
视觉工作室版本:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="top.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="top">
<xs:complexType>
<xs:sequence>
<xs:element name="child1">
<xs:complexType>
<xs:attribute name="attribute1" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="child2">
<xs:complexType>
<xs:attribute name="attribute2" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我个人觉得我的版本很整洁,但出现了一个错误,此时 type 不能用作参考:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="top.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="top">
<xs:complexType>
<xs:sequence>
<xs:element name="chield1" type="chield1" />
<xs:element name="chield2" type="chield2" />
</xs:sequence>
</xs:element>
<xs:complexType name="chield1">
<xs:attribute name="attribute1" type="xs:string" />
</xs:complexType>
<xs:complexType name="chield2">
<xs:attribute name="attribute2" type="xs:string" />
</xs:complexType>
</xs:schema>