xsd - не разрешать значения, определенные в списке перечисления - PullRequest
0 голосов
/ 02 мая 2018

Я хотел бы применить правило к атрибуту, которое не должно разрешать значение, определенное в значениях перечисления, связанных с другим атрибутом.

Вот моя примерная схема.

<xs:complexType name="component">
    <xs:attribute name="type" type="componentMainType"/>
    <xs:attribute name="category" type="forbiddenCategoryTypes" use="optional"/>
</xs:complexType>

<xs:simpleType name="forbiddenCategoryTypes">
  <xs:restriction base="xs:string">
    **<xs:pattern value="not in forbiddenCategoryTypes"/>**
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="componentMainType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Component1"/>
    <xs:enumeration value="Component2"/>
    <xs:enumeration value="Component3"/>
    <xs:enumeration value="Component4"/>
    <xs:enumeration value="Component5"/>
  </xs:restriction>
</xs:simpleType>

1 Ответ

0 голосов
/ 02 мая 2018

На мой взгляд, это невозможно, шаблон требует регулярных выражений. Я не мог найти никаких других соответствующих ограничений.

Я бы предложил изменить подход к регулярным выражениям со значениями (я знаю, что это не оптимальное решение).

...