我有这种复杂的类型:
<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>
这不是我真正想要的。我想直接在我的第二个复杂类型中包含Identifier类型的元素,而不创建新元素。例如。就像这样做:
<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>
希望这是有道理的。
提前致谢。
答案 0 :(得分:7)
您可以扩展类型,如下所示:
<xsd:complexType name="MySubType">
<xsd:complexContent>
<xsd:extension base="Identifier">
<xsd:sequence>
<!-- More elements here -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
答案 1 :(得分:1)
此复杂类型将始终解析为</ p>
<Identifier>
<Id>string</Id>
<Version>string</Version>
</Identifier>
如果您不想要子结构,可以将Id和Version定义为元素并使用
引用它们<xsd:element ref="Id"/>
<xsd:element ref="Version"/>
稍后。但是你不能保证它们都会出现
您还可以将Id和Version属性设置为复杂类型
中的Identifier元素 祝你好运 麦克