XSD - То, как описать незаказанный набор элемента, вводит, где первый элемент должен казаться первым в последовательности?

20
задан Jeremy Stein 3 December 2009 в 17:08
поделиться

3 ответа

Я не полагаю, что это может быть сделано, не перечисляя каждую комбинацию ADD, УДАЛИТЬ и т.д. Вообще говоря, незаказанный списки, не играют хорошо, или с ДАТАМИ или со схемами.

3
ответ дан 30 November 2019 в 00:32
поделиться

Если я понимаю Ваш запрос, Вы правы на ходу, единственной вещью, которую Вы пропускаете, является maxOccurs = "неограниченный" на Вашем выборе.

я создал следующую схему:

<?xml version="1.0"?>
<xs:schema targetNamespace="http://someNamespace" xmlns="http://someNamespace" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Root" type="Application">
  </xs:element>

  <xs:complexType name="Application">
    <xs:sequence>
      <xs:element ref="Name"></xs:element>
      <xs:choice maxOccurs="unbounded">
        <xs:element ref="ADD"></xs:element>
        <xs:element ref="DELETE"></xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Name"/>
  <xs:element name="ADD"/>
  <xs:element name="DELETE"/>
</xs:schema>

И это работало хорошо на

<ns0:Root xmlns:ns0="http://someNamespace">
  <ns0:Name />
  <ns0:ADD />
  <ns0:ADD />
  <ns0:DELETE />
  <ns0:ADD />
  <ns0:DELETE />
  <ns0:DELETE />
</ns0:Root>

, но не на

<ns0:Root xmlns:ns0="http://someNamespace">
  <ns0:ADD />
  <ns0:ADD />
  <ns0:DELETE />
  <ns0:ADD />
  <ns0:DELETE />
  <ns0:DELETE />
</ns0:Root>
17
ответ дан 30 November 2019 в 00:32
поделиться

Я думаю, вы ищете элемент «все», он позволяет создавать неупорядоченный список. Однако есть ограничения на элементы, которые вы можете там разместить. См. http://www.w3.org/2005/07/xml-schema-patterns.html#Collection

4
ответ дан 30 November 2019 в 00:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: