Элементы XSD и перечисления - PullRequest
       13

Элементы XSD и перечисления

0 голосов
/ 25 августа 2011

Учитывая элемент, который имеет атрибут. Этот атрибут может иметь только значения из перечисления.

Можно ли обусловить сыновей этих элементов значением перечисления?

Есть пример, потому что мой английский не очень хорош :) 1005 *

<xs:element minOccurs="0" name="datas">
<xs:complexType>
    <xs:sequence maxOccurs="unbounded">
        <xs:element maxOccurs="1" name="data">
            <xs:complexType>
                <xs:attribute name="tag" type="xs:string" use="required"/>
                <xs:attribute name="expr" type="xs:string" use="required"/>
                <xs:attribute name="format" use="required">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="choice1"/>
                            <xs:enumeration value="choice2"/>
                            <xs:enumeration value="choice3"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
            </xs:complexType>
            <!-- HERE IS SOME SONS -->
            <xs:element name="element1" />
            <xs:element name="element2" />
            <xs:element name="element3" />
        </xs:element>
    </xs:sequence>
</xs:complexType>

Если я выберу "choice1", у меня будет element1 в обязательном порядке, а element2 / element3 в запрещенном. Если я выберу "choice2", у меня будет элемент 2 в обязательном порядке и т. Д ....

Знаете ли вы, возможно ли это?

Спасибо за ответ

1 Ответ

1 голос
/ 25 августа 2011

Это новая функция в XSD 1.1 (в настоящее время поддерживается в последних выпусках Saxon и Xerces). Это хорошо известное ограничение XSD 1.0, что он не может этого сделать.

...