Последние учебники веб-разработки
×

XML Руководство

XML ГЛАВНАЯ XML Введение XML Как использовать XML дерево XML Синтаксис XML элементы XML Атрибуты XML Пространства имен XML дисплей XML XSLT XML XPath XML XLink XML Оценщик XML DTD XML схема XML сервер XML Приложения XML Примеры XML викторина XML сертификат

XML DOM

DOM вступление DOM Вершины DOM XMLHttpRequest DOM Доступ к DOM Узел информация DOM Список узлов DOM Пересекая DOM навигационный DOM Получить значения DOM Change Вершины DOM Remove Вершины DOM Replace Вершины DOM Create Вершины DOM Add Вершины DOM Clone Вершины DOM Примеры

DOM Справка

DOM Типы узлов DOM Узел DOM NodeList DOM NamedNodeMap DOM Документ DOM Элемент DOM Атрибут DOM Текст DOM CDATA DOM Комментарий DOM XMLHttpRequest DOM синтаксический анализатор

XML DTD

DTD вступление DTD Строительные блоки DTD элементы DTD Атрибуты DTD Элементы против Attr DTD юридические лица DTD Примеры

XSD Schema

XSD вступление XSD Как XSD <schema> XSD элементы XSD Атрибуты XSD ограничения

XSD Сложный

XSD элементы XSD пустой XSD Элементы только XSD Только текст XSD смешанный XSD индикаторы XSD <any> XSD <anyAttribute> XSD подмена XSD пример

XSD Data

XSD строка XSD Дата XSD числовой XSD Разное XSD Справка

Web Сервисы

XML Сервисы XML WSDL XML SOAP XML RDF XML RSS

 

Показатели XSD


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


индикаторы

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

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

  • All
  • Choice
  • Sequence

Показатели Встречаемость:

  • maxOccurs
  • minOccurs

Группа показатели:

  • Group name
  • attributeGroup name

Индикаторы Заказать

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

Все Индикатор

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

<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>

Note: При использовании <all> индикатор вы можете установить <minOccurs> индикатор 0 или 1 , а <maxOccurs> индикатор может быть установлен только в 1 ( <minOccurs> и <maxOccurs> описаны ниже).

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

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

<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>

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

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

<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>

Показатели Встречаемость

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

Note: Для всех "Order" и "Group" показателей (любой, все, выбор, последовательность, название группы, и группа справки) значение по умолчанию для 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) и не более десяти раз в "person" элемента.

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" элемент может происходить как минимум ноль раз и не более десяти раз в "person" элемента.

Tip: Чтобы разрешить элемент появляться неограниченное число раз, используйте MaxOccurs = "неограниченную" заявление:

A working example:

XML файл , который называется "Myfamily.xml" :

<?xml version="1.0" encoding="UTF-8"?>

<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 выше содержит корневой элемент с именем "persons" . Внутри этого корневого элемента мы определили три "person" элементы. Каждый "person" элемент должен содержать "full_name" элемент и может содержать до пяти "child_name" элементов.

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

<?xml version="1.0" encoding="UTF-8"?>
<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>