Можно ли чередовать два типа в XML-схеме - PullRequest
0 голосов
/ 21 апреля 2010

Мне интересно, если я упускаю что-то очевидное.

У меня есть список чисел, возможно, включая диапазоны (подумайте о опции печати страницы диалогового окна печати).

В идеале я хотел бы, чтобы окончательный вывод XML выглядел следующим образом, с page и pageRange в порядке.

  <pages>
 <page> 1</page>
   <pageRange><start>3</start><end>6</end></pageRange>
   <page> 34</page>
</pages>

Что бы мне пришлось добавить в схему, чтобы это разрешить?

Из того, что я увидел: Последовательность с несколькими страницами и диапазоном страниц не допускается чередование. Выбор позволяет только один или другой.

Я пытался все испортить, но мне не удавалось правильно его проверить.

Мое краткосрочное решение состоит в том, чтобы иметь последовательность диапазонов и вводить отдельные числа в диапазон, но это кажется потенциально громоздким. Так я что-то упустил?

1 Ответ

1 голос
/ 21 апреля 2010

попробуйте это ...

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="pages">
    <xs:complexType>
      <xs:sequence>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="page" type="xs:unsignedInt" />
          <xs:element name="pageRange">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="start" type="xs:unsignedInt" />
                <xs:element name="end" type="xs:unsignedInt" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...