Зачем нужен язык XML? Как открыть XML-документ – особенности работы с XML-файлами Возможные ошибки при открытии XML-файла в виде вложения электронной почты

Extensible Markup Language (XML). Это действительно просто текстовые файлы, которые используют пользовательские теги для описания структуры и других функций документа.

Что такое XML

XML – это язык разметки, созданный консорциумом World Wide Web Consortium (W3C) для определения синтаксиса кодирования документов, которые могут быть прочитаны людьми и машинами. Он делает это с помощью тегов, которые определяют структуру документа, а также то, как документ должен храниться и транспортироваться.

Проще всего сравнить его с другим языком разметки, с которым вы можете быть знакомы, – язык гипертекстовой разметки (HTML), используемый для кодирования веб-страниц. HTML использует предопределенный набор символов разметки (короткие коды), которые описывают формат содержимого на веб-странице.

Однако, отличие XML в том, что он является расширяемым. У XML нет предопределенного языка разметки, как у HTML. Вместо этого, XML позволяет пользователям создавать свои собственные символы разметки для описания контента, формируя неограниченный и самоопределяемый набор символов.

По сути, HTML – это язык, который фокусируется на представлении контента, в то время как XML – это выделенный язык описания данных, используемый для хранения данных.

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

  • RSS и ATOM описывают, как приложения должны обрабатывать веб-каналы.
  • Microsoft .NET использует XML для своих файлов конфигурации.
  • Microsoft Office использует XML в качестве основы для структуры документа.

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

Как открыть XML-файл

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

Используйте текстовый редактор при регулярной работе с XML

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


Использование веб-браузера для просмотра XML-файла

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

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

Когда файл откроется, вы должны увидеть хорошо структурированные данные. Это не так красиво, как цветной вид, который вы получаете в Notepad++, но гораздо лучше, чем блокнот.

Использование онлайн-редактора для XML-файлов

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

TutorialsPoint.com , XMLGrid.net и CodeBeautify.org – позволяют просматривать и редактировать XML-файлы. После завершения редактирования можно загрузить измененный XML-файл или даже преобразовать его в другой формат.

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

Например, на рисунке ниже слева находится наш полный XML-файл, а на панели результатов отображается представление в виде дерева, так как мы нажали кнопку Tree View посередине.

Используйте кнопку Browse для загрузки XML-файла с вашего компьютера или кнопку Load URL для извлечения XML из интернет-источника

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

Beatify отображает ваши данные в аккуратном, легко читаемом виде.

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

И, наконец, Вы можете использовать кнопку XML to JSON для преобразования XML в формат JSON, и кнопку Export to CSV для сохранения данных в виде файла значений, разделенных запятыми, или кнопку Download для загрузки любых изменений, которые вы сделали в новом 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-данных, поскольку для полного понимания процесса нужно знать хотя бы азы самого языка. В остальном же, думается, сложностей с файлами такого формата у пользователей не возникнет.

По существу, стандартизация дает возможность взаимодействовать между собой разнородным предметам – фонарику и батарейкам, Macromedia Flash и серверу многопользовательской игры, и так далее. Также и во Всемирной сети, где каждую секунду перемещаются огромные объемы данных, чрезвычайно важно стандартизировать способы обмена данными между системами. Мощный и простой в использовании XML очень быстро становится таким общепринятым стандартом.

В этом уроке мы познакомим вас с основами формата XML , а также покажем, как можно использовать во Flash объекты XML и XMLSocket . К концу урока вы научитесь организовывать "общение" Flash с ASP -страницами для регистрации входа пользователей; также мы с вами создадим простой чат, работающий в реальном времени с использованием сокет -сервера.

Что будет изучаться

В этом уроке :

  • Формат XML
  • Отсылка XML-данных на сервер и загрузка их с сервера
  • Создание нового объекта XML
  • Применение методов, свойств и событий объекта XML
  • Организация соединения с сокет -сервером при помощи Flash

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

Время выполнения

На выполнение этого урока требуется примерно полтора часа.

Файлы урока

Файлы-носители :

Стартовые файлы :

Lesson12/Assets/LoginRegister1.fla Lesson12/Assets/Chat1.fla

Законченные проекты :

LoginRegister2.fla Chat2.fla

Основы xml

