Xml 是否可以对嵌套的复杂类型进行限制

Xml 是否可以对嵌套的复杂类型进行限制,xml,xsd,schema,restriction,complextype,Xml,Xsd,Schema,Restriction,Complextype,这是我天真的例子 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:complexType name="dog"> <xs:sequence> <xs:element name="nam

这是我天真的例子

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

    <xs:complexType name="dog">
        <xs:sequence>
            <xs:element name="name">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="known" type="xs:string"/>
                        <xs:element name="unknown"/>
                    </xs:choice>
                </xs:complexType>
            </xs:element>
            <xs:element name="breed" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bigDog">
        <xs:complexContent>
            <xs:restriction base="dog">
                <xs:sequence>
                    <xs:element name="name">
                        <xs:complexType>
                            <xs:choice>
                                <xs:element name="known" type="xs:string"/>
                                <xs:element name="unknown"/>
                            </xs:choice>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="breed" type="xs:string" fixed="grand danois"/>
                </xs:sequence>
            </xs:restriction>
        </xs:complexContent>
    </xs:complexType>
</xs:schema>

氧气给了我:类型“bigDog”的错误。类型的粒子不是基粒子的有效限制


有可能做这样的事情吗?

我真的不知道它是怎么做的。可能是XSD 1.0的错误?但这是有效的

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

     <xs:complexType name="dogNameType">
         <xs:choice>
             <xs:element name="known" type="xs:string"/>
             <xs:element name="unknown"/>
         </xs:choice>
     </xs:complexType>

    <xs:complexType name="dog">
        <xs:sequence>
            <xs:element name="name" type="dogNameType"/>
            <xs:element name="breed" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="bigDog">
        <xs:complexContent>
            <xs:restriction base="dog">
                <xs:sequence>
                    <xs:element name="name" type="dogNameType"/>
                    <xs:element name="breed" type="xs:string" fixed="grand danois"/>
                </xs:sequence>
            </xs:restriction>
        </xs:complexContent>
    </xs:complexType>

</xs:schema>