minoccurs 0 что значит

XML-схема minOccurs/maxOccurs значения по умолчанию

Мне интересно, как спецификация XML Schema обрабатывает эти случаи:

Нет maxOccurs given → Является ли это мощностью [1..1]?

Я полагаю, это просто неверно?

Является ли это мощностью [0..2] или [1..2]?

Есть ли «официальное» определение того, как спецификация XML Schema обрабатывает эти случаи?

ОТВЕТЫ

Ответ 1

Значения по умолчанию для minOccurs и maxOccurs равны 1. Таким образом:

: 1 Примечание: если вы укажете только атрибут minOccurs, он не может быть больше 1, потому что значение по умолчанию для maxOccurs равно 1.

мощность 2 Примечание: если вы укажете только атрибут maxOccurs, он не может быть меньше 1, поскольку значение по умолчанию для minOccurs равно 1.

— допустимая комбинация, которая запрещает элемент.

Ответ 2

Новый расширенный ответ на старый, часто задаваемый вопрос.

Значения по умолчанию

Объяснение общих случаев

означает A требуется и должен выглядеть ровно один раз.

означает A необязательный и может отображаться не чаще одного раза.

означает A требуется и может повторять неограниченное количество раз.

означает A необязательный и может повторять неограниченное количество раз.

См. также

Ответ 3

Результат:

Ответ 4

Короткий ответ:

Как написано в xsd:

Если вы предоставляете атрибут с номером, то номер является границей. В противном случае атрибут должен появиться ровно один раз.

Источник

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

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

Всего существует семь индикаторов:

Индикаторы очередности

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

Индикатор all

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

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

Индикатор choice

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

Индикатор sequence

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

Индикаторы частотности

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

Примечание: Для всех «порядковых» и «групповых» индикаторов (any, all, choice, sequence, group name и group reference) значением по умолчанию для maxOccurs и minOccurs является 1.

Индикатор maxOccurs

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

Индикатор minOccurs

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

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

Совет: Чтобы разрешить использовать какой-то элемент неограниченное число раз, используется выражение maxOccurs=»unbounded».

XML файл «Myfamily.xml»:

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

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

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

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

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

Группы элементов определяются при помощи декларации group следующим образом:

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

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

Группирование атрибутов

Группы атрибутов определяются при помощи декларации attributeGroup:

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

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

Источник

Журнал ВРМ World

Представление нулевых значений в схеме XML

Введение

Компонентная объектная модель для Java, известная как Java beans, имеет определенные свойства, называемые полями. Эти поля могут иметь нулевые значения, если только они не являются полями примитивного типа. При преобразовании («мэппировании») Java beans в XML эти поля становятся элементами или атрибутами. Простые элементы и атрибуты не могут иметь нулевых значений (их можно рассматривать как своего рода эквиваленты примитивным типам Java, которые также не могут иметь нулевых значений). Существует несколько способов изменить атрибуты и элементы XML таким образом, чтобы их экземпляры имели нулевое значение (или хотя бы логически были эквивалентны нулю):

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

Элементы и атрибуты

Листинг 1. Схема AttributeOrElement

В листинге 2 представлен экземпляр схемы листинга 1.

Листинг 2. Экземпляр AttributeOrElement

Ясно видно, что поле атрибута занимает меньше места в экземпляре, чем поле элемента. Соответственно, сообщения SOAP, которые переносят документы в формате XML, содержащие атрибуты, также будут меньше, что сократит время их передачи. Таким образом, кажется, что атрибуты оказываются предпочтительнее элементов. Но те специалисты, кто уже давно работает со схемами, могли заметить, что атрибуты используются не так уж часто. Возникает вопрос: почему? Автор затрудняется назвать точную причину, но приводит несколько аргументов:

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

Нулевой атрибут

Листинг 3. Схема TypeWithNullAttribute

Листинг 4. Экземпляры TypeWithNullAttribute

Атрибут со значением:

Атрибут, переданный как нулевой:

Нулевые элементы

Существует два способа представить нулевое значение, используя элементы: с помощью атрибутов nillable=»true» или minOccurs=»0″. В листинге 5 показана схема для оператора TypeWithNullElements, содержащая по одному элементу для каждого из стилей полей, которые могут иметь нулевое значение.

Листинг 5. Схема для TypeWithNullElements

Листинг 6. Экземпляры TypeWithNullElements

Элементы со значениями:

Элементы с нулевыми значениями:

Как и необязательный атрибут, элемент с атрибутом minOccurs=»0″, имеющий нулевое значение, просто отсутствует в экземпляре XML. Это способствует уменьшению размера сообщения, в отличие от того варианта, когда элемент определяется с помощью атрибута nillable=»true». Атрибут nillableElem, даже имея нулевое значение, включает поле для значения, которое показывает, что значение этого атрибута действительно равно нулю.

Когда атрибут nillable=»true» оказывается полезен

Листинг 7. Схема для элементов массива, значение которых может быть нулевым

Листинг 8. Экземпляр XML для элементов массива, значение которых может быть нулевым

Заключение

Источник

Показатели XSD

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

индикаторы

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

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

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

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

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

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

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

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

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

MaxOccurs Индикатор

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

MinOccurs Индикатор

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

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

Hege Refsnes
Cecilie

Tove Refsnes
Hege
Stale
Jim
Borge

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

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

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

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

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

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

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

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

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

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

Источник

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

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

Содержание

Аннотации

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

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

Типы данных

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

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

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

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

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

simpleType

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

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

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

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

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

complexType

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *