是否可以为XSD中定义的单个复杂类型设置多个名称?

时间:2012-10-16 07:30:56

标签: xsd

我正在创建一个XSD,我在其中定义了一个复杂的类型:

<xs:complexType name="TimeBasicComponents">
    <xs:sequence>
        <xs:element name="Hours" type="xs:int"></xs:element>
        <xs:element name="Minutes" type="xs:int"></xs:element>
        <xs:element name="Seconds" type="xs:int"></xs:element>
        <xs:element name="MilliSeconds" type="xs:int"></xs:element>
    </xs:sequence>
</xs:complexType>

我定义了另一种复杂类型:

<xs:complexType name="TimeOfDay">
    <xs:sequence>
        <xs:element name="BasicComponents" type="TimeBasicComponents"></xs:element>
        <xs:element name="Zone" type="xs:string"></xs:element>
    </xs:sequence>
</xs:complexType>

现在,我希望有一个持续时间的另一种复杂类型。但是,实际上不需要为此定义另一种复杂类型,它与&#34; TimeBasicComponents&#34;完全相同。所以,我想知道是否有办法在XSD中为单个复杂类型定义多个名称?

-Sandeep

1 个答案:

答案 0 :(得分:4)

您是说要将TimeBasicComponents用作持续时间吗?据我所知,你不能拥有complexType的别名,但你可以使用<xs:extension...结构实现非常相似的东西:

<xs:complexType name="TimeDuration">
    <xs:complexContent>
        <xs:extension base="TimeBasicComponents" />
    </xs:complexContent>
</xs:complexType>

这样您就可以有效地拥有别名,而无需重新定义TimeBasicComponents复杂类型。

干杯,

相关问题