Сайт о телевидении

Сайт о телевидении

» » Создаём XML-файл. Файл XML: что это такое и как его открыть

Создаём XML-файл. Файл XML: что это такое и как его открыть


Давно работаю с XML-файлами, но только сейчас задался вопросом: Как штатными средствами создавать и редактировать XML-файлы в MS Excel? Excel удобный и интуитивно понятный инструмент для создания, редактирования и обработки различных данных. Excel изучают в школе и, наверное, не найдется человека, умеющего работать на ПК и не владеющего основами работы в Excel. Поэтому на мой взгляд это наиболее подходящий инструмент, который можно рекомендовать простым пользователям для создания и редактирования файлов данных для различных приложений, в том числе Веб-приложений. У меня дома установлен MS Excel 2013 и на его примере я опишу те нехитрые процедуры, которые необходимо выполнить при создании XML-файла данных в Excel. Думаю, что и в более ранних версиях Excel это будет тоже работать. Чтобы создать XML-файл данных проделаем несколько несложных шагов. Рассмотрим их на примере создания файла данных событий .

1. Для начала необходимо в Excel создать и заполнить таблицу данных в соответствии со структурой данных. Используйте, пожалуйста, для этого пункт меню Вставка/Таблица .

2. Создадим схему файла XML. Для этого в текстовом редакторе введем следующие строки и и сохраним их в файле.

XHTML

0 0 0 0 Светлое Христово Воскресение. Пасха 0 0 -7 0 -7 Вход Господень в Иерусалим 1

0

0

0

0

Светлое Христово Воскресение. Пасха

0

0

-7

0

-7

Вход Господень в Иерусалим

1

3. Теперь откройте вкладку Разработчик , нажмите кнопку Источник и укажите файл-источник XML. При необходимости включите пункт меню Разработчик в Настройках Excel.

4. Осталось сопоставить элементы схемы и колонки таблицы, перетащив элементы на соответствующие заголовки колонок.

5. И последний шаг: экспортировать данные таблицы в XML-файл с помощью контекстного меню. Встаньте на любую ячейку таблицы, нажмите правую кнопку мыши, выберите XML/Экспорт… и сохраните XML-файл под нужным именем.

Сохраните Excel-файл для последующего редактирования и дополнения. В последующем пункты 1.-4. проделывать будет не нужно!

P.S. Зачем же я написал эту банальную заметку? Во-первых, чтобы самому не забыть, а во-вторых, думаю, что эта информация пригодится пользователям , начиная со следующей версии 0.6 ;-)

Если необходимо создать файл XML-данных и файл схемы XML из диапазона ячеек на листе, можно использовать версию 1.1 надстройки "Средства XML для Excel 2003" для расширения существующих возможностей XML в Microsoft Excel 2007 и более поздних версиях.

Примечание: Эта надстройка была разработана для Excel 2003. Документация и пользовательский интерфейс ссылаются на списки, которые в версиях приложения позднее Excel 2003 называются таблицами Excel.

Дополнительные сведения о работе с этой надстройкой см. в статье Использование надстройки "Средства XML" версии 1.1 для Excel 2003 .

Этап 2. Преобразование диапазона ячеек в таблицу XML

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

    На вкладке Надстройки в группе Команды меню щелкните стрелку возле надписи Средства , а затем нажмите кнопку Преобразовать диапазон в список XML .

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

    В поле Первая строка содержит имена столбцов выберите Нет , если первая строка содержит данные, или Да , если первая строка содержит заголовки столбцов, и нажмите кнопку ОК .

    Excel автоматически создаст схему XML, выполнит привязку ячеек к схеме и создаст таблицу XML.

    Важно: Если откроется редактор Visual Basic и отобразится сообщение об ошибке Visual Basic for Applications (VBA), выполните следующие действия.

    1. Нажмите кнопку ОК .

      В выделенную строку в модуле кода VBA удалите из строки «50». Другими словами, изменение:
      XMLDoc как msxml 2 . DOMDocument50
      Кому:
      XMLDocкак MSXML2 описывается. DOMDocument

      Нажмите клавишу F5 для поиска следующей строки, содержащей текст "XMLDoc As msxml2.DOMDocument50", нажмите кнопку ОК и измените строку, как в предыдущем пункте.

      Нажмите F5 еще раз, чтобы найти и изменить другие экземпляры строки.

      Если после нажатия клавиши F5 сообщения об ошибке VBA больше не отображается, закройте редактор Visual Basic, чтобы вернуться в книгу. Диапазон ячеек будет преобразован в XML-таблицу.

      Примечание: Чтобы отобразить все карты XML в книге, на вкладке Разработчик в группе XML нажмите кнопку Источник для отображения области задач «Источник XML». В нижней части области задач «Источник XML» нажмите кнопку Карты XML .

      Если вкладка Разработчик не видна, выполните три первых действия, указанных в следующем разделе, чтобы добавить ее на ленту Excel.

Действие 3. Экспорт XML-таблицы в файл XML-данных (XML)

Примечание: При создании карт XML и экспорте данных в Excel в XML-файлы существует ограничение на количество строк, которые можно экспортировать. При экспорте в XML-файл из Excel можно сохранить до 65 536 строк. Если файл содержит более 65 536 строк, Excel сможет экспортировать только первые строки (число строк mod 65 537). Например, если лист содержит 70 000 строк, Excel экспортирует 4464 строки (70 000 mod 65 537). Мы рекомендуем последовать одному из следующих советов: 1) используйте формат XLSX; 2) сохраните файл в формате "Таблица XML 2003 (*.xml)" (при этом будут потеряны сопоставления); 3) удалите все строки после 65 536 и затем снова выполните экспорт (при этом сопоставления сохранятся, но будут потеряны строки в конце файла).

