6

私はこの複雑なタイプを持っています:

<xsd:complexType name="Identifier">
    <xsd:sequence>
        <xsd:element name="Id" type="xsd:string"/>
        <xsd:element name="Version" type="xsd:string"/>
    </xsd:sequence>
</xsd:complexType>

今、私はこれを別の複合型に含めたいと思っています、そして私はこれを次のようにやっています:

<xsd:complexType>
    <xsd:sequence>
        <xsd:element name="Id" type="Identifier"/>
              <!-- More elements here -->
    </xsd:sequence>
</xsd:complexType>

これは私が本当に望んでいることではありません。新しい要素を作成せずに、識別子タイプの要素を2番目の複合型に直接含めたい。たとえば、これを行うのと同じです。

<xsd:complexType>
    <xsd:sequence>
        <xsd:element name="Id" type="xsd:string"/>
        <xsd:element name="Version" type="xsd:string"/>
              <!-- More elements here -->
    </xsd:sequence>
</xsd:complexType>

それが理にかなっていることを願っています。

前もって感謝します。

4

2 に答える 2

7

次のように型を拡張できます。

<xsd:complexType name="MySubType">
    <xsd:complexContent>
        <xsd:extension base="Identifier">
                       <xsd:sequence>
                            <!-- More elements here -->
                       </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>
于 2009-10-16T13:03:45.180 に答える
1

この複合型は常に次のように解決されます

<Identifier>
   <Id>string</Id>
   <Version>string</Version>
</Identifier>

子構造が必要ない場合は、IdとVersionを要素として定義し、を使用してそれらを参照できます。

<xsd:element ref="Id"/>
<xsd:element ref="Version"/>

後で。しかし、両方が発生するという保証はありません

複合型のIdentifier要素にId属性とVersion属性を作成することもできます

頑張ってマイク

于 2009-10-16T12:55:02.247 に答える