Формирование документов в формате xml. Создание и редактирование XML-файла в Excel

24.06.2019

Рассмотрим процедуру преобразования объекта базы данных в формат XML:

  1. В окне базы данных выделите необходимый объект щелчком левой кнопки мыши и выберите команду Файл, Экспорт (File, Export) или щелкните по объекту правой кнопкой и выберите в контекстном меню команду Экспорт (Export).
  2. Появится диалоговое окно Экспорт объекта (Export To). В раскрывающемся списке Типы (Save as type) выделите элемент Документы XML (XML Documents). В поле Имя файла (File name) введите название документа HTML и нажмите кнопку Экспорт (Export).
  3. Появится диалоговое окно Экспорт XML (Export XML) (рис. 12.9).
  4. Это диалоговое окно содержит три флажка для трех составляющих документа XML: данных, схемы данных и представления данных (о них см. разд. "Формат XML в Microsoft Office 2002" данной главы). Установите флажки для тех частей документа XML, которые необходимо получить в результате экспорта. Например, если установить одновременно флажки данные (XML) (Data (XML)) и схема данных (Schema of the data), то схема данных будет экспортирована и сохранена отдельно от файла данных XML, в файле XSD. Для таблиц можно экспортировать только данные или их структуру или данные и структуру вместе и не экспортировать представление таблицы в виде Web-страницы: флажок презентация данных (XSL) (Presentation of your data (XSL)) можно снять.

Рис. 12.9. Диалоговое окно Экспорт XML

Замечание

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

  1. Чтобы установить дополнительные параметры преобразования, нажмите кнопку Дополнительно (Advanced) (рис. 12.10).

Рис. 12.10. Вкладка Данные диалогового окна Экспорт XML

  1. Кроме того, это диалоговое окно содержит еще две вкладки для двух оставшихся составляющих документа XML: схемы данных и представления данных. На каждой из этих вкладок можно установить флажок, позволяющий экспортировать соответствующую часть документа XML, указать путь и имя файла, в котором будет сохранена эта часть документа, и задать некоторые дополнительные параметры:
    • на вкладке Данные (Data) с помощью раскрывающегося списка Кодировка (Encoding) можно выбрать кодировку для сохранения содержимого страницы;
    • на вкладке Схема (Schema) с помощью переключателей можно выбрать, экспортировать ли структуру данных в отдельный файл XSD или внедрить ее в файл XML вместе с данными;

Рис. 12.11. Отчет "Счет", открытый в базе данных

  • на вкладке Презентация (Presentation) с помощью переключателей можно выбрать формат представления Web-страницы: обрабатываемый на стороне клиента HTML или на стороне сервера ASP. Если экспортируемый объект содержит рисунки, которые необходимо включить в результирующий документ, можно указать имя папки, в которой они расположены. На этой же вкладке есть поле для ввода имени файла XSL с описанием оформления страницы. Если указанный файл не существует, Access 2002 создаст файл в формате XSL описанием внешнего представления документа (разработчик может использовать его в дальнейшем как основу для разработки файла в формате XSLT для преобразования документа XML в другой формат).

Если потребуется дополнительная информация о представлении данных в формате XML, нажмите кнопку Справка (Help). Информацию о разработке и преобразовании документов XML можно найти на Web-узле Microsoft для разработчиков: http://msdn.microsoft.com/ .

Рис. 12.12. Отчет "Счет", данные которого преобразованы в формат XML, открытый в Internet Explorer

  1. Нажмите кнопку ОК.
  2. Если предложенные параметры преобразования не были изменены, в результате будут созданы три файла: XML - с данными, XSL - со стилями и НТМ - с представлением преобразованного объекта. Чтобы открыть полученную Web-страницу, требуется открыть в Internet Explorer файл НТМ или ASP, в зависимости от того, какой формат представления был выбран..

К сожалению, подчиненные формы и отчеты, а также связанные рисунки не будут добавлены в документ XML, полученный из объекта базы данных. Однако простые объекты с внедренными рисунками, экспортированные в формат XML, будут выглядеть практически точно так же, как исходные в Access. Вы можете в этом убедиться, сравнив, к примеру, исходный и преобразованный в формат XML отчет "Счет" (Invoice) из базы данных "Борей" (Northwind) (рис. 12.11 и 12.12).

