新しい要素のないXSDコンプレックスタイプに要素を含めます
-
21-09-2019 - |
質問
私はこの複雑なタイプを持っています:
<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>
それが理にかなっていることを願っています。
前もって感謝します。
解決
このようなタイプを拡張できます。
<xsd:complexType name="MySubType">
<xsd:complexContent>
<xsd:extension base="Identifier">
<xsd:sequence>
<!-- More elements here -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
他のヒント
この複雑なタイプは常に解決します
<Identifier>
<Id>string</Id>
<Version>string</Version>
</Identifier>
子の構造が必要ない場合は、IDとバージョンを要素として定義し、使用して参照できます
<xsd:element ref="Id"/>
<xsd:element ref="Version"/>
後で。しかし、あなたは彼らが両方とも発生するという保証を持っていません
複雑なタイプの識別子要素にIDおよびバージョン属性を作成することもできます
頑張ってマイク
所属していません StackOverflow