我是xsd规范领域的新手,我需要stackoverflow社区的帮助。我想要做的是定义一个类别层次结构。
示例:
我如何在xsd规范中定义它? 也许有一些最佳实践解决方案。
克里斯
我试图像这样指定它。但我不确定这是否是一种切实可行的方法。
<xs:element name="category">
<xs:complexType>
<xs:sequence>
<xs:element name="maincategory">
<xs:complexType>
<xs:sequence>
<xs:element name="subcategory">
<xs:complexType>
<xs:sequence>
<xs:element ref="subcategory"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="maincategory" type="xs:string"/>
<xs:element name="subcategory" type="xs:string"/>
克里斯
答案 0 :(得分:0)
你有两个名为“subcategory”的东西。我已将元素重命名为“element”。
这就是我要做的事情:
<xs:complexType name="category_t">
<xs:sequence>
<xs:element name="maincategory" type="main_category_t" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="main_category_t">
<xs:sequence>
<xs:element type="subcategory_t" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="subcategory_t">
<xs:sequence>
<xs:element name="element" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="category" type="category_t" />
我认为您可能不需要使用ref
属性。这有一个非常具体的用例,type
属性看起来更接近你想要的。