Возможно ли иметь complexType и элементы внутри, но без части последовательности - PullRequest
7 голосов
/ 12 ноября 2009

У меня есть XML-документ (и сложный элемент), который похож на этот пример:

<xs:element name="employee">
 <xs:complexType>
  <xs:sequence>
   <xs:element name="firstname" type="xs:string"/>
   <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
 </xs:complexType>
</xs:element>

Но в моем xml не должно иметь значения, если я сначала добавлю имя или фамилию. Поэтому я хотел бы удалить часть "xs: sequence", но я не уверен, что я должен заменить ее.

Если это невозможно - то почему это невозможно?

Обновление: Если я изменяю его с помощью , я получаю эту ошибку: «{max then} всех {сторон} всей группы должно быть 0 или 1».

Ответы [ 3 ]

8 голосов
/ 12 ноября 2009

Используйте <xs:all> вместо <xs:sequence>:

<xs:element name="employee">
 <xs:complexType>
  <xs:all>
   <xs:element name="firstname" type="xs:string"/>
   <xs:element name="lastname" type="xs:string"/>
  </xs:all>
 </xs:complexType>
</xs:element>

См. Страницу W3Schools об индикаторах схемы:

Все показатели

Индикатор <all> указывает, что дочерние элементы могут появляться в любом порядок, и что каждый дочерний элемент должно произойти только один раз:

2 голосов
/ 29 мая 2012
<xs:element name="employee">
    <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="firstname" type="xs:string" />
            <xs:element name="lastname" type="xs:string" />
        </xs:choice>
   </xs:complexType>
</xs:element>

Это позволит вам иметь элементы в любой последовательности и количестве.

0 голосов
/ 12 ноября 2009

Требуется индикатор Все (<xs:all>).

<xs:element name="employee">
  <xs:complexType>
    <xs:all>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:all>
 </xs:complexType>
</xs:element>

Учебное пособие XML-схемы на W3Schools очень полезно.

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