定义 XSD 时,您可以选择将类型定义为嵌套类型或全局类型 (complexType)。
我知道全局类型在态射或元素重用方面更有用。
但是,如果您有一个大数据模型,则必须为每个级别定义一个全局 complexType,然后创建一个引用全局类型的元素。
嵌套
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="name">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname"/>
<xs:element name="lastname"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="address">
<xs:complexType>
<xs:sequence>
<xs:element name="street"/>
<xs:element name="city"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
全球的
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="nameType"/>
<xs:element name="address" type="addressType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="nameType">
<xs:sequence>
<xs:element name="firstname"/>
<xs:element name="lastname"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="addressType">
<xs:sequence>
<xs:element name="street"/>
<xs:element name="city"/>
</xs:sequence>
</xs:complexType>
因此,我的问题是:您何时使用嵌套类型而不是使它们成为全局类型?
对于任何感兴趣的人:我的问题在某种程度上与这个问题有关(XML 属性与元素)。