Элементы и атрибуты на схеме XSD. Правила использования

Визуальная часть схемы и обозначения необходимо понимать по следующим правилам.

Элементы

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

Принцип обязательности наличия элемента в XML-сообщении определяется следующим обозначениями на схеме XSD:

ОбозначениеОписаниеПример
1..1Обязательно наличие элемента, но не более 1 во вложенном элементе верхнего уровня.

0..1Необязательно наличие элемента, но если применяется, то не более одного во вложенном элементе верхнего уровня.

1..∞Обязательно наличие, как минимум одного элемента. Количество неограниченно во вложенном элементе верхнего уровня.

0..∞Необязательно, наличие элемента, но если применяется, то количество не ограничено во вложенном элементе верхнего уровня.

Атрибуты

  • Все поля, которые выглядят, как список под элементом называются атрибутами.
  • Атрибут, выделенный жирным является обязательным.
  • Атрибуты всегда указываются внутри самого элемента.
  • Если элемент загружается только с атрибутами, без значения, то всегда должен присутствовать закрывающий параметр в виде /.
    • <bar-code code="2301441" marked="true" deleted="true" />

Используемые типы данных на схемах XSD для интеграции

Тип данныхНазваниеПример 
string

Текст

Строка символов в виде последовательности символов Unicode и ISO/IEC 10646, включая символы пробела. 

Для SetRetail без перевода строки или табуляции

<name>Мясо свежее 2389/333</name>
boolean

Логический

Принимает только значения в виде true или false.

Не принимаются значения 1 или 0 при импорте в SetRetail.

<marked>true</marked>



list

Список

Перечисление списка значений через пробел в одном элементе.

<shop-indices>123 455 3988 3498</shop-indices>
int

Числовой

Любое целое число.

<AdvertisingAction ....>
        ....
		<actionResults>
            <notification limit="4"/>
		</actionResults>
</AdvertisingAction>
decimal

Числовые десятичные типы данных, используемые для определения числовых значений разделенный точкой


price="5.6"

<price-entry 

marking-of-the-good="1224" 
currency="RUB" 

price="5.6" 

price-type="DISCOUNT_PERCENT">
float32-х битное число с плавающей точкой. Разделение точкой обязательно.
<vat>18.0</vat>
double64-х битное число с плавающей точкой. Разделение точкой обязательно.
<AdvertisingAction priority = "12.344" ....>
      ....
</AdvertisingAction>
long64-разрядное (большое) целое число без разделителя.
<AdvertisingAction ....>
    ....
	<actionResults>
            <bonus AccountTypeID="34923784872349878"/>
	</actionResults>
</AdvertisingAction>
dateTimeВремя в виде комбинации календарной даты и времени.
<begin-date>2012-02-21T00:00:00Z</begin-date>
nonNegativeIntegerНеотрицательное целое число, от 0 и больше.
<AdvertisingAction ....>
    ....
	<externalConditions>
        <birthday-condition days-before="10"/>
	</externalConditions>
</AdvertisingAction>
positiveIntegerПоложительное целое число, от 0 и больше.
<AdvertisingAction ....>
    ....
	<pricetag-template count="1"/>
</AdvertisingAction>
[...]Type

Комплексный тип элемента. Если присутствует, то у элемента есть наличие атрибутов.

Если такой тип есть у атрибута, то, тогда у него есть список из значений.

<AdvertisingAction mode = "by-condition" ....>
     ....
</AdvertisingAction>