Maxoccurs unbounded что значит

IT-ЗАМЕТКИ

Инструменты пользователя

Инструменты сайта

Содержание

Аннотации

компонент может иметь атрибут xml: lang, в котором указывается язык написания самой аннотации.

разработки, таблицы стилей и других приложений. Например, в середине компонента appInfo можно представить информацию о том, какие фасетки могут быть применены к каждому простого типа.

Типы данных

Название Размер Описание
Действительные числа
decimal Нет ограничения по разрядности (мантиссы) числа, но требуется, чтобы можно было записать не менее 18 цифр
float Действительные значения с одинарной точностью
double Действительные значения с двойной точностью
Целые числа
long 8 -9 223 372 036 854 775 808 .. +9 223 372 036 854 775 807
іnteger (int) 4 -2 147 483 648 .. +2 147 483 647
short 2 -32 758 .. + 32 767
byte 1 -128 .. +127
Cтроковые типы
string Произвольный строка символов
normalizedString Подтип string, не содержит следующих символов: ‘\ n’, ‘\ t’ и ‘\ r’. Фактически, перед обработкой схемы, эти символы перетворються в пробелы.
Дата и время
dateTime Содержит дату в формате CCYY-MM-DDThh: mm: ss, например, 2006-07-12Т10: 30:02
time Время в формате hh: mm: ss
date Дата в формате CCYY-MM-DD
gYearMonth Время и месяц в формате CCYY-MM
gMonthDay Месяц и день в формате-MM-DD
Другие встроенные простые типы
anyURI URI -адреса
NOTATION Используется для записи математических, химических и других символов, нот, азбуки Бройля и других обозначений
Читайте также:  Опущение матки что это значит у женщин после 40

Объявление элемента

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

Объявление атрибутов

Необязательный атрибут use может принимать одно из следующих значений:

Простые и комплексные типы данных

Простые типы элементов описываются компонентом simpleType, а сложные типы — complexType.

simpleType

Простые типы в основном используются для сужение типов (restriction)

Cужение типов (restriction)

С помощью сужение типов (restriction) Мы можем контролировать любой тип данных на наличие его значения то есть ограничивать его значения
Приме: Схема

Название фасетки Описание
Наибольшее значение, которое больше не входит в определяем тип
Наибольшее значение определяемого типа
Наименьшее значение, которое больше не входит в Определяемый тип
Наименьшее значение определяемого типа
Общее количество цифр в определяемого числовом типе; сужение типа decimal
Количество цифр в дробной части числа
Длина значений определяемого типа
Наибольшая длина значений определяемого типа
Наименьшее длина значений определяемого типа
Одно из перечисленных значений
Регулярное выражение
— — —

В тегах-фасетка также могут иметь атрибуты. Эти атрибуты называют базисными фасетками (fundamental facets). Среди них выделяют:

Базисная фасетка Описание
ordered Задает упорядоченность определяет моего типа и может принимать одно из следующих значений: False — тип неупорядоченный; Partial — тип частично упорядоченное; Total — тип полностью упорядочен.
bounded Задает ограниченность или неограниченность типа значением true или false
cardinality Задает конечность или бесконечность типа значением finite или countably infinite
numeric Показывает, значение является числовым типом. Может принимать значения true или false

complexType

Схема: базовый элемент

Группы элементов

Группа позволяет описать общие элементы. (работает как include) Схема:

Источник

XSD элемент sequence

Элемент sequence определяет, что дочерние элементы должны появляться в последовательности. Каждый дочерний элемент может использоваться от 0 до бесконечного числа раз.

  • Родительские элементы: group, choice, sequence, complexType, restriction (simpleContent и complexContent), extension (simpleContent и complexContent)

Синтаксис элемента

(Знак ? указывает на то, что элемент может появляться ноль или один раз, знак * указывает на то, что элемент может появляться ноль, один или больше раз внутри элемента sequence.)

Атрибуты элемента

Атрибут Описание
id Не обязательный. Определяет уникальный идентификатор для элемента
maxOccurs Не обязательный. Определяет, сколько раз максимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0, если же нужно снять лимит на использование, то следует указать ключевое слово «unbounded». Значение по умолчанию 1
minOccurs Не обязательный. Определяет, сколько раз минимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0. Значение по умолчанию 1
любые атрибуты Не обязательный. Любые другие атрибуты вне пространства имен схемы

Пример использования

Пример №1
Следующий пример демонстрирует декларацию элемента «personinfo», который должен содержать пять дочерних элементов «firstname», «lastname», «address», «city» и «country»:

Пример №2
Следующий пример демонстрирует декларацию элемента «pets», который должен содержать 0 или больше дочерних элементов «dog» и «cat»:

Источник

Показатели XSD

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

индикаторы

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

  • Group name
  • attributeGroup name

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

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

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

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

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

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

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

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

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

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

MaxOccurs Индикатор

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

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

MinOccurs Индикатор

индикатор определяет минимальное число раз может произойти элемент:

Приведенный выше пример показывает , что «child_name» элемент может происходить как минимум ноль раз и не более десяти раз в «person» элемента.

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

A working example:

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

Hege Refsnes
Cecilie

Tove Refsnes
Hege
Stale
Jim
Borge

