Область действия Schema и Schematron

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

<xs:complexType name="MyElement">
    <xs:sequence>
        <xs:element name="Child"/>
        <xs:element name="Child1" minOccurs="0"/>
    </xs:sequence>
</xs:complexType>

У меня также есть элемент с несколькими MyElement. Но я хочу иметь возможность сказать, что

  • Первое вхождение должно иметь Child1, а для всех остальных вхождений Child1 может быть необязательным.
  • Все нечетные вхождения должны иметь Child1, а для четных вхождений Child1 может быть необязательным.
  • Если значение Child равно R, то должен присутствовать элемент Child1.

Я не хочу решения; Я хочу знать, какую технологию вы бы использовали для решения такого рода проблем. Только схема или схема и Schematron? Мне интересно узнать возможности XML Schema и Schematron.


person Sydney    schedule 29.08.2011    source источник


Ответы (1)


Вам потребуется использовать Schematron со Schema 1.0.

Схема не имеет возможности выразить условную логику, которую вы описываете. Schematron идеально подходит для этого сценария и может быть легко использован для кодирования и проверки этих правил проверки.

Такие ограничения/проверки можно определить с помощью утверждений схемы 1.1.

person Mads Hansen    schedule 30.08.2011