Если данных в источнике данных выбранного объекта много, загрузка Web-страницы в программу просмотра Интренета может занять существенное время.

Замечание

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

Введение в правильную разметку

XML означает Extensible Markup Language, с акцентом на markup (разметка). Вы можете создавать текст и размечать его при помощи обрамляющих тегов, превращая каждое слово, предложение или фрагмент в идентифицируемую, сортируемую информацию. Создаваемые вами файлы, или экземпляры документа , состоят из элементов (тегов) и текста, причем элементы помогают правильно понимать документ при чтении на бумаге или даже обрабатывать его в электронном виде. Чем больше описательных элементов, тем больше частей документа можно идентифицировать. С первых дней существования разметки одно из ее преимуществ заключается в том, что в случае потери компьютерной системы распечатанные данные все равно остаются читабельными благодаря тегам.

Языки разметки прошли путь от первых форм, создаваашихся компаниями и госучреждениями, до Стандартного языка обобщенной разметки (Standard Generalized Markup Language - SGML), Гипертекстового языка разметки (Hypertext Markup Language - HTML) и в конечном итоге до XML. SGML может показаться сложным, а HTML (который, по сути, сначала был просто набором элементов) оказался недостаточно мощным для идентификации информации. XML разрабатывался как простой в применении и удобный для расширения язык разметки.

В XML можно создавать свои собственные элементы, что позволяет точно представлять фрагменты данных. Документы можно не просто разделять на абзацы и заголовки, но и выделять любые фрагменты внутри документа. Чтобы это было эффективно, нужно определить конечный перечень своих элементов и придерживаться его. Элементы можно определять в Описании типа документа (Document Type Definition - DTD) или в схеме, что будет кратко обсуждено ниже. Когда вы освоите и начнете использовать XML, не бойтесь экспериментировать с именами элементов, создавая реальные файлы.

Построение документа XML

Как уже упоминалось, файлы XML состоят из текста и разметки. Большая часть текста помещается в элементы, в которых текст окружен тегами. Например, допустим, нужно создать поваренную книгу в формате XML. У нас есть рецепт под названием Ice Cream Sundae , который нужно преобразовать в XML. Чтобы разметить название рецепта, заключим его текст в элемент, который начинается и заканчивается тегами. Этот элемент можно назвать recipename . Чтобы отметить начальный тег элемента, поместим его имя в угловые скобки <>), вот так: . Затем введем текст Ice Cream Sundae . После текста поставим замыкающий тег, который представляет собой имя элемента в угловых скобках, плюс косая черта завершения элемента (/) перед именем элемента, вот так: . Эти теги образуют элемент , в который можно вводить текст и даже другие элементы.

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

Начало создания файла XML

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

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

Создание корневого элемента

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

Листинг 1. Корневой элемент

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

Наименования элементов

Соблюдение регистра в тегах

При создании XML регистры начального и конечного тегов должны совпадать. В противном случае можно получить сообщение об ошибке при использовании или просмотре XML. Например, Internet Explorer не отображает текст в случае несовпадения регистров. Вместо этого он выводит сообщения о несовпадении начального и конечного тегов.

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

  • Пробелы в именах элементов не допускаются.
  • Имена должны начинаться с буквы, а не с цифры или знака. (После этой первой буквы можно использовать любую комбинацию из букв, цифр и допустимых символов.)
  • Регистр не имеет значения, но во избежание путаницы соблюдайте его.
Листинг 2. Другие элементы
Ice Cream Sundae 5 minutes

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

Вложение элементов

Вложение — это размещение элементов внутри других элементов. Эти новые элементы называются дочерними элементами, а элементы, которые их окружают, — их родительскими элементами. В в корневой элемент вложено несколько элементов. Это вложенные дочерние элементы , и Внутри элемента находится несколько одинаковых дочерних элементов . Вложение может делать XML-документ многоуровневым.