Файл XML выше содержит корневой элемент с именем «persons» . Внутри этого корневого элемента мы определили три «person» элементы. Каждый «person» элемент должен содержать «full_name» элемент и может содержать до пяти «child_name» элементов.

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

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

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

Элемент группы

групп элементов определяются с декларацией группы, как это:

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

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

Группы атрибутов

Атрибут группы определяются с декларацией attributeGroup, как это:

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

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

Источник

XSD элемент choice

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

  • Родительские элементы: group, choice, sequence, complexType, restriction (simpleContent и complexContent), extension (simpleContent и complexContent)

Синтаксис элемента

(Знак ? указывает на то, что элемент может появляться ноль или один раз, знак * указывает на то, что элемент может появляться ноль, один или больше раз внутри элемента choice.)

Атрибуты элемента

Атрибут Описание
id Не обязательный. Определяет уникальный идентификатор для элемента
maxOccurs Не обязательный. Определяет, сколько раз максимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0, если же нужно снять лимит на использование, то следует указать ключевое слово «unbounded». Значение по умолчанию 1
minOccurs Не обязательный. Определяет, сколько раз минимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0. Значение по умолчанию 1
любые атрибуты Не обязательный. Любые другие атрибуты вне пространства имен схемы

Пример использования

В следующем примере декларируется элемент «person», который должен содержать либо элемент «employee», либо элемент «member».

Источник

Пример XML схемы

В этой главе будет показано, как писать XML схемы. Также вы узнаете, что схемы можно писать разными способами.

XML документ

Давайте посмотрим на следующий XML документ под названием «shiporder.xml»:

Приведенный выше XML документ состоит из корневого элемента shiporder с обязательным атрибутом orderid. Элемент shiporder содержит три дочерних элемента: orderperson, shipto и item. Элемент item используется дважды и содержит элемент title, необязательный элемент note, а также элементы quantity и price.

Строка xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» говорит XML парсеру, что этот документ должен быть проверен на соответствие схеме. Строка xsi:noNamespaceSchemaLocation=»shiporder.xsd» указывает, где именно находится схема (в данном случае она находится в той же папке, что и файл «shiporder.xml»).

Создание XML схемы

Теперь для приведенного выше XML документа создадим XML схему.

Создадим новый файл, который назовем «shiporder.xsd». Для создания XML схемы будем просто следовать за структурой XML документа и определять каждый встреченный элемент. Начнем со стандартной XML декларации, за которой опишем элемент xs:schema, который и определяет саму схему:

Здесь мы используем стандартное пространство имен (xs) и URI, ассоциированный с этим пространством имен, который имеет стандартное значение http://www.w3.org/2001/XMLSchema.

Теперь мы должны определить элемент shiporder. У этого элемента есть атрибут, и он содержит другие элементы, поэтому мы рассматриваем его как элемент составного типа. Определения дочерних элементов элемента shiporder поместим в декларацию xs:sequence, что задает жесткую последовательность подэлементов:

Теперь определим элемент orderperson, который будет простого типа (так как он не содержит ни атрибуты, ни другие элементы). Его тип (xs:string) имеет префикс пространства имен, ассоциированного с XML схемой, что указывает на использование предопределенного типа данных:

Теперь нам нужно определить два элемента составного типа: shipto и item. Начнем с определения элемента shipto:

При помощи схем мы можем определить число возможных вхождений любого элемента. В этом нам помогут атрибуты maxOccurs и minOccurs. Атрибут maxOccurs задает максимальное число вхождений элемента, а атрибут minOccurs задает минимальное число вхождений. По умолчанию значение обоих атрибутов равно 1.

Теперь определим элемент item. Этот элемент может использоваться неограниченное число раз внутри элемента shiporder. Определить такую особенность элемента item позволяет присваивание атрибуту maxOccurs значения «unbounded». Это означает, что элемент item может использоваться столько раз, сколько нужно автору документа. Обратите внимание, что элемент note опционален. Определим это установив атрибут minOccurs в нулевое значение:

Теперь мы можем декларировать атрибут элемента shiporder. Поскольку это обязательный атрибут, используем определение use=»required».

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

Вот полный код файла схемы «shiporder.xsd»:

Разделение схемы

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

Следующий способ компоновки схемы заключается в том, что сначала определяются все элементы и атрибуты, а затем на эти определения создаются ссылки при помощи атрибута ref.

Ниже приводится новая компоновка файла схемы («shiporder.xsd»):

Использование поименованых типов

Третий способ компоновки схемы предполагает определение классов или типов, которые позволяют повторное использование определений элементов. Это становится возможным, если дать имена элементам simpleTypes и complexTypes, а затем указать на них при помощи атрибута type.

Третий способ компоновки файла схемы («shiporder.xsd»):

Элемент restriction указывает на то, что тип данных является производным от типов данных из пространства имен W3C XML Schema. Таким образом, следующий фрагмент кода означает, что значение элемента или атрибута должно быть строковым:

Однако гораздо чаще элемент restriction используется для накладывания ограничений на элементы. Посмотрите на следующие строки из приведенной выше схемы:

Этот фрагмент кода указывает, что значение элемента или атрибута должно быть строковым, ровно шесть символов в длину, и этими символами должны быть цифры от 0 до 9.

Источник

Оцените статью