Хотя само название XML , или eXtensible Markup Language , звучит несколько таинственно, понять и освоить этот язык совсем несложно. В сущности, XML есть способ форматирования и структурирования информации, которую приложения-получатели могут интерпретировать и использовать. На самом деле все мы, быть может, сами о том не подозревая, имеем большой опыт структурирования и организации информации. Возьмем такой пример.

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


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

В синтаксисе XML , подобно HTML , используются теги, атрибуты и значения – но на этом сходство и заканчивается. Тогда как в HTML используются заранее определенные теги (например, body, head или html ), в XML пользователь создает свои собственные, а не выбирает готовые имена из библиотеки. Давайте для начала рассмотрим вот этот простой документ XML :

Kelly Makar Mike Grundvig Free Makar

Каждый тег XML называется узлом ( node ), набор данных в формате XML называется документом XML . В нашем документе-примере имеется корневой узел MyFriends и три дочерних узла. Каждый XML-документ может содержать только один корневой узел. Первый из дочерних узлов имеет имя узла Name и значение узла Kelly Makar . Слово Gender в каждом из дочерних узлов – атрибут . Атрибуты необязательны; каждый узел может иметь неограниченное число атрибутов. Обычно атрибуты используются для размещения небольших порций информации, которые необязательно отображать на экране (например, идентификационный номер пользователя).


Как вы видите в этом примере, теги (которые мы сами же создали и описали) придают смысл порциям информации (Kelly Makar, Mike Grundvig и Free Makar).

Следующий XML-документ являет более сложный пример структурирования.

Kelly Makar 121 Baker Street Some City North Carolina Tripp Carter 777 Another Street Elizabeth City North Carolina

В этом примере показано, как могут выглядеть данные адресной книги в формате XML . Если бы в нашей адресной книге числилось 600 человек, то узел Person повторялся бы 600 раз при той же самой структуре.

Каким же образом следует создавать свои узлы, свою структуру? Как объект -получатель ( ASP -страница, сокет и т.п.) распознает форматирование документа? Ответ прост – средства для этого должны быть встроены в объект -получатель. Например, если мы создали адресную книгу во Flash и хотим поместить содержащуюся в ней информацию в базу данных, нам следует послать версию нашей книги в формате XML на ASP -страницу (или другую страницу сценария), которая сможет проанализировать информацию и разместить данные в соответствующих полях базы данных . Вы должны понимать, что этот скрипт ASP -страницы должен быть заранее разработан так, чтобы обработать данные должным образом. XML больше приспособлен для передачи информации, чем для хранения; поэтому данные нашей адресной книги удобнее хранить в записях базы данных , чем в виде XML -документа. Когда понадобится, информацию можно будет извлечь из базы данных , с помощью специального скрипта перевести в формат

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

Вот именно для создания структуры и существует язык XML . Простой пример:

Зелёное яблоко

Для нас людей сразу всё становится понятно. В голове возникает сразу образ "зелёного яблока ", однако, как объяснить компьютеру, что это яблоко, а не апельсин, человек или наша галактика? Здесь вновь приходит на помощь XML , где мы можем создавать любые теги, давая чётко понять, где яблоко, где апельсин, где человек, а где наша галактика. Надеюсь, понятно объяснил.

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

  • Файл-настроек . Настройки в XML-файле очень легко считывать и записывать. По этой причине на Вашем компьютере находятся сотни XML-файлов .
  • Мост для обмена данными между программами, написанными на разных языках. Очень важная особенность, следующая из универсальности языка, и это регулярно используется в сложных системах.
  • Хранение данных . Фактически, это некий аналог базы данных, но не требующий СУБД (например, MySQL ). А благодаря языку запросов XPath становится возможным легко общаться с этой "базой данных ".

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

Рассмотрим технологию использования XML для передачи данных на сервер.

Мы уже рассмотрели 2 способа передачи данных на сервер: это простой текст с разделителем и JSON. Но у них есть недостатки:

  • Отсутствие типов данных. У JSON есть только строка, число, null, boolean. Т.е. ограниченный набор данных.
  • Сложно контролировать целостность передаваемых данных.
  • Сложно визуализировать данные, т.е. сложные объекты сложно отобразить, например, в виде html кода.
  • Сложно преобразовывать данные, т.е. сложно преобразовать свойства одного объекта в свойства другого объекта.

Теперь обратимся в XML как способу передачи данных. XML (eXtensible Markup Language) - язык разметки, предназначенный для описания, хранения и передачи структурированных данных. На сегодня XML используют повсеместно.