Инструкция

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

Подберите или разработайте типа документа (DTD). Для распространенных задач можно использовать одно из существующих приложений XML, спецификации которых опубликованы на сайте консорциума W3C, находящемся по адресу w3.org, либо на сайтах сторонних разработчиков. Так, удобно описывать в формате MathML, векторные рисунки - в SVG, а электронные книги в FictionBook. Преимущество данного подхода заключается в том, что документы, соответствующие уже утвержденным спецификациям, смогут обрабатываться существующим программным обеспечением.В случае принятия решения о разработке собственного DTD, ознакомьтесь с нормативной документацией консорциума W3C. Если создаваемый документ не будет соответствовать никакому DTD, продумайте и зафиксируйте его примерную структуру, чтобы следовать ей в будущем.

Выберите кодировку XML-документа. В XML можно использовать различные кодировки. Однако при выборе стоит учесть возможности используемого текстового редактора, а также требования к набору символов данных документа. Из-за совместимости с ASCII, переменной длины символа и полной поддержки всего набора UNICODE, в большинстве случаев имеет смысл использовать кодировку UTF-8.

Создайте XML документ. Запустите текстовый редактор. Откройте новое окно документа. В первой строке введите объявление XML вида:

где значением атрибута version является применяемая версия спецификации языка, а значение атрибута encoding указывает на кодировку документа. Если используется определение типа документа, введите текст DTD или ссылку на ресурс с действительным DTD. Далее создайте структуру данных документа, начиная с корневого элемента. Сохраните документ в файл на жестком диске.

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

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.

В организации учет может вестить не только в решениях на платформе 1С:Предприятие, но и в других программным комплексах (Галактика, Парус, SAP и прочее). При этом появляются задачи интеграции двух приложений.

Напрмер, в некотором приложении (назовем его "X") требуется прочитать список документов конфигурации. О практической пользе решения подобной задачи говорить не будем, отмечу лишь, что наиболее удобным и универсальным способом в такой ситуации будет выгрузка списка документов в формате XML .

Обмен с использованием этого формата является универсальным, поскольку с ним могут работать большинство приложений. Рассмотрим как можно из 1С:Предприятия выгрузить список документов конфигурации в XML-файл.

Выгрузка в XML

И так, перейдем к главному. Нам нужно обойти список метаданных документов и сформировать список в XML-файле. На следующем скриншоте представлен алгоритм формирования XML-файла:

Функция СоздатьXML() Экспорт // Получаем имя временного файла Путь = ПолучитьИмяВременногоФайла() ; // Инициализируем класс "ЗаписьXML" Запись = Новый ЗаписьXML; // Открываем временный файл для записи - 8 " ) ; // Записываем объявление XML-файла Запись. ЗаписатьОбъявлениеXML() ; // Запись. ЗаписатьНачалоЭлемента(" ДокументыКонфигурации " ) ; // Первый элемент // Атрибут первого элемента с датой формирования файла Запись. ЗаписатьАтрибут(" generated " , Формат(ТекущаяДата() , " ДФ= гггг- ММ- ddThh:mm:ss; ДЛФ= DT " ) ) ; // Записываем элемент для каждого документа конфигурации. В текст помещаем имя документа. Для Каждого Док Из Метаданные. Документы Цикл Запись. ЗаписатьНачалоЭлемента(" Документ " ) ; Запись. ЗаписатьТекст(Док. Имя) ; Запись. ЗаписатьКонецЭлемента() ; КонецЦикла ; // Завершаем запись первого элемента Запись. ЗаписатьКонецЭлемента() ; Запись. Закрыть() ; // Закрываем файл // Получаем двоичные данные файла и помещаем их во временное хранилище ДвоичныеДанные = Новый ДвоичныеДанные(Путь) ; Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор) ; Возврат Адрес; // Возвращаем адрес файла в хранилище КонецФункции

Каждый созданный элемент должен быть правильно завершен. После выполнения "ЗаписатьНачалоЭлемента()" обязательно должен быть выполнен метод "ЗаписатьКонецЭлемента", иначе структура XML-файла будет некорректной.

Общий шаблон создания XML-файлов предсавляет собой следующую последовательность:

// 1. Инициализируем класс "ЗаписьXML" Запись = Новый ЗаписьXML; // 2. Открываем временный файл для записи Запись. ОткрытьФайл(Путь, " UTF- 8 " ) ; // 3. Записываем объявление XML-файла Запись. ЗаписатьОбъявлениеXML() ; // // 4. ++ Записываем содержимое XML-файла Запись. ЗаписатьНачалоЭлемента(" ЭлементXML " ) ; Запись. ЗаписатьКонецЭлемента() ; // -- Записываем содержимое XML-файла // 5. Закрываем файл Запись. Закрыть() ;

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

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

Пример выгруженного файла Вы могли видеть на скриншоте выше.

Стороннее приложение

Для примере создал приложение на.NET Framework, чтобы продемонстрировать чтенеие XML-файла в стороннем приложении.

Програма читает созданный файл и выводит документы в виде списка:

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

Универсальность

Формат XML используется в большинстве конфигурации обмена данными между прикладными решениями на платформе 1С:Предприятие. Другим часто используемым способом обмена является подключение через COM-соединение. XML-позволяет выполнять обмен практически с любыми приложениями, чем и заслужил называться универсальным.

Файлы для загрузки:

Приложение чтения XML-файла.

Обработка формирования XML-файла.