Добавление ограничения и атрибута в complexType - PullRequest
3 голосов
/ 04 апреля 2011

К простому элементу с type="xs:int" Я хотел бы добавить ограничение и ряд атрибутов.Однако единственный способ, которым я это видел, - это двухэтапный подход:

  1. Объявить именованный (глобальный) тип и поместить все ограничения в именованный тип

  2. Обратитесь к именованному типу в base <xs:extension> и добавьте атрибуты к узлу расширения.

Было бы неплохо, если бы яможно было бы избежать объявления глобального именованного типа, поскольку схема генерируется динамически, и было бы намного чётче определять все ограничения локально.Например, вот так:

<xs:complexType>
  <xs:simpleContent>
    <xs:extension base="xs:int">
      <xs:minInclusive>2</xs:minInclusive>
      <xs:attribute name="myAttribute" type="xs:boolean" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

или в случае строкового типа:

<xs:complexType>
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:enumeration Value="FOO" />
      <xs:enumeration Value="BAR" />
      <xs:enumeration Value="BAZ" />
      <xs:attribute name="myAttribute" type="xs:boolean" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

К сожалению, не похоже, что такое «комбинированное» объявление допускается.

Ответы [ 2 ]

2 голосов
/ 04 апреля 2011

Это невозможно, пожалуйста, просмотрите: Имея как атрибут, так и ограничение на элемент в XML-схеме ответьте.

1 голос
/ 04 апреля 2011

К сожалению, это невозможно сделать.То, как вы делаете это в настоящее время (с отдельным типом), это путь.Такие запросы были подняты до (хотя, возможно, не в SO).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...