Суффикс является дополнительным элементом и может формироваться с использованием различных семантических интерпретаций EDI-элементов.
Если XML-схемный файл формируется из EDIFACT MIG-инструкции, то необходимо указывать лишь префикс "D_". Поскольку в других EDI-стандартах должны использоваться иные префиксы, которые будут идентифицировать составные элементы данных и просто элементы данных путем применения цифровых тегов, то префиксы должны быть обязательными.
Второе представление тегов группы сегментов можно использовать в том случае, когда базовый EDI-стандарт не дает каких-либо конкретных групп сегментов или же всякий раз, когда желательно представление сегментов ряда операций. В последнем случае формирование вложения групп сегментов необходимо задавать как последовательность сегментов операций.
Рекомендации W3C XML предполагают использование "тегов, не требующих пояснений". EDI[FACT]-теги отвечают этим требованиям в большей степени, чем теги, записанные на естественном языке, поскольку для EDI-специалистов они представляют устоявшийся общепонятный смешанный язык из элементов романских, греческого и восточных языков.
Пример -
<xsd:element name ="M_ORDERS">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_1004"/>
<xsd:element ref="din:D_2380"/>
<xsd:element ref="din:D_2380_2"/>
<xsd:element ref="din:G_SG2"/>
<xsd:element ref="din:G_SG2_2"/>
<xsd:element ref="din:D_6345" minOccurs="0" maxOccurs="5">
<xsd:element ref="din:G_SG25" minOccurs="1" maxOccurs="10">
<xsd:element ref="din:D_5004_2"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
6.1.2 Вариант 2
При необходимости "разговорные" теги могут формироваться из подходящего комментария. В этом случае EDI-источник для соответствующего элемента должен документироваться с помощью соответствующего атрибута (см. также 6.9) или любого другого средства документирования.
Пример -
<xsd:element name ="M_ORDERS">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:Order_number"/>
<xsd:element ref="din:Order_date"/>
<xsd:element ref="din:Delivery_date"/>
<xsd:element ref="din:Buyer"/>
<xsd:element ref="din:Seller"/>
<xsd:element ref="din:Currency" minOccurs="0" maxOccurs="5"/>
<xsd:element ref="din:Line_item_details" minOccurs="1"
maxOccurs="10"/>
<xsd:element ref="din:Total_order_value"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
...
<xsd:element name ="Name">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..10">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.C080.3036(0120:040:01)"/>
<!- - The attribute EDIPath contains the reference to the original EDI
standard - ->
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
6.2.1 Одни и те же EDI-теги или имена должны формировать сгруппированные элементы (см. также принцип, описанный в 6.10).
6.2.2 Если желательно разграничивать различные семантические элементы одного и того же контейнера данных, то для них необходимо использовать различные теги путем добавления суффикса к EDI-тегу или присваивать им различные имена.
6.2.3 Схема может содержать дополнительные "сшитые" между собой элементы для групп сообщений или их обмена (сопоставимые с UN/EDIFACT UNG-UNE и UNB-UNZ).
6.2.4 Любое использование EDI-контейнера данных (типа сообщения, группы сегментов, сегментов и т.п.) может представляться как независимый XML-элемент. Существующая EDI-структура является источником для XML-структуры, поэтому XML-схема должна обладать структурой, сопоставимой со структурой EDI MIG. Набор обобщенных XML-элементов не должен превышать набор EDI-элементов.
Примечание - Способ, с помощью которого автор описывает MIG-инструкцию, должен отвечать требованиям соответствующего бизнес-процесса, поэтому и схема должна соответствующим образом структурироваться. Если, например, MIG-инструкция содержит "дату документа" и "запрашиваемую дату поставки" в двух различных экземплярах DTM-сегмента, то соответственно должны формироваться и раздельные XML-элементы. Кроме того, если они документируются в одном и том же экземпляре DTM-сегмента, то будет формироваться только один XML-элемент.
Вариант 1: Инструкция содержит два DTM-сегмента (см. рисунок 1).
![]() DTM (#1), Status M, Occurrence 1, Qualifier in DE 2005: 4, Name: Order date
DTM (#2), Status M, Occurrence 1, Qualifier in DE 2005: 2, Name: Requested delivery date
Рисунок 1 - Диаграмма сообщения для инструкции,
содержащей два DTM-сегмента
Установленный по умолчанию переход в XML-схему в соответствии с 6.2.1 таков:
<xsd:element name ="S_DTM">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_2005"/>
<xsd:element ref="din:D_2380"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name ="D_2005" type ="din:D_2005">
<xsd:annotation>
<xsd:documentation>Type of date</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name ="D_2380" type ="xsd:decimal">
<xsd:annotation>
<xsd:documentation>Date/Time/Period</xsd:documentation>
</xsd:annotation>
</xsd:element>
Примечание - Элемент D_2005 принадлежит к перечислимому типу данных и содержит две положительные величины '2' и '4'.
В другом варианте применение принципа 6.2.2 дает следующий результат:
<xsd:element name ="D_2380" type ="xsd:decimal">
<xsd:annotation>
<xsd:documentation>Order date</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name ="D_2380_2" type ="xsd:decimal">
<xsd:annotation>
<xsd:documentation>Delivery date</xsd:documentation>
</xsd:annotation>
</xsd:element>
или
<xsd:element name ="Order_date" type ="xsd:decimal"/>
<xsd:element name ="Delivery_date" type ="xsd:decimal"/>
Вариант 2: Инструкция с неявно документированной датой, использующая только один DTM-сегмент (см. рисунок 2).
![]() DTM, Status M, Occurrence 2, Qualifier in DE 2005: 2 и 4
Рисунок 2 - Диаграмма сообщения для инструкции,
содержащей только один DTM-сегмент
Преобразование в XML-схему аналогично преобразованию, применяемому по умолчанию в соответствии с принципом 6.2.1, т.е.:
<xsd:element name ="S_DTM">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_2005"/>
<xsd:element ref="din:D_2380"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name ="D_2005" type ="din:D_2005">
<xsd:annotation>
<xsd:documentation>Type of date</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name ="D_2380" type ="xsd:decimal">
<xsd:annotation>
<xsd:documentation>Order date</xsd:documentation>
</xsd:annotation>
</xsd:element>
Поясняющий пример для 6.2.3:
<xsd:schema xmlns:xsd="/template/go.php?url=https://www.w3.org/2001/XMLSchema">
<xsd:element name ="S_UNB">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="D_0004" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="D_0010" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="D_0017" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="D_0020" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="M_ORDERS" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
...
Если главный интерес представляют одноуровневые XML-структуры, то применение нижеследующих принципов будет приводить к получению оптимизированных результатов, однако для их интеграции в существующие системы необходимо соблюдать минимальные требования к структуре данных, устанавливаемые применяемой EDI-системой.
6.3.1 EDIFACT-сегмент, который содержит несколько элементов с коммерческой информацией, обладает обобщающей функцией. Если же этот сегмент содержит только один элемент с коммерческой информацией, то он этой функцией не обладает и при преобразовании в XSD-схему данный уровень сегмента может выпадать.
6.3.2 Элементы основного стандарта, не используемые в MIG-инструкции, будут исключаться.
6.3.3 Постоянные префиксы или коды не переходят в XML-структуру (для определенного элемента данных только один код будет документироваться в MIG-инструкции). Соответствующие элементы данных не должны переходить в XML-структуру.
Ниже приведено несколько примеров.
Получено из:
<xsd:element name ="S_DTM">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:C_C507"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name ="C_C507">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_2005"/>
<xsd:element ref="din:D_2380"/>
<xsd:element ref="din:D_2379"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_2379" fixed ="102"/>
<xsd:element name ="D_2005" fixed ="4"/>
<xsd:element name ="D_2380" type ="xsd:decimal">
<xsd:annotation>
<xsd:documentation>Order date</xsd:documentation>
</xsd:annotation>
</xsd:element>
Этот принцип дает:
<xsd:element name ="D_2380" type ="xsd:decimal">
<xsd:annotation>
<xsd:documentation>Order date</xsd:documentation>
</xsd:annotation>
</xsd:element>
Уровни сегментов и составных элементов данных не требуются, поскольку они содержат только постоянные префиксы и поэтому исключаются.
EDI-состояние и прикладной статус в MIG-инструкции будут объединены в XML-состоянии (с поддержанием больших ограничений).
Состояние "обязательное" будет представляться с помощью минимально повторяющегося индекса "1", а состояние "условное" - с помощью минимально повторяющегося индекса "0". Состояние задается атрибутом minOccurs.
Пример -
Число экземпляров MIG-инструкции формирует число XML-экземпляров. Это значение будет задаваться с помощью XSD-атрибута maxOccurs.
Пример -
При использовании версии 4 EDIFACT-синтаксиса (см. ИСО 9735-1) и соответствующих каталогов этот принцип применим и к составным элементам данных, и к элементам данных.
6.6.1 Обозначения "an" и "a" относятся к формату представления данных "строка", а обозначение "n" - к формату представления данных "десятичный". Для длин буквенно-символьных и цифровых элементов данных, как это определено в MIG-инструкции, будет формироваться соответствующий атрибут simpleTypes.
6.6.2 Форматы представления даты могут передаваться в XML-типы данных "date", "timeInstant" и "time". В этом случае необходимо использовать преобразование форматов, имеющих следующее представление в XML:
Пример -
<xsd:simpleType name="string1..70">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="70"/>
</xsd:restriction>
</xsd:simpleType>
6.7.1 Кодированные элементы данных должны определяться как данные комплексного типа. Если в MIG-инструкции задокументированы только специальные коды элементов данных, то именно эти коды станут допустимыми для приложений и будут передаваться в XML-структуру.
6.7.2 Если в MIG-инструкции для элементов данных коды не предусмотрены, то допускается наличие перечня всех имеющихся кодов, который будет передаваться в XML-структуру.
6.7.3 Перечни многократно используемых кодов могут предоставляться с помощью внешних файлов.
6.7.4 Наименования кодов будут дополнительно сохраняться в виде аннотаций к ним.
6.7.5 Согласно принципу 3 (см. 6.3) постоянные префиксы или коды не должны передаваться в XML-структуру (только один определенный элемент данных документируется в MIG-инструкции). Соответствующие элементы данных не должны предусматриваться в XML-структуре, однако в случае острой необходимости в использовании какого-либо элемента данных его необходимо включать в XML-структуру (например, вид валюты, соответствующий элементу данных 6345 в сегменте MOA).
Примеры -
(1)
<xsd:element name ="D_6345" type ="D_6345"/>
<xsd:simpleType name="D_6345">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DEM">
<xsd:annotation>
<xsd:documentation>Deutsche Mark</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="EUR">
<xsd:annotation>
<xsd:documentation>Euro</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="GBP">
<xsd:annotation>
<xsd:documentation>Pfund Sterling</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
(2)
<xsd:simpleType name="D_6347">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="1"/>
<xsd:enumeration value="2"/>
<xsd:enumeration value="3"/>
<xsd:enumeration value="4"/>
<xsd:enumeration value="5"/>
<xsd:enumeration value="6"/>
<xsd:enumeration value="7"/>
... etc. listing of the complete code list
</xsd:simple Type>
(3)
<?xml version="1.0"?>
<xsd:schema targetNamespace="/template/go.php?url=https://www.din.de/ example/orders"
xmlns:din="/template/go.php?url=https://www.din.de/ example/orders"
xmlns:xsd="/template/go.php?url=https://www.w3.org/2000/10/XMLSchema">
<include schemaLocation="CL_6411.xsd"/>
<xsd:element name ="D_6411" type ="din:CL_6411">
<xsd:annotation>
<xsd:documentation>Measure unit</xsd:documentation>
</xsd:annotation>
</xsd:element>
...
External file with codes:
<?xml version="1.0"?>
<xsd:schema targetNamespace="/template/go.php?url=https://www.din.de/example/orders"
xmlns:din="http//www.din.de/example/orders "
xmlns:xsd="/template/go.php?url=https://www.w3.org/2000/10/XMLSchema">
<xsd:simpleType name="CL_6411">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ACR"/>
<xsd:enumeration value="AMH"/>
......
(4)
<xsd:simpleType name="CL_6411">
<xsd:restriction base="xsd:string ">
<xsd:enumeration value="TNE">
<xsd:annotation>
<xsd:documentation>Tonne (1000 kg) *</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="KGM">
<xsd:annotation>
<xsd:documentation>Kilogram *</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="GRM">
<xsd:annotation>
<xsd:documentation>Gram *</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="DZN">
<xsd:annotation>
<xsd:documentation>Dozen</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
(5)
<xsd:element name ="D_6345" type ="din:D_6345"/>
<xsd:simpleType name="D_6345">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DEM">
<xsd:annotation>
<xsd:documentation>Deutsche Mark</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
6.8.1 Стандартизованные или присваиваемые пользователем имена групп сегментов, сегментов, составных элементов данных и элементов данных могут предусматриваться в схеме как атрибут "annotation". В качестве атрибута для любого XML-элемента допускается использовать только одно EDI-имя.
6.8.2 Если ED-объект имеет стандартизованное или присвоенное пользователем имя, сохраняется только последнее.
Примечание - Последнее утверждение относится к имени объекта, которое может находиться по присвоенному пользователем имени, BSU или другим образом в MIG-инструкциях. При этом XML-файл будет оставаться незаполненным, а логическое преобразование - легко реализуемым с помощью синтаксического анализатора.
Примеры -
(1)
<xsd:element name ="S_DTM">
<xsd:annotation>
<xsd:documentation>Date/Time/Period</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_2005"/> ...
(2)
<xsd:element name ="S_DTM">
<xsd:annotation>
<xsd:documentation>Order or delivery date </xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_2005"/> ...
6.9.1 Поскольку MIG-инструкция содержит подробное описание размещения данных, то в качестве атрибутов могут формироваться "точки привязки", которые будут позволять применять XML-формат обмена данными к EDI-подсистемам.
6.9.2 С помощью атрибута EDISource предусмотрен EDI[FACT]-источник. Это обозначение атрибута сочетает в себе функциональное назначение применяемого документирования и основную информацию относительно версии каталога, например EDIFACT-каталога.
При этом применимы следующие правила:
- путь указывается в форме "segmentgroup.segment.compositedataelement.dataelement" или "segmentgroup.segment.dataelement";
- группа сегментов может оказаться многочисленной для указания уровней EDI[FACT]-структуры;
- при наличии нескольких семантических вариантов для групп сегментов квалификационный сегмент, его префикс и соответствующие значения в префиксе должны записываться в квадратных скобках.
В конце порядкового номера сегмента, приведенного в исходном типе EDIFACT-сообщения, необходимо также добавлять порядковый номер элемента данных (составного или простого) в соответствующий сегмент после двоеточия и при необходимости - порядковый номер компонента в составном элементе данных.
Например, запись вида (0120:020:02) должна читаться следующим образом: "порядковый номер в стандарте": "порядковый номер составного элемента данных или элемента данных":"при необходимости - порядковый номер компонента в составном элементе данных".
Примеры -
(1)
<xsd:element name ="D_3433">
<xsd:annotation>
<xsd:documentation>BIC of buyer's bank</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="xsd:decimal>
<xsd:attribute name="Mapping_anchor" type="xsd:string"
use="fixed"value="BIC-BB"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
(2)
<xsd:element name ="D_3433">
<xsd:annotation>
<xsd:documentation>BIC of buyer's bank</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="xsd:decimal">
<xsd:attribute name="EDIPath" type="xsd:string" use="fixed"
value="SG2[NAD.3035=BY].FII.C088.3433(0140:030:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
При наличии сценариев реализации с использованием различных типов сообщений и при желании пользователя сгруппировать контейнеры данных с одинаковыми именами и уникальным образом описать их в сценарии, применимы следующие принципы:
6.10.1 Структура
Сгруппированные контейнеры данных должны содержать по крайней мере все те субэлементы, которые используются и задокументированы в MIG-инструкции (инструкциях). Последовательность этих элементов должна быть совместимой с последовательностью, задаваемой EDI-стандартом.
6.10.2 Состояние
В сгруппированном контейнере данных состояние субэлемента должно устанавливаться как свободное (опционное), если этот субэлемент уже был использован как добавочный в указанном контейнере данных в рамках всего сценария сообщений.
Пример - ORDERS DTM 2379 состояние: R, IFTMIN DTM 2379 состояние: O
6.10.3 Формат
Формат должен определяться в соответствии с широко используемым форматом, указанным в MIG-инструкции (инструкциях).
Пример - ORDERS DTM 2380 формат: n8, IFTMIN DTM 2380 формат: an..35
6.10.4 Перечень кодов
Для каждого кодированного элемента данных необходимо формировать сгруппированный перечень кодов, содержащий все коды, применимые согласно MIG-инструкции (инструкциям).
Пример - ORDERS DTM 2380 перечень кодов: 102;103, IFTMIN DTM 2380 перечень кодов: 103;203
(справочное)
ПРИМЕР ПРЕОБРАЗОВАНИЯ ДАННЫХ ИЗ EDIFACT В XML
Примечание - Приведенные в данном приложении примеры основаны на использовании тегов, выраженных на немецком языке, однако не исключено и использование для них и других языков. Состояние, обозначаемое буквой R, означает "требуемое", а состояние, обозначаемое буквой O, означает "свободное, опционное". Оба эти состояния имеют тот же смысл, что и состояние, обозначаемое буквами M ("обязательное") и C ("условное"). Состояние, обозначаемое буквой N, означает, что оно "не используется".
A.1.1 Общие положения
Основой для формирования XML-структуры является применение в EDIFACT сообщения типа ORDERS (Заказ на покупку) со следующими особенностями:
A.1.2 Структура сообщения
A.1.2.1 Таблица сегментов
Таблица A.1
Таблица сегментов для EDIFACT-сообщений типа ORDERS
A.1.2.2 Диаграмма, иллюстрирующая структуру сообщения
![]() Рисунок A.1 - Диаграмма структуры сообщения
(схема ветвления), основанная на EDIFACT ORDERS
A.1.3 Описание сегмента
Примечание - Это заголовок сегмента сообщения.
Пример - UNH+1+ORDERS:D:93A:UN'.
Пример - BGM+220+1-96'.
Пример - DTM+4:19960101:102'.
Примечание - Данный сегмент должен использоваться для передачи запрашиваемой даты поставки.
Пример - DTM+2:19960110:102'.
Пример - NAD+BY+++BONBON AG+SIRUPSTRASSE 15+ZUCKERSTADT++55555'.
Примечание - Данный сегмент должен использоваться для передачи сведений о банке покупателя и номере его счета.
Пример - FII+BB+1236547890:BONBONAG+10090045:25:131:262:::SBANK'.
Пример - RFF+VA:DE9988877'.
Пример - CTA+IC+Bart Simpson'.
Пример - COM+05368-22347:TE'.
Пример - COM+05368-22555:FX'.
Пример - NAD+SE+++KAKAO GMBH+FRUCHTSTRASSE 1+SAHNEBERG++98765'.
Пример - CUX+2:EUR:9'.
Примечание - Строки позиций изделия в заказе состоят из одного или нескольких повторов групп сегментов, начинающихся с сегмента LIN. Каждый сегмент LIN относится только к одному изделию.
Пример - LIN+1++2001:SA'.
Пример - IMD+F++:::SCHOKOLADEN MASSE:BRAUN'.
Пример - QTY+21:2:TNE'.
Примечание - Данный сегмент содержит строку позиции суммы (цена x количество).
Пример - MOA+203:2800.
Пример - PRI+AAB:1400::CAT::TNE'.
Пример - UNS+S'.
Пример - MOA+86:2800'.
Пример - UNT+20+1'.
A.2.1 XML-схема с EDI-тегами и областью имен
Примечание - Область имен 'din' в примерах данного подраздела указана лишь для иллюстративных целей и может быть либо исключена, либо заменена на любую другую подходящую область имен.
<?xml version="1.0" encoding='windows-1251'?>
<!- - automatically generated by GEFEG EDIFIX - ->
<!- - /template/go.php?url=https://www.gefeg.com - ->
<xsd:schema xmlns:xsd="/template/go.php?url=https://www.w3.org/2001/XMLSchema"
xmlns:din="/template/go.php?url=https://www.din.de/examples/orders"
targetNamespace="/template/go.php?url=https://www.din.de/examples/orders">
<xsd:element name ="M_ORDERS">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_1004"/>
<xsd:element ref="din:S_DTM" minOccurs="1" maxOccurs="2"/>
<xsd:element ref="din:G_SG2" minOccurs="1" maxOccurs="2"/>
<!- - Alternative could be "G_NAD" - ->
<xsd:element ref="din:D_6345" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:G_SG25" minOccurs="1" maxOccurs="10"/>
<!- - Alternative could be "G_LIN" - ->
<xsd:element ref="din:D_5004_2"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string" fixed="ORDERS"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="S_DTM">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_2005"/>
<xsd:element ref="din:D_2380"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string" fixed="ORDERS.DTM(0030)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="G_SG2">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_3035"/>
<xsd:element ref="din:D_3036"/>
<xsd:element ref="din:D_3042" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_3164" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_3251" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:S_FII" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_1154" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_3413" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:S_COM" minOccurs="0" maxOccurs="2"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string" fixed="ORDERS.SG2(0110)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="G_SG25">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_1082" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_7140"/>
<xsd:element ref="din:D_7008" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_7008_2" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_6060" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_6411" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_5004" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="din:D_5118" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25(0930)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="S_FII">
<xsd:complexType>
<xsd.sequence>
<xsd:element ref="din:D_3194"/>
<xsd:element ref="din:D_3433"/>
<xsd:element ref="din:D_3432" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.FII(0140)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="S_COM">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="din:D_3148"/>
<xsd:element ref="din:D_3155"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG5.COM(0230)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_1004">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..8">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.BGM.1004(0020:020)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_6345">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:D_6345">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG7.CUX.C504.6345(0250:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_5004_2">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:decimal1..12">
<xsd:attributename="EDIPath" type="xsd:string"
fixed="ORDERS.MOA.C516.5004(2010:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_2005">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:D_2005">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.DTM.C507.2005(0030:010:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_2380">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:decimal8">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.DTM.C507.2380(0030:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3035">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:D_3035">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.3035(0120:010)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3036">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..10">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.C080.3036(0120:040:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3042">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..35">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.C059.3042(0120:050:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3164">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..35">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.3164(0120:060)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3251">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:decimal5">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.3251(0120:080)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_1154">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..35">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG3.RFF.C506.1154(0160:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3413">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..15">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG5.CTA.C056.3413(0220:020:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3194">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:decimal10">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.FII.C078.3194(0140:020:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3433">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:decimal8">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.FII.C088.3433(0140:030:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3432">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..70">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.FII.C088.3432(0140:030:07)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3148">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..12">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG5.COM.C076.3148(0230:010:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_3155">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:D_3155">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG5.COM.C076.3155(0230:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_1082">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:decimal1..5">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.LIN.1082(0940:010)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_7140">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..10">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.LIN.C212.7140(0940:030:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_7008">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..20">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.IMD.C273.7008(0960:030:04)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_7008_2">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:string1..20">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.IMD.C273.7008(0960:030:05)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_6060">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:decimal1..5">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.QTY.C186.6060(0970:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_6411">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:D_6411">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.QTY.C186.6411(0970:010:03)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_5004">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:decimal1..18">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.MOA.C516.5004(0980:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="D_5118">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="din:decimal1..12">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.SG27.PRI.C509.5118(1150:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="string1..8">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="8"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="D_2005">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="4"/>
<xsd:enumeration value="2"/>
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal8">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="8"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="D_3035">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="BY"/>
<xsd:enumeration value="SE"/>
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..10">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..35">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="35"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal5">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="5"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal10">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="10"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..70">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="70"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..15">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..12">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="12"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="D_3155">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="TE"/>
<xsd:enumeration value="FX"/>
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="D_6345">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DEM"/>
<xsd:enumeration value="GBP"/>
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal1..5">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="5"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..20">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="D_6411">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="TNE"/>
<xsd:enumeration value="KGM"/>
<xsd:enumeration value="GRM"/>
<xsd:enumeration value="LBR"/>
<xsd:enumeration value="LTR"/>
<xsd:enumeration value="DZN"/>
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal1..18">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="18"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal1..12">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Пример XML-сообщения для вышеописанной схемы:
<?xml version="1.0" encoding='windows-1251'?>
<!- - automatically generated by GEFEG EDIFIX - ->
<!- - /template/go.php?url=https://www.gefeg.com - ->
<din:M_ORDERS xmlns:din="/template/go.php?url=https://www.din.de/examples/orders"
xmlns:xsi="/template/go.php?url=https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/template/go.php?url=https://www.din.de/examples/orders order1.xsd">
<din:D_1004>1-96</din:D_1004>
<din:S_DTM>
<din:D_2005>4</din:D_2005>
<din:D_2380>19960101</din:D_2380>
</din:S_DTM>
<din:G_SG2>
<din:D_3035>BY</din:D_3035>
<din:D_3036>BONBON AG</din:D_3036>
<din:D_3042>SIRUPSTRASSE 15</din:D_3042>
<din:D_3164>ZUCKERSTADT</din:D_3164>
<din:D_3251>55555</din:D_3251 >
<din:S_FII>
<din:D_3194>1236547890</din:D_3194>
<din:D_3433>10090045</din:D_3433>
<din:D_3432>SBANK</din:D_3432>
</din:S_FII>
<din:D_1154>DE998887</din:D_1154>
<din:D_3413>BART SIMPSON</din:D_3413>
<din:S_COM>
<din:D_3148>05368-22347</din:D_3148>
<din:D_3155>TE</din:D_3155>
</din:S_COM>
</din:G_SG2>
<din:D_6345>EUR</din:D_6345>
<din:G_SG25>
<din:D_1082>1</din:D_1082>
<din:D_7140>2001</din:D_7140>
<din:D_7008>SCHOKGLADENMASSE</din:D_7008>
<din:D_6060>2</din:D_6060>
<din:D_6411>TNE</din:D_6411>
<din:D_5004>2800</din:D_5004>
<din:D_5118>1400</din:D_5118>
</din:G_SG25>
<din:D_5004_2>2890</din:D_5004_2>
</din:M_ORDERS>
A.2.2 Альтернативная XML-схема с "разговорными" тегами
<?xml version="1.0" encoding-windows-1251'?>
<!- - automatically generated by GEFEG EDIFIX - ->
<!- - /template/go.php?url=https://www.gefeg.com - ->
<xsd:schema xmlns:xsd="/template/go.php?url=https://www.w3.org/2001/XMLSchema">
<xsd:element name ="Order">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="OrderNumber"/>
<xsd:element ref="OrderDates" minOccurs="1" maxOccurs="2"/>
<xsd:element ref="OrderParties" minOccurs="1" maxOccurs="2"/>
<xsd:element ref="OrderCurreny" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="LineItems" minOccurs="1" maxOccurs="10"/>
<xsd:element ref="TotalOrderValue"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string" fixed="ORDERS"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="OrderDates">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="DateQualifier"/>
<xsd:element ref="Date"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.DTM(0030)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="OrderParties">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="PartyQualifier"/>
<xsd:element ref="Name"/>
<xsd:element ref="Street" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="City" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="PostCode" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="AccountInformation" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="VATNumber" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ContactName" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="Communication" minOccurs="0" maxOccurs="2"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2(0110)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="LineItems">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="LineItemNumber" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="SuppliersArticleNumber"/>
<xsd:element ref="ItemTextLine1" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ItemTextLine2" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="QuantityOrdered" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="MeasureUnit" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="LineItemAmount" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="UnitPrice" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25(0930)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="AccountInformation">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="AccountNumber"/>
<xsd:element ref="BIC"/>
<xsd:element ref="BankName" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.FII(0140)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="Communication">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="CommunicationNumber"/>
<xsd:element ref="CommunicationChannel"/>
</xsd:sequence>
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG5.COM(0230)"/>
</xsd:complexType>
</xsd:element>
<xsd:element name ="OrderNumber">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..8">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.BGM.1004(0020:020)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="OrderCurreny">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="OrderCurreny">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG7.CUX.C504.6345(0250:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="TotalOrderValue">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="decimal1..12">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.MOA.C516.5004(2010:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="DateQualifier">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="DateQualifier">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.DTM.0507.2005(0030:010:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="Date">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="decimal8">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.DTM.C507.2380(0030:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="PartyQualifier">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="PartyQualifier">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.3035(0120:010)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="Name">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..10">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.C080.3036(0120:040:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="Street">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..35">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.C059.3042(0120:050:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="City">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..35">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.3164(0120:060)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="PostCode">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="decimal5">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.NAD.3251(0120:080)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="VATNumber">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..35">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG3.RFF.C506.1154(0160:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="ContactName">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..15">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG5.CTA.C056.3413(0220:020:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="AccountNumber">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="decimal10">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.FII.C078.3194(0140:020:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="BIC">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="decimal8">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.FII.C088.3433(0140:030:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="BankName">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..70">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.FII.C088.3432(0140:030:07)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="CommunicationNumber">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..12">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG5.COM.C076.3148(0230:010:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="CommunicationChannel">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="CommunicationChannel">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG2.SG5.COM.C076.3155(0230:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="LineItemNumber">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="decimal1..5">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.LIN.1082(0940:010)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="SuppliersArticleNumber">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..10">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.LIN.C212.7140(0940:030:01)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="ItemTextLine1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..20">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.IMD.C273.7008(0960:030:04)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="ItemTextLine2">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="string1..20">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.IMD.C273.7008(0960:030:05)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="QuantityOrdered">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="decimal1..5">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.QTY.C186.6060(0970:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="MeasureUnit">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="MeasureUnit">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.QTY.C186.6411(0970:010:03)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="LineItemAmount">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="decimal1..18">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.MOA.C516.5004(0980:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name ="UnitPrice">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base ="decimal1..12">
<xsd:attribute name="EDIPath" type="xsd:string"
fixed="ORDERS.SG25.SG27.PRI.C509.5118(1150:010:02)"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="string1..8">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="8"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DateQualifier">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="4"/>
<xsd:enumeration value="2"/>
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal8">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="8"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="PartyQualifier">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="BY"/>
<xsd:enumeration value="SE"/>
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..10">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..35">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="35"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal5">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="5"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal10">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="10"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..70">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="70"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..15">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..12">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="12"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="CommunicationChannel">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="TE"/>
<xsd:enumeration value="FX"/>
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal1..5">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="5"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string1..20">
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="MeasureUnit">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="TNE"/>
<xsd:enumeration value="KGM"/>
<xsd:enumeration value="GRM"/>
<xsd:enumeration value="LBR"/>
<xsd:enumeration value="LTR"/>
<xsd:enumeration value="DZN"/>
<xsd:whiteSpace value="preserve"/>
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal1..18">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="18"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="decimal1..12">
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Пример XML-сообщения для вышеописанной схемы:
<?xml version="1.0" encoding='windows-1251'?>
<!- - automatically generated by GEFEG EDIFIX - ->
<!- - /template/go.php?url=https://www.gefeg.com - ->
<Order
xmlns:xsi="/template/go.php?url=https://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="order1.xsd">
<OrderNumber>1-96</OrderNumber>
<OrderDates>
<DateQualifier>4</DateQualifier>
<Date>19960101</Date>
</OrderDates>
<OrderParties>
<PartyQualifier>BY</PartyQualifier>
<Name>BONBON AG</Name>
<Street>SIRUPSTRASSE 15</Street>
<City>ZUCKERSTADT</City>
<PostCode>55555</PostCode>
<AccountInformation>
<AccountNumber>1236547890</AccountNumber>
<BIC>10090045</BIC>
<BankName>SBANK</BankName>
</AccountInformation>
<VATNumber>DE998887</VATNumber>
<ContactName>BART SIMPSON</ContactName>
<Communication>
<CommunicationNumber>05368-22347</CommunicationNumber>
<CommunicationChannel>TE</CommunicationChannel>
</Communication>
</OrderParties>
<OrderCurreny>EUR</OrderCurreny>
<LineItems>
<LineItemNumber>1</LineItemNumber>
<SuppliersArticleNumber>2001</SuppliersArticleNumber>
<ItemTextLine1>SCHOKOLADENMASSE</ItemTextLine1>
<QuantityOrdered>2</QuantityOrdered>
<MeasureUnit>TNE</MeasureUnit>
<LineItemAmount>2800</LineItemAmount>
<UnitPrice>1400</UnitPrice>
</LineItems>
<TotalOrderValue>2890</TotalOrderValue>
</Order>
(справочное)
НАЦИОНАЛЬНЫМ СТАНДАРТАМ РОССИЙСКОЙ ФЕДЕРАЦИИ
Таблица ДА.1
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/41/gost_39940.html
На правах рекламы:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||