Необязательная группа атрибутов

#xsd

#xsd

Вопрос:

Я должен определить группу атрибутов для 2 взаимоисключающих элементов данных. В приведенном ниже примере, если TO_DT присутствует FROM_DT , должно присутствовать, а TO_DT нет, то FROM_DT этого нет.

Я думал о создании их как обязательных атрибутов и определении attributegroup как необязательных, но это не работает:

 <xs:attributeGroup name="DateRangeAttributes" id="Element_Common_545">
  <xs:attribute name="TO_DT" type="xs:date" use="required" id="Element_Common_547"/>
  <xs:attribute name="FROM_DT" type="xs:date" use="required" id="Element_Common_546"/>
<xs:attributeGroup>
  

Кто-нибудь может предложить способ справиться с этим, используя атрибуты

Ответ №1:

Извините, такого рода ограничения не могут быть применены XML Schema (1.0). Вам придется применить его в другом месте (например, с помощью code или XSLT) или изменить формат. Возможности:

  • Укажите значения по умолчанию, чтобы оба они эффективно присутствовали всегда.
  • Используйте один атрибут, содержащий список дат длиной 2.
  • Используйте элементы (вы также можете управлять порядком, в отличие от атрибутов).

Ответ №2:

Эти ограничения могут быть выражены в Schematron и в XML Schema 1.1.