如何为元素xsd设置属性

如何为元素xsd设置属性,xsd,Xsd,如何为对元素也有限制的元素添加属性 <xs:restriction base="xs:string"> <xs:enumeration value="Spring"/> <xs:enumeration value="Summer"/> <xs:enumeration value="Autumn"/>

如何为对元素也有限制的元素添加属性

                <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>

                <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>


我想为to元素设置属性和限制。但是使用这种方式,即使使用simpleContent&complexContent,它也不起作用。那么如何做到这一点呢?

您需要分两步来完成:

                <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>
  • 定义具有受限值空间的简单类型
  • 定义一个包含简单内容的复杂类型,并使用属性扩展此简单类型(用于其内容)
像这样:

                <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>
<?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>