Как определить константу в XSD - PullRequest
4 голосов
/ 02 июня 2011

Есть ли способ определить постоянную величину и использовать эту константу в предыдущем XSD? У меня есть общее значение, которое я хочу использовать для различных атрибутов maxOccurs тега xs: element. Как и константы в других языках, я хочу внести изменения в одном месте, если бы значение, которое было в MyConst, когда-либо изменилось.

<!-- Can I do this? -->
<ConstantValue id="MyConst" value="10"/>
...
<xs:element name="sandwich_meat" type="xs:string" minOccurs="0" maxOccurs="MyConst"/>
<xs:element name="sandwich_name" type="xs:string" minOccurs="0" maxOccurs="MyConst"/>

Ответы [ 3 ]

3 голосов
/ 12 сентября 2017

Можно попытаться определить simpleType с ограничением:

  <xs:simpleType name="AConstantHere">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CONSTANT_VALUE_HERE"/>
    </xs:restriction>
  </xs:simpleType>

Допускается только одно значение.

1 голос
/ 02 июня 2011

Нет, это не разрешено.Тем не менее, вы можете определить свой собственный тип с фиксированным значением в нем где-то поверх вашего XSD (поместите вопросы) и использовать этот тип для элементов.

1 голос
/ 02 июня 2011

Это невозможно с простой схемой, но, возможно, XML сущности справятся?

...