XSD模式:对另一个元素继承的属性的限制

时间:2019-01-20 09:59:20

标签: xml xsd schema

我的XSD架构有问题。 我有一个元素,其元素标识的类型为xsd:string,并且必须没有限制。 然后是另一个扩展的元素,它具有更多的属性,但是继承的属性“ id”必须仅由字母和数字组成。这是我的代码:

我试图同时添加和,并给id属性赋予新的类型,但这是行不通的。

<xsd:complexType name="BaseElement">
    <xsd:attribute name="id" type="xsd:string" />
</xsd:complexType>

<xsd:complexType name="Element">
    <xsd:complexContent>
    <xsd:restriction base="BaseElement">
        <xsd:attribute name="id" type="xsd:idNewType" />
    </xsd:restriction>
    <xsd:extension base="identifiedEntityType">
           <xsd:attribute name="attr2" type="xsd:string"/>
           <xsd:attribute name="attr3" type="xsd:string"/>
          </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

1 个答案:

答案 0 :(得分:1)

您不能在一个步骤中定义限制和扩展名,但是您可以将X定义为Y的限制,并将Y定义为Z的扩展,因此扩展步骤将添加两个属性,而限制步骤将然后限制其中之一。