0

私は次のようなxmlファイルを持っています:

<Summary>
  <Persons>
    <Status>
      <Active value="false" text="Active" />
      <Inactive value="false" text="Inactive" />
    </Status>
   <Language>
      <Dutch value="false" text="" />
      <EnglishUK value="false" text="" />
      <EnglishUS value="false" text="" />
      <German value="false" text="" />
      <French value="false" text="" />
  </Language>
 </Persons>
 <Roles>
  <Status>
   <Active value="false" text="" />
   <Inactive value="false" text="" />
  </Status>
  <AssignedUsers>
   <m10 value="false" text="" />
   <b10and50 value="false" text="" />
   <x50 value="false" text="" />
  </AssignedUsers>
 </Roles>
</Summary>

オンラインのxsdジェネレーターを使用してこのxmlからxsdを作成しました。

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Summary">
<xs:complexType>
  <xs:sequence>
    <xs:element name="Persons">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="Status">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Active">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="Inactive">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="Anonymous">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Yes">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="No">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="Language">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Dutch">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="EnglishUK">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="EnglishUS">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="German">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="French">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="Roles">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="Status">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Active">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="Inactive">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="AssignedUsers">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="m10">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="b10and50">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="x50">
                  <xs:complexType>
                    <xs:simpleContent>
                      <xs:extension base="xs:string">
                        <xs:attribute type="xs:string" name="value"/>
                        <xs:attribute type="xs:string" name="text"/>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

問題は、Persons/StatusまたはRoles/AssignedUsersに新しい要素を挿入するたびに、検証が失敗することです。私が欲しいのは、Person/StatusやRoles/Statusなどの親要素とその他の要素を検証するスキーマですが、''のような子要素は存在する必要はありませんが、存在する場合は、属性を持っている必要があります'value'および'text'。そのようなスキーマを作成する方法、いくつかの助けは素晴らしいでしょう。

前もって感謝します。

4

1 に答える 1

0

どの要素もオプションとして指定していないため、検証は失敗します。そのため、すべての要素が必須になります。minOccurs="0"オプションの要素に追加してみてください。

たとえば。私が変更され

<xs:element name="Anonymous" minOccurs="0">

サンプルxmlはエラーなしで検証されました

于 2012-10-16T13:54:46.833 に答える