XSD: How to limit the enumeration values ​​of a derived complex type?

In the following example:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="Book" abstract="true">
        <xs:sequence>
            <xs:element name="titel" type="xs:string">
            </xs:element>
            <xs:element name="bookCode" type="BookEnum"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Lyric">
        <xs:complexContent>
            <xs:extension base="Book">
                <xs:sequence>
                    <xs:element name="author" type="xs:string">
                    </xs:element>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:simpleType name="BookEnum">
        <xs:restriction base="xs:int">
            <xs:enumeration value="Paperback"/>
            <xs:enumeration value="Hardcover"/>
            <xs:enumeration value="Liporello"/>
            <xs:enumeration value="None"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

The lyrics come from the Book. I would like to limit the possible BookEnum values ​​for complexType "Lyric" as "Paperback".

"None", "Liporello" and "Hardcover" should no longer be valid values ​​for "Lyric". can this be done in xsd?

+5
source share
2 answers

, , . , . , .

, , : , ; LyricType, ; bookCode . , , , XSD - .

+8

.. node ( ..).. , , ..

+1

All Articles