Xsd Element SimpleType加上属性

时间:2014-02-17 21:19:00

标签: xml xsd

我无法弄清楚如何用Xsd来表达以下内容:具有simpleType限制的元素(值的枚举)并且需要该元素的属性。例如:

<myElement some_id_value="1">Apples</myElement>

简单类型定义为:

<xs:simpleType name="simpleType_Fruit">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Apples" />
    <xs:enumeration value="Bananas" />
    <xs:enumeration value="Oranges" />
  </xs:restriction>  
</xs:simplType>

我现在的元素定义为:

<xs:element name="myElement" type="simpleType_Fruit"/>

在这里提出类似的问题,可能会得到回答,但我不确定(答案中只有一个加号投票)

XSD: How to derive a simpletype both to add a attribute to it and to restrict the acceptable value of it

1 个答案:

答案 0 :(得分:1)

您可以在元素声明中使用“simpleType_Fruit”作为基本类型,并使用必需属性扩展一个。

<xs:element name="myElement">
    <xs:complexType>
        <xs:simpleContent>
            <xs:extension base="simpleType_Fruit">
                <xs:attribute name="some_id_value" type ="xs:byte"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:element>
<xs:simpleType name="simpleType_Fruit">
    <xs:restriction base="xs:string">
        <xs:enumeration value="Apples"/>
        <xs:enumeration value="Bananas"/>
        <xs:enumeration value="Oranges"/>
    </xs:restriction>
</xs:simpleType>