如何设置元素xsd的属性

时间:2017-09-13 10:32:08

标签: xsd

如何为元素添加属性。

                

                <xs:restriction base="xs:string">
                    <xs:enumeration value="Spring"/>
                    <xs:enumeration value="Summer"/>
                    <xs:enumeration value="Autumn"/>
                    <xs:enumeration value="Fall"/>
                    <xs:enumeration value="Winter"/>
                </xs:restriction>
           <xs:complexType>
               <xs:attribute name="id"/>
           </xs:complexType>
            </xs:simpleType>

我想为元素设置属性和限制。但是使用这种方式,即使使用simpleContent&amp;复杂内容。那怎么办呢?

1 个答案:

答案 0 :(得分:2)

您需要分两步完成此操作:

  • 定义具有受限值空间的简单类型
  • 使用简单内容定义复杂类型,该类型使用属性
  • 扩展此简单类型(用于其内容)

像这样:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      elementFormDefault="qualified">
    <xs:simpleType name="restrictedsimpletype">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Spring"/>
            <xs:enumeration value="Summer"/>
            <xs:enumeration value="Autumn"/>
            <xs:enumeration value="Fall"/>
            <xs:enumeration value="Winter"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="restrictedwithattributes">
        <xs:simpleContent>
            <xs:extension base="restrictedsimpletype">
                <xs:attribute name="id" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:element name="a" type="restrictedwithattributes"/>
</xs:schema>