Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: XML-файлы
Дальше: Базовые средства «1С:Предприятия» для работы с XML

Основные положения

XML-документ в общем случае представляет собой файл с расширением XML, имеющий текстовое наполнение. Исходя из этого можно сказать, что самым простейшим редактором таких документов может служить Блокнот (Notepad), хотя существует довольно большое количество специализированных редакторов.

XML-документы по сравнению с обычными текстовыми документами имеют следующие отличительные черты:

При необходимости произвести обмен данными посредством XML-документов:

Следует отметить, что, рассматривая особенности механизмов, позволяющих работать с XML-документами из «1С:Предприятия», мы в дальнейшем не будем подробно касаться таких понятий, как пространство имен (описанное в нем пространство типов), схема XML-документа. Но необходимо отдавать себе отчет в том, что при организации обмена с произвольными информационными системами понадобится более детальная работа с ними.

Перейдем к рассмотрению структуры и общих принципов формирования XML-документов.

При рассмотрении внутреннего наполнения XML-документов в них можно выделить определенные форматирующие конструкции. По аналогии с HTML их можно назвать тегами. Под тегом будем понимать некое выражение, заключенное в угловые скобки <выражение>.

Различают открывающий тег <тег> и закрывающий тег </тег>. В отличие от языка HTML, в языке XML имена тегов не фиксированы, разработчик волен давать им собственные имена, определять у них произвольные свойства с любыми типами значений. В имени тега XML могут использоваться точки (правда, это может не поддерживаться рядом специализированных редакторов). В содержимом атрибутов, элементов пробелы и символы табуляции не игнорируются.

Перейдем от термина «тег» к терминам более правильным по отношению к XML-документу. Можно сказать, что минимальной логической единицей XML-документа является элемент. У элемента может быть определено несколько атрибутов (упрощенно атрибут можно назвать свойством элемента). У любого элемента может быть один (непосредственный) элемент-владелец (его нет только у единственного корневого элемента XML-документа) и любое количество подчиненных элементов (рис. 6.2).

Рис. 6.2. Пример иерархии элементов XML

Следует отметить, что в различной литературе используемая терминология может различаться. То, что в данной главе называется элементом, может называться узлом. В используемой нами терминологии понятие «узел» также встречается, но под ним понимается структурная часть элемента XML (такая как начало элемента, текст и т. д.).

Рассмотрим структуру элемента XML (рис. 6.3).

Рис. 6.3. Схема элемента XML

Пример, иллюстрирующий приведенную схему, приведен в листинге 6.40.

Листинг 6.40. Пример элемента XML

<Товар ИмяСправочника = «Номенклатура» Код = «14»>Ardo TL 1000 EX-1</Товар>

В данной строке определен элемент с именем Товар. В начале элемента определяются два атрибута с именами ИмяСправочника и Код (соответственно со значениями Номенклатура и 14). Между началом элемента и его концом (</Товар>) расположен текст элемента (его значение Ardo TL 1000 EX-1). Вместо текста между тегами, описывающими начало и конец элемента, может находиться описание вложенных элементов.

Также допускается следующий вариант определения элемента XML-документа (рис. 6.4).

Рис. 6.4. Схема элемента XML

Приведенная схема представляет следующий вариант описания элемента (листинг 6.41).

Листинг 6.41. Пример элемента XML

<Товар Код = «14» Наименование = «Ardo TL 1000 EX-1»/>

Данный вариант допустим, когда между открывающим и закрывающим тегом нет текста и нет вложенных элементов. Поэтому вместо <Товар></Товар> допустима конструкция <Товар/>. В приведенном описании определяются элемент с именем Товар и два атрибута с именами Код и Наименование.

Рассмотрим пример XML-документа (листинг 6.42).

Листинг 6.42. Пример XML-документа

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

<Корневой>

<DocumentObject.ПриходнаяНакладная>

<Ref>4c0a4c73-905d-11d8-92a4-00030d0ca645</Ref>

<DeletionMark>false</DeletionMark>

<Date>2020-01-17T14:52:43</Date>

<Number>000000001</Number>

<Posted>true</Posted>

<Контрагент>4c0a4c72-905d-11d8-92a4-00030d0ca645</Контрагент>

<Товары>

<Row>

<Номенклатура>efbfeaf4-831d-11d8-957e-00c026abdd5e</Номенклатура>

<Количество>10</Количество>

<Цена>900</Цена>

<Сумма>1000</Сумма>

</Row>

<Row>

<Номенклатура>efbfeaf6-831d-11d8-957e-00c026abdd5e</Номенклатура>

<Количество>10</Количество>

<Цена>1000</Цена>

<Сумма>10000</Сумма>

</Row>

</Товары>

</DocumentObject.ПриходнаяНакладная>

</Корневой>

В первой строке XML-документа определяется директива, указывающая на то, что данный документ с текстовым содержимым является XML-документом. Далее определяется элемент Корневой. Внутри него определяются другие элементы. Можно сказать, что в данном документе просматривается определенная древовидная структура (она показана на рис. 6.5).

Рис. 6.5. Древовидная структура XML-документа

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

При рассмотрении любого XML-документа можно говорить о его синтаксической правильности и корректности.

Синтаксически правильный XML-документ, упрощенно, удовлетворяет следующим условиям:

Назад: XML-файлы
Дальше: Базовые средства «1С:Предприятия» для работы с XML