На базе XML существует много технологий: DOM (програмное взаимодействие с данными), XLink (указатели и ссылки), XPath (описание и выборка элементов), XSL, XSLT (преобразование XML документа).

Разбор XML пакета выглядит так:

//Объект XMLHttpRequest var req= getXmlHttpRequest (); //Установка обработчика req. onreadystatechange= function () { if (req. readyState== 4 ) { //состояние "4 - comlete" var xml= req. responseXML; }}

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

Иногда для отладки надо сделать сериализацию и десериализацию XML данных (для передачи данных на сервер это делается автоматически, вручную не надо делать). Сделаем сериализацию в строку:

//для IE var str = dom. xml //для Firefox var serializer = new XMLSerializer (); var str = serializer. serializeToString (dom);

Для IE рабочий код короче, т.к. в него уже встроен объект для сериализации, а в других браузерах только появляется объект XMLSerializer для сериализации.

При работе с XML данными обычно мы имеем дело с DOM моделью документа. Поэтому стоит вспомнить некоторые моменты DOM (об этом читайте в предыдущих статьях). Напомню только способы доступа к элементу DOM модели:

//корневой элемент var root = xmlDOM. documentElement; //первый элемент в коллекции var book = root. childNodes[ 0 ]; //дочерний элемент var title = book. childNodes[ 0 ]; //текстовый узел элемента alert (title. firstChild. nodeValue);

Также из DOM модели документа можно выбирать элементы одного типа. Внимание! Функции getElemensById - нет, т.к. в XML id может означать что угодно, а не только идентификатор, поэтому его не применяют.

//выборка всех элементов с одним тегом var books = xmlDOM. getElementsByTagName ("book" );

XML также активно используется не только для представления данных, но и для обмена данными в сервер-ориентированной архитектуре. Это такой подход, при котором мы представляем сложное приложение не как классическое клиент-серверное приложение, а как набор сервисов (служб), каждый из которых отвечает за свои задачи. И каждый сервис имеет точки входа (точки взаимодействия). Здесь нет четкого клиента, т.к. одна служба может быть клиентом другой службы. Получается такая распределенная технология. Есть несколько подходов к построению таких технологий - удаленный вызов процедур, SOAP.

Чтобы службы разных клиентов могли взаимодействовать, они должны говорить на одном языке (при этом не важно какая операционная система у службы). И такой язык был разработан и назван RPC.

Протокол XML-RPC

RPC (Remote Procedure Call) - удаленный вызов процедур. Это протокол взаимодействия между двумя удаленными точками. Он позволяет точке “а” вызвать функцию на удаленной точке “б”.

Есть несколько реализаций протокола RPC. Рассмотрим реализацию на базе XML.

По сути, клиент и сервер просто обмениваются какими-то XML фрагментами.

XML-RPC предоставляет следующие типы данных:

  • boolean.
  • integer.
  • double.
  • string.
  • date/time.
  • base64.
  • array.
  • struct.
  • null.

Т.е. при передаче определенного типа данных нужно декларировать, что это за тип данных. Структура похожа на объект JSON.

Преобразование XML данных

Для преобразования данных, полученных с сервера в виде XML используют XSLT.

XSLT (eXtendable Stylesheet Language Transformation) - технология, которая помогает получить на вход XML, а на выходе сформировать все, что угодно.

Преобразование XSLT на javaScript - IE

var dom = new ActiveXObject ("MSXML2.DOMDocument" ); dom. async = false; dom var xsl = new ActiveXObject ("[email protected]" ); xsl. async = false; xsl. load ("my.xsl" ); //само преобразование var result = dom. transformNode (xsl);

Преобразование XSLT на javaScript для Firefox. Ghrome, Opera

var xslStylesheet; var xsltProcessor var myXMLHTTPRequest = mew XMLHttpRequest (); myXMLHTTPRequest. open ("GET" , "example.xsl" , false); myXMLHTTPRequest. send (null); //получение xml xslStileshett = myXMLHTTPRequest. responseXML; xsltProcessor myXMLHTTPRequest = new XMLHttpRequest (); myXMLHTTPRequest. open ("GET" , "example.xml" , false); myXMLHTTPRequest. send (null); //сама трансформация var xmlSource = myXMLHTTPRequest. responseXML; var resultDocument = xsltProcessor. transformToDocument (xmlSource);