Типичная синтаксическая ошибка связана с вложенностью родительского и дочернего элементов. Каждый дочерний элемент должен быть целиком расположен между открывающим и замыкающим тегами своего родительского элемента. Дочерние элементы должны заканчиваться до начала следующего дочернего элемента.

Пример правильного вложения приведен в . Теги начинаются и завершаются без переплетения с другими тегами.

Листинг 3. Правильное вложение элементов XML.
Ice Cream Sundae 3 chocolate syrup or chocolate fudge 1 nuts 1 cherry 5 minutes

Добавление атрибутов

К элементам иногда добавляются Атрибуты . Атрибуты состоят из пары имя-значение, где значение берется в двойные кавычки ("), вот так: type="dessert" . Атрибуты позволяют сохранять вместе с элементом дополнительные параметры, меняя значения этих параметров от элемента к элементу в одном и том же документе.

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

Листинг 4. Наш файл XML с элементами и атрибутами
Ice Cream Sundae 5 minutes

Можно использовать любое количество атрибутов. Подумайте, какие подробности можно добавить в ваш документ. Атрибуты особенно полезны, если документы будут храниться -например, по типу рецептов. Имена атрибутов могут содержать такие же символы, что и имена элементов, с теми же правилами исключения пробелов и начала имени с буквы.

Правильно и неправильно построенный XML

Если вы следуете правилам, определенным в вашей структуре, вы сможете легко создавать правильно построенный код XML. Правильный XML — это код XML, составленный с соблюдением всех правил XML: правильное именование элементов, вложение, именование атрибутов и т.п.

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

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

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

Листинг 5. DOCTYPE

Этот пример означает, что ваш файл списка элементов с именем filename.dtd находится в вашем компьютере (то есть в каталоге SYSTEM , а не в общем каталоге PUBLIC).

Использование сущностей

Сущности (entity) могут представлять собой фрагменты текста или специальные символы. Они могут указываться внутри документа или вне его. Во избежание ошибок и для правильности отображения сущности должны быть надлежащим образом объявлены и выражены.

Нельзя вводить специальные символы прямо в текст. Для использования в тексте специальных символов их нужно сделать сущностями и использовать коды этих символов. В качестве сущностей можно определить фразы, такие как название компании, а затем использовать их по всему тексту. Чтобы создать сущность, назначьте ей имя и вставляйте это имя и вставляйте это имя в текст после знака амперсанда (&) и заканчивая точкой с запятой — например, &coname; (или другое имя). Затем укажите этот код в своей строке DOCTYPE в квадратных скобках(), как в . Этот код определяет текст, который подставляется вместо сущности.

Листинг 6. Сущность

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

Как избежать ошибок

Пока вы учитесь создавать XML-файлы, открывайте их в редакторе XML, чтобы удостовериться в их формальной правильности и убедиться, что правила XML соблюдены. Например, если у вас Windows® Internet Explorer®, вы можете просто открыть свой файл XML в браузере. Если ваши элементы, атрибуты и текст отображаются, значит файл XML составлен правильно. Если же присутствуют ошибки, вероятно, вы что-то напутали в синтаксисе, и вам нужно тщательно проверить свой документ на опечатки или пропуски тегов и знаков пунктуации.

Заключение

Усвоив несколько простых правил, вы можете гибко разрабатывать собственные элементы XML и их атрибуты. Правила XML не сложны. Набирать XML-документ тоже несложно. Главное - понять, что вы хотите от документов в смысле возможностей сортировки и поиска, а затем разработать элементы и атрибуты для удовлетворения этих требований.

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

XML – это универсальный формат работы с данными. Его поддерживает множество программ, в том числе из сферы СУБД. Поэтому конвертация информации в XML важна именно с точки зрения взаимодействия и обмена данными между различными приложениями. Excel как раз входит в число программ, которые работают с таблицами, и даже может выполнять манипуляции с базами данных. Разберемся, как конвертировать файлы Эксель в XML.

Конвертация данных в формат XML не такой уж простой процесс, так как в его ходе должна быть создана специальная схема (schema.xml). Впрочем, для преобразования информации в простейший файл данного формата достаточно иметь под рукой обычные инструменты сохранения в Excel, а вот для создания хорошо структурированного элемента придется основательно повозиться с составлением схемы и её подключением к документу.

Способ 1: простое сохранение

В Excel можно сохранить данные в формате XML, просто воспользовавшись меню «Сохранить как…» . Правда, нет гарантии, что потом все программы будут корректно работать с файлом, который был создан таким способом. Да и не во всех случаях этот способ работает.


Таким образом, преобразование файла из формата Excel в XML будет совершено.

Способ 2: инструменты разработчика

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

  1. По умолчанию вкладка инструментов разработчика отключена. Поэтому, прежде всего, нужно её активировать. Переходим во вкладку «Файл» и кликаем по пункту «Параметры» .
  2. В открывшемся окне параметров перемещаемся в подраздел «Настройка ленты» . В правой части окна устанавливаем галочку около значения «Разработчик» . После этого жмем на кнопку «OK» , размещенную в нижней части окна. Вкладка инструментов разработчика теперь включена.
  3. Далее открываем таблицу Excel в программе любым удобным способом.
  4. На её основе нам предстоит создать схему, которая формируется в любом текстовом редакторе. Для этих целей можно использовать и обычный Блокнот Windows, но лучше применять специализированное приложение для программирования и работы с языками разметки . Запускаем эту программу. В ней создаем схему. На нашем примере она будет выглядеть, как показано внизу на скриншоте окна Notepad++.

    Как видим, открывающим и закрывающим тегом для документа в целом служит «data-set» . В этой же роли для каждой строки выступает тег «record» . Для схемы вполне будет достаточно, если мы возьмем всего две строки таблицы, а не будем переводить её всю вручную в XML. Название открывающего и закрывающего тега столбца может быть произвольным, но в данном случае для удобства мы предпочли просто перевести русскоязычные наименования колонок на английский язык. После того, как данные внесены, просто сохраняем их через функционал текстового редактора в любом месте на жестком диске в формате XML под названием «schema» .

  5. Опять переходим к программе Excel с уже открытой таблицей. Перемещаемся во вкладку «Разработчик» . На ленте в блоке инструментов «XML» кликаем по кнопке «Источник» . В открывшемся поле в левой части окна жмем на кнопку «Карты XML…» .
  6. В открывшемся окне кликаем по кнопке «Добавить…» .
  7. Запускается окно выбора источника. Переходим в директорию расположения схемы составленной ранее, выбираем её и кликаем по кнопке «Открыть» .
  8. После того, как элементы схемы появились в окне, перетаскиваем их с помощью курсора в соответствующие ячейки наименования столбцов таблицы.
  9. Кликаем правой кнопкой мыши по полученной таблице. В контекстном меню последовательно переходим по пунктам «XML» и «Экспорт…» . После этого сохраняем файл в любой директории.

Как видим, существуют два основных способа конвертации файлов XLS и XLSX в формат XML программой Microsoft Excel. Первый из них предельно простой и заключается в элементарной процедуре сохранения с заданным расширением через функцию «Сохранить как…» . Простота и понятность данного варианта, несомненно, являются преимуществами. Но у него есть один очень серьезный недостаток. Преобразование выполняется без учета определенных стандартов, и поэтому файл, конвертируемый таким способом, сторонними приложениями может просто не распознаваться. Второй вариант предполагает составление карты XML. В отличие от первого способа, таблица, преобразованная по данной схеме, будет соответствовать всем стандартам качества XML. Но, к сожалению, не каждый пользователь сможет быстро разобраться с нюансами этой процедуры.

Достаточно часто многие пользователи современных компьютерных систем и программных продуктов разного типа сталкиваются с файлами, имеющими расширение.xml. Многие просто не представляют себе, что это за документ, как его открыть. Сейчас будет рассмотрено, Заодно выясним, что же он собой представляет и для чего нужен.

Что представляет собой файл XML

Начнем, пожалуй, с того, что, с точки зрения современных компьютерных технологий и программ, используемых для создания документов такого типа, представляет собой текстовый файл, в котором прописаны команды универсального расширяемого языка (Extensible Markup Language), который достаточно сильно напоминает известное средство разметки HTML.

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

В качестве примера можно взять, скажем, аудио-альбом какого-то исполнителя. Файл XML включает в себя информацию о годе выпуска, жанре, количестве и названиях треков, популярности и т. д. Правда, при посещении ресурсов во Всемирной паутине серферу не нужно задумываться о физическом открытии такого информационного файла, поскольку даже при воспроизведении песни онлайн в проигрывателе будут отображаться все данные по типу тех, которые содержатся в стандартных MP3-файлах в виде ID3-тегов. Информация как бы подгружается к воспроизводимому треку.

Вид XML-файла

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

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

Чем открыть стандартный XML-формат

Теперь посмотрим, как открыть файл XML. Как уже, наверное, многие поняли, это файл текстовый, а значит, проще всего использовать для его просмотра или редактирования любой, пусть даже самый примитивный редактор. Да хоть тот же «Блокнот» из стандартного набора Windows.

Однако здесь не все так просто. Дело в том, что по двойному клику файл без задания соответствующей ассоциации с какой-либо программой не откроется. В лучшем случае система предложит список наиболее подходящих приложений. Можно выбрать программу по своему усмотрению, а заодно поставить галочку напротив пункта постоянного использования выбранного приложения для всех файлов такого типа.

Можно поступить иначе, используя правый клик на файле с последующим выбором команды «Открыть с помощью…», после чего, опять же, выбрать нужное приложение либо из списка, либо указать местоположение основного исполняемого компонента (чаще всего это файл EXE).

Третий способ, позволяющий открыть файл XML, состоит в начальном запуске программы, а затем в использовании меню открытия файла (в большинстве случаев это сочетание Ctrl + O). При этом совершенно необязательно использовать «Блокнот». Пожалуйста, файл открывается без всяких проблем в том же приложении Word и ему подобных. Даже «майкрософтовский» Excel способен открывать данные такого формата.

Впрочем, если возникает необходимость редактирования XML-формата, тогда лучше применять профессиональные утилиты с поддержкой языкового синтаксиса, например, Oxygen XML Editor, XML Marker или EditiX Lite Version. Естественно, это далеко не все утилиты, способные работать с языком файла на высшем уровне. Сегодня таких программ можно найти очень много.

Теперь несколько слов о том, почему иногда появляется ошибка XML-файла при открытии. Чаще всего это связано с нарушением целостности самого файла, а также с некорректным введением описательных атрибутов или тегов. Кроме того, в Excel существует ограничение по лимиту отображаемых строк, так что в этом случае данные при открытии могут быть неполными.

Возможные ошибки при открытии XML-файла в виде вложения электронной почты

Иногда ошибки могут появляться, когда производится попытка открытия файла, являющегося вложением электронного сообщения. Чащу всего это относится к стандартным почтовым клиентам вроде Outlook Express.

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

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

Вместо итога

Как видим, ничего сложного в понимании структуры и способов открытия файлов такого формата нет. Здесь, правда, принципиально не рассматривался вопрос создания XML-данных, поскольку для полного понимания процесса нужно знать хотя бы азы самого языка. В остальном же, думается, сложностей с файлами такого формата у пользователей не возникнет.

Появилась задача создания XML файла на основе XSD схемы. Поиски по форумам приводили к большому количеству обсуждений, связанных с непониманием процесса, и всего к паре статей объясняющих суть. Люди задавали вопросы, бились над решением, но после того как задача поддавалась им, просто исчезали, не описав механизм. Это подтолкнуло на создание простого описания процесса.
P.S. Не ругайтесь сильно, моей целью не было создание некой наукообразной статьи, строго использующей правильную терминологию, а желание просто помочь сделать первый шаг к пониманию очень мощного механизма обмена через XML.
P.P.S. Сразу должен оговориться, что прилагаемый к статье файл выгрузки является только заготовкой, создающей только часть требуемой структуры XML файла, т.к. моя работа с этой выгрузкой имела скорее познавательный характер (копировать предыдущий документ по экспорту на сайте ФТС и загружать из Excel"овского файла только табличную часть Товары представилось более эффективным решением), а недостаток времени не позволял дописать создание всей структуры, исходя только из соображений перфекционизма.

Итак, зарегистрировавшись на сайте ФТС, стало понятно, что для создания документов Статистической отчетности по экспорту требуется выгрузка данных из документов Реализация товаров и услуг Управления торговлей и создания файла для загрузки.

Там возможно два варианта загрузки.

Первый: загрузка табличной части с Товарами из файла Excel (этот вариант и был выбран как рабочий, т.к. имел те плюсы, что не надо было возиться с обработкой "Шапки" документа, а можно было просто копировать предыдущий, изменив в "Шапке" то, что требовалось).

Второй: создание XML файла по схеме скачаной с сайта ФТС в виде "Альбома форматов электронных форм документов". Альбом представляет из себя достаточно большое количество XSD схем. В них была найдена схема "Статистической формы учета перемещения товара" и дополнительные файлы с описаниями типов для нее. Схемы прилагаются к статье в архиве с обработкой.

Для просмотра XSD схем использовался бесплатный Майкрософтовский XML Notepad 2007.

На изображении показан основной файл со схемой XSD "Статистическая форма учета перемещения товара". На изображении выделены основные блоки XSD схемы, требуемые нам для ее понимания.

Из схемы видно, что нам надо получить XML файл, заполненый структурой, указанной в ветке "xs:element" типа StaticFormType.

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

Данная структура имеет тип StaticFormType, который в свою очередь, состоит из базового типа BaseDocType, набора объектов разных типов и текстовых аттрибутов.

Базовый тип BaseDocStyle описывается в другом файле (и пространстве имен)
.

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

Теперь перейдем к работе в 1С. В двух словах, то что нам надо сделать сводится к следующему:

1. Создается ФабрикаXDTO

НашаФабрикаXDTO = СоздатьФабрикуXDTO(МассивПолныхИменФайловСоСхемамиXSD);

2. В фабрикеXDTO создаются все сложные типы данных, которые далее мы будем заполнять в создаваемом файле XML:

StaticFormType = МояФабрикаXDTO.Тип("urn:customs.ru:Information:CustomsDocuments:StaticForm:5.4.0", "StaticFormType");

Типы данных, входящих в некий тип, можно получить из коллекции его свойств:

CUOrganizationType = StaticFormType.Свойства.Получить("Consignee").Тип; NameType = CUOrganizationType.Свойства.Получить("OrganizationName").Тип; ShortNameType = CUOrganizationType.Свойства.Получить("ShortName").Тип; LanguageCodeType = CUOrganizationType.Свойства.Получить("OrganizationLanguage").Тип;

3. Когда все сложные типа данных созданы, создаем на их основе структуру XML файла, состоящую из объектов ФабрикиXDTO:

StaticFormType_ОбъектXDTO = МояФабрикаXDTO.Создать(StaticFormType); // коллекция с документами NewDocuments = МояФабрикаXDTO.Создать(DocumentsType); NewDocuments.PrDocumentName = МояФабрикаXDTO.Создать(PrDocumentNameType, "Товарная накладная"); NewDocuments.PrDocumentNumber = МояФабрикаXDTO.Создать(PrDocumentNumberType, "123-номер"); NewDocuments.PrDocumentDate = МояФабрикаXDTO.Создать(PrDocumentDateType, "2014-10-05"); StaticFormType_ОбъектXDTO.Documents.Добавить(NewDocuments);

Одновременно заполняем элементарные (простых типов) реквизиты.

4. Ну и наконец выгружаем все из ФабрикиXDTO в файл:

ФайлXML = Новый ЗаписьXML(); ФайлXML.ОткрытьФайл(ИмяФайла); ФайлXML.ЗаписатьОбъявлениеXML(); МояФабрикаXDTO.ЗаписатьXML(ФайлXML, StaticFormType_ОбъектXDTO); ФайлXML.Закрыть();

P.S. В архиве содержится файл заготовки выгрузки в XML (создаются только некоторые реквизиты, отражающие все случае заполнения файла) и схемы XSD.

Разархивировать все файлы в некоторую директорию.

XML будет создаваться в ней же.

Похожие статьи