Проверка неизвестного ключа и значений - PullRequest
0 голосов
/ 15 мая 2019

В XSD я пытаюсь проверить - если ключ соответствует определенному значению, то я хочу проверить, является ли свойство правильным из нескольких строк.

Я не уверен, возможно ли это, и если это так, я не знаю как.

 <xs:element name="property" type="tpmProperty"/>

<xs:complexType name="tpmProperty">
  <xs:sequence/>
  <xs:attribute name="key" type="xs:string"/>
  <xs:attribute name="value" type="xs:string"/>
</xs:complexType>

и у меня есть эти правила и многие другие, например:

    <property key="postProcessingMode" value="(none, script, java class)" />
    <property key="flagFileApplicability" value="(file, directory)" />
     <property key="flag" value="..." />

скобки означают, какое возможное значение может быть там, например

  <property key="postProcessingMode" value="script" />

действителен и

  <property key="postProcessingMode" value="123" /> 

НЕ действует

1 Ответ

0 голосов
/ 15 мая 2019

Для любого вида «перекрестной проверки», подобной этой, вам нужен XSD 1.1, который предоставляет два способа сделать это: утверждения и условное присвоение типа. XSD 1.1 реализован в Altova, Saxon и Xerces, но многие старые процессоры схем, такие как Microsoft, не предоставляют его.

...