1

XML スキーマの作成に少し問題があります。

これは、私の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>

すでに見てきたように、カテゴリには「無限」のサブカテゴリが存在する可能性があります。それらはオブジェクトを含むことができますが、その親もオブジェクトを含むことができます。それは私の問題を説明しています:最初のレイヤーに要素を入れたいだけでなく、サブレイヤーまたはオブジェクト(これら2つの要素を含む)に「無限」の可能性を持たせたいxsdで定義するにはどうすればよいですか。

それはxsdで可能ですか(私はそう思いますが、方法はわかりません)、またはこの種の「データベース」にxmlを使用するという私の選択は完全に間違っていますか?

PS: 後で C# でこの構造を実装したいと考えています。

4

1 に答える 1

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>
于 2012-07-07T10:26:45.617 に答える