2014-02-17 153 views
1

我无法弄清楚如何用Xsd表达以下内容:具有simpleType限制(值的枚举)的元素,并且需要此元素的属性。例如: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

您可以在元素声明中将“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>