XML

XML – «расширяемый язык разметки», язык описания данных.

Как и в HTML, главная составная часть XML – теги, открывающий (<tag>) и закрывающий (<tag/>). Теги всегда парные, могут быть вложенными, регистрозависимые.

<?xml version="1.0" encoding="UTF-8"?>
<note>
   <to>Tove</to>
   <from>Jani</from>
   <heading>Напоминание</heading>
   <body>Не забудь обо мне в эти выходные!</body>
</note>

HTML – для отображения данных, XML – для хранения и передачи.

Тег верхнего уровня – корневой, он обязателен. С точки зрении вложенности теги бывают родительские и дочерние по отношению друг к другу. Теги на одном уровне – братья/сёстры.

Теги могут иметь атрибуты (обязательно заключаются в кавычки). Пример:

<price currency="US dollar">15000.00</price>

Здесь у тега price есть атрибут currency, который говорит о том, в какой валюте указана цена.

Первая строка prolog указывает на версии XML и кодировку:

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

В отличие от HTML, в XML теги не предопределены, пользователь сам даёт им названия. Конфликты с одинаковыми сущностями решаются префиксами. В примере ниже префиксы real и toy позволяют отличить реальные машины от игрушечных:

<real:car category="truck">
   <model lang="en">Scania R 770</model>
   <year>2005</year>
   <price currency="US dollar">200000.00</price>
</real:car>
<toy:car category="sedan">
   <title lang="en">Ford Focus</title>
   <year>2012</year>
   <price currency="US dollar">100.00</price>
</toy:car>

В данном примере, атрибут xmlns в теге <table> определяет префиксам h: и f: квалифицирующее пространство имен.

Чтобы использовать префиксы, их нужно предварительно зарегистрировать в пространстве имён (атрибут xmlns в начальном теге элемента). Обычно префикс – это URI, но можно использовать URI-подобные строки, чтобы отслеживать иерархию имён. Когда пространство имен определено для какого-то элемента, то все его дочерние элементы с тем же префиксом ассоциируются с его пространством имен.

В примере ниже URI-подобная строка подсказывает, что за группа разработчиков отвечает за проект, и из какого они отдела:

<?xml version="1.0" encoding="UTF-8"?>
<carstore xmlns:real="http://testproject.developersgroup1.companyname/department2/namespaces/real"
         xmlns:toy="http://testproject.developersgroup1.companyname/department2/namespaces/toy">
<real:car category="truck">
   <model lang="en">Scania R 770</model>
   <year>2005</year>
   <price currency="US dollar">200000.00</price>
</real:car>
<toy:car category="sedan">
   <title lang="en">Ford Focus</title>
   <year>2012</year>
   <price currency="US dollar">100.00</price>
</toy:car>
</carstore>

Вместо символов, используемых в синтаксисе XML, нужно прописывать их сущности:

Комментарии пишутся так же, как в HTML:

<!-- Это комментарий -->

Пример подключения CSS-файла к XML-файлу:

<?xml-stylesheet type="text/css" href="//msiter.ru/cd_catalog.css"?>

Стандарт – набор расширений для XML. Самые популярные стандарты:

  • AJAX позволяет менять содержимое веб-страницы без её перезагрузки;

  • XSLT позволяет преобразовывать XML в другие форматы (например, в HTML);

  • XML DOM позволяет получать, изменять, добавлять и удалять отдельные элементы из XML-файла.

  • DTD позволяет определить список разрешенных элементов для сущностей в XML-файле.

Last updated