我的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>
答案 0 :(得分:1)
您不能在一个步骤中定义限制和扩展名,但是您可以将X定义为Y的限制,并将Y定义为Z的扩展,因此扩展步骤将添加两个属性,而限制步骤将然后限制其中之一。