Latest web development tutorials

Индикатор XML-схемы

Индикатором, мы можем контролировать использование элементов в режиме документа.


индикатор

Есть семь показателей:

Показатели заказа:

  • все
  • выбор
  • последовательность

Индикатор Происшествие:

  • MaxOccurs
  • MinOccurs

Индикатор Группа:

  • название группы
  • имя attributeGroup

индикатор заказа

Индикаторы заказа используются для определения порядка элементов.

Все отображаемые на дисплее

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

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

Примечание: При использовании индикатора <все>, вы можете положить <MinOccurs> установлено значение 0 или 1, но только индикатор <MaxOccurs> устанавливается равным 1 (позже объяснить <MinOccurs> и <MaxOccurs>).

Выбор индикатора

<Выбор> Индикатор обеспечивает подэлемента происходит или может произойти еще один дочерний элемент (или другой):

<xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>

Индикатор чередования фаз

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

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


индикатор Происшествие

Показатели Встречаемость используются для определения частоты элемента происходит.

Примечание: для всех и индикатора "Order" "Группа" (любой, все, выбор, последовательность , название группы и группы ссылка), которая MaxOccurs и MinOccurs по умолчанию равны 1.

индикатор MaxOccurs

Индикатор <MaxOccurs> можно указать максимальное количество раз может возникнуть элемент:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Приведенные выше примеры показывают, что дочерний элемент "child_name" может появиться в наименьшего элемента "лицо" один раз (где по умолчанию значение MinOccurs равно 1), появляется в большинстве 10 раз.

индикатор MinOccurs

<MinOccurs> индикатор может потребоваться минимальное количество раз, то может возникнуть элемент:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Приведенные выше примеры показывают, что дочерний элемент "child_name" может быть минимум 0 в элементе "лицо", появляется не более 10 раз.

Совет: Для того, чтобы число вхождений элемента не ограничено, пожалуйста , используйте MaxOccurs = "неограниченную" это утверждение:

Практический пример:

Названный "Myfamily.xml" файл XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">

<person>
<full_name>Hege Refsnes</full_name>
<child_name>Cecilie</child_name>
</person>

<person>
<full_name>Tove Refsnes</full_name>
<child_name>Hege</child_name>
<child_name>Stale</child_name>
<child_name>Jim</child_name>
<child_name>Borge</child_name>
</person>

<person>
<full_name>Stale Refsnes</full_name>
</person>

</persons>

Выше этого XML-файл содержит корневой элемент с именем "лица" из. Внутри этого корневого элемента, мы определили три элемента "лицо". Каждый элемент "человек" должен содержать элементы "FULL_NAME", но он может содержать до 5 элемента "child_name".

Это файл схемы "family.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
minOccurs="0" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>


индикатор группы

Индикатор группы для нескольких партий элементов, связанных с определением.

группа элементов

Элемент группы определяется группой заявил:

<xs:group name="groupname">
...
</xs:group>

Вы должны определить заявление в группе все, или выбор элементов последовательности. Следующий пример определяет группу под названием "persongroup", который определяет набор элементов, которые должны присутствовать в соответствии с точным порядке:

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

После того как вы определили группа будет завершена, вы можете обратиться к нему в другом определении:

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

<xs:element name="person" type="personinfo"/>

<xs:complexType name="personinfo">
<xs:sequence>
<xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>

группа свойств

Атрибут группы, определенные заявления attributeGroup:

<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>

Следующий пример определяет свойство группу под названием "personattrgroup" из:

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

После того, как вы определили полный набор атрибутов, вы можете ссылаться на него в другом определении, например, так:

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

<xs:element name="person">
<xs:complexType>
<xs:attributeGroup ref="personattrgroup"/>
</xs:complexType>
</xs:element>