XML - расширяемый и универсальный формат данных
XML, «eXtended Markup Language» - преемник SGML, как и HTML, но более общий, он включает данные в имена самих тегов и, следовательно, имеет неограниченные описательные возможности.
Формат отображения является независимым и зависит от связанной структуры, XSLT. Теги создаются и проверяются по правилам, заданным DTD (Data type dictionary), описывающим грамматику (tags), или Schema, другим инструментом проверки, написанным сам на XML.
XML, как и HTML, обрабатывается многими языками программирования, и особенно JavaScript, через интерфейс DOM (Model Object Document). Документ полностью загружен в память, а его структура хранится для доступа к любому тегу или набору тегов с помощью внутренних процедур поиска.
Для документов большего размера вместо этого используется режим SAX, и в этом случае XML-код в файле по строкам и каждый тег обрабатывается после загрузки в память.
XML характеризуется значительными тегами, созданными по данным документа. Роль тегов зависит от их содержания и инструмента, который сопоставляет XML-документ. Название тегов выбирается для удобочитаемости документа, их роль полностью зависит от инструментов, которые будут к нему обращаться.
Пример кода, сохранить счет-фактуру в XML:
<?xml version="1.0" ?>
<!- facture de Corp. ->
<facture>
<commande>000156</order>
<date timezone="Greenwhich">
Jan 1, 2003 14:30:00
</date>
<addresse>
<nom>Sherlock</nom>
<prenom>Holmes</prenom>
<rue>5 Baker St.</rue>
<ville>London</ville>
<pays>England</pays>
<code>75004</code>
</addresse>
<montant> 270 </montant>
</commande>
</facture>
Необходим связанный документ представления и проверки достоверности. Браузеры распознают несколько доктипов, которые описывают одну версию кода XHTML или HTML, и умеют обрабатывать язык презентации CSS для каждой версии.
За пределами текстового документа
XML - это никогда не просто семантика, язык с элементарным синтаксисом, который инструмент умеет «говорить», то есть превращать слова в действия. Он используется не только для содержания текста.
Начнем с просмотра нескольких приложений из языка SVG. Они удивительны, делают векторную графику, которую можно даже оживить. Однако SVG - это не что иное, как подмножество XML, с которым мы связываем API. Теги становятся прямоугольниками или различными фигурами, а их атрибуты изменяются для получения анимации. SVG - это язык, понятный браузеру (или средству рендеринга SVG) для представления изображений с переменным размером.
Другой пример - формат RSS. После назначения роли каждому тегу список ссылок и описаний становится журналом для прессы.
В диалекте XHTML каждый тег имеет роль форматирования. Это подмножество XML, семантически эквивалентное HTML, которое указывает браузерам, как представить свой мультимедийный контент.
XML или JSON
?Веб-страницы можно было бы также выразить в JSON-файлах, что уменьшило бы размер файлов, но, вероятно, замедлило разработку веб-страниц, так как HTML-код остается значительно более доступным для непрограммистов.
Для приложения выбор формата раскрывается в статье JSON или XML, какой формат выбрать? Но действительно ли нужно выбирать? Это два способа представления одного и того же: структурированное содержание и преобразование одного формата в другой не сложно. На самом деле, после того, как содержимое загружено в память и переведено в объекты и атрибуты, сериализация его в виде XML-файла или JSON - это просто вопрос личного удобства.
Поэтому главная цель статьи - решить, когда тот или иной формат лучше подходит для хранения данных, в зависимости от языка или системы, в которой они используются.
Инструменты XML
Либо для доступа к содержащимся данным, либо для редактирования документа, либо для преобразования его в другой формат можно использовать несколько классов инструментов.
Парсеры
Есть два типа парсеров. Древовидный парсер загружает XML-документ полностью в память, и к содержимому можно получить доступ с помощью Document Object Model, в частности с помощью таких инструкций, как getElementsByTagName.
В отличие от этого, в соответствии с SAX API, подстановщик событий постепенно загружает содержимое и сохраняет либо все данные, либо те, которые запрашиваются.
- Pugixml. Легкий и очень быстрый инструмент, написанный на C++ и интегрируемый в программу в качестве источника или бинарного файла .
- Ксерс. Веб-сайт Apache предоставляет XML-парсер на языке Java или C++ (Xerces), а также несколько других инструментов для XML. Он использует API DOM или SAX.
- LibXML. Библиотека C, использующая API DOM или SAX .
- Экспат. Библиотека для построения эвенментального парсера (используется Скриптолом и XCheck).
В среде JavaScript + Node + HTML не требуется анализатор XML. Это встроено в браузер. Поэтому такие парсеры полезны только для языков C++, Java или других.
Если ты только хочешь проверить, правильно ли сформирован XML-код, загрузи здесь XCheck для Windows.
XQuery
XQuery - язык запросов к базе данных XML, будь то файл или база данных с древовидной структурой, схожей с XML, как XIndice от Apache.
Таким образом, он позволяет создать базу данных XML и использовать ее. Загрузите реализацию GNU.
XSLT
Язык XSL состоит из правил преобразования. XSLT преобразует XML-документ в другой формат, например HTML, и может использоваться для доступа к данным. Xalan, преобразует XML-документ в HTML. Существует в версии Java и C++.
Издатели
Доктор наук. Упрощенный редактор для XML и DocBook 5, который представляет код без скобок. Несколько схем. С открытым исходным кодом на GitHub .
Виртуальная машина
Xmlvm - своего рода байтекод в XML. Его можно скомпилировать в Objective C, JavaScript, bytecode Java.