Xml XSD架构:对另一个元素继承的属性的限制

Xml XSD架构:对另一个元素继承的属性的限制,xml,xsd,schema,Xml,Xsd,Schema,我的XSD模式有问题。 我有一个名为的元素,它的属性id为xsd:string类型,并且它必须没有任何限制。 还有另一个元素,它扩展并具有多个属性,但是继承的属性“id”只能由字母和数字组成。这是我的密码: 我尝试将和都添加到id属性中,并为id属性提供一个新类型,但它不起作用 <xsd:complexType name="BaseElement"> <xsd:attribute name="id" type="xsd:string" /> </xsd:co

我的XSD模式有问题。 我有一个名为的元素,它的属性id为xsd:string类型,并且它必须没有任何限制。 还有另一个元素,它扩展并具有多个属性,但是继承的属性“id”只能由字母和数字组成。这是我的密码:

我尝试将和都添加到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>

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