Вопрос по xsd, xml – Ограничить значение атрибута в зависимости от значения другого атрибута

2

Рассмотрим это XSD:

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Test">
        <xs:complexType>
            <xs:attribute name="X">
                <xs:simpleType>
                    <xs:restriction>
                        <xs:enumeration value="One"/>
                        <xs:enumeration value="Two"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="Y">
                <xs:simpleType>
                    <!-- Choose how to restrict the value based on the value of the X attribute. -->
                    <xs:restriction base="if X=One then List1 else List2"/>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="List1">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Option1"/>
            <xs:enumeration value="Option2"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="List2">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Option3"/>
            <xs:enumeration value="Option4"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

Так что для атрибутаTest/@YЯ хочу ограничить возможные значения на основе значенияTest/@X, ЕслиX являетсяOne, затемY может быть вList1, иначе,Y должен быть вList2, Это возможно?

Ваш Ответ

1   ответ
1
Спасибо за ссылку, это было сложно для Google, так как это трудно выразить простым словом. Теперь я знаю, что совместное вхождение - это вопрос, который мне нужен. Josh M.

Похожие вопросы