制作XML-Schema时遇到了一些麻烦。
这是我在items.xml中的一个小例子
<items>
<category name="Sample Category #1">
<category name="Sample Subcategory #1.1">
<object>
<name>Sample Inner Object</name>
<desc>Sample Description</desc>
<object>
</category>
<object>
<name>Sample Name</name>
<desc>Sample Description #2</desc>
<object>
</category>
<category name"MyCat #2">
<object>
<name>Another Object</name>
<desc>Another Description</desc>
<object>
</category>
</items>
现在,正如您已经看到的那样,类别中可以存在“无限”子类别。它们可以包含对象,但它们的父对象也可以包含对象。这描述了我的问题: 我如何在xsd中定义我想要在我的第一层中使用-Elements,而在子图层或仅包含这两个元素的对象中包含'无限'可能性。
这可能与xsd(我想是这样,但我不知道如何)或者我选择使用xml这种'数据库'是完全错误的吗?
PS:我想稍后在C#中实现这个结构。
答案 0 :(得分:0)
这有用吗?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="categoryType">
<xs:sequence>
<xs:element name="category" type="categoryType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="object" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="desc" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<xs:element name="items">
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="categoryType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>