Коротко о XML

Введение

XML (англ. eXtensible Markup Language — расширяемый язык разметки) — рекомендованный Консорциумом WWW язык разметки, фактически представляющий собой свод общих синтаксических правил. XML — текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощённым подмножеством языка SGML.

Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть не зная смыслового значения элементов.

Декларация XML-документа

XML-документ начинается с XML-декларации, которая определяет используемую версию XML:

<?xml version="1.0"?>

Если в документе используются символы выходящие за рамки ASCII, то необходимо указать кодировку документа:

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

Элементы

XML документ состоит из элементов, которые описываются открывающим (<element>) и закрывающим (</element>) тегами. Текст между открывающим и закрывающим тегами называется содержимым элемента.

<element>Содержимое элемента</element>

Если элемент не имеет содержимого(empty element) и, соответственно, закрывающго тега, то он все равно должен быть закрыт:

<element/>

XML документ должен содержать хотя бы один элемент:

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

При наличие более, чем одного элемента, должен существовать один и только один корневой элемент, который не может быть вложен в другие элементы:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <title>XML за 10 минут</title>
  <author>Вася Пупкин</author>
</root>

Имена тегов чувствительны к регистру, поэтому нижеследующее допустимо:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <title>XML за 10 минут</title>
  <Title>XML за 20 минут</Title>
  <TITLE>XML за 30 минут</TITLE>
</root>

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

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <book>
    <title>XML за 10 минут</title>
  </book>
</root>

Имена элементов могут начинаться только с буквы или символа подчеркивания. Далее, имя может содержать буквы, цифры, дефисы, символы подчеркивания, и точки. Также, может быть использовано двоеточие, но только в специальных случаях, когда оно разделяет пространство имен (namespace).
Имя элемента не может начинаться с последовательности символов «xml» (в любой комбинации регистров букв) — такое начало имени зарезервированo для нужд стандарта XML.

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <_title>XML за 10 минут</_title>
  <xmlTitle>ОШИБКА! Неправильное имя элемента</xmlTitle>
</root>

Атрибуты

Элемент может иметь один или несколько атрибутов. Правила для имен атрибутов такие же как и для имен элементов.
Атрибут состоит из имени и значения разделенных символом «=». Значение атрибута заключается в одинарные(апострофы) или двойные кавычки. Указываются атрибуты внутри открывающего тега и отделяются друг от друга пробелом. При наличие нескольких атрибутив порядок их следования не важен:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <book id="1" quantity="100">
    <title lang='ru'>XML за 10 минут</title>
    <author age="15">Василий Пупкин</author>
  </book>
</root>

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

<title alias='book "learn XML"'>XML за 10 минут</title>
<author address="pupkin's homepage">Василий Пупкин</author>

Спецсимволы

В содержимом элемента не могут использоваться символы «<» и «&», так как они используются в разметке. В случае необходимости, надо использовать специальные символы — «&lt;» вместо «<» и «&amp;» вместо «&»:

<result>2 &lt; 5</result>

Также могут быть заменены символы «>», «»», и «’» на, соответственно, «&gt;», «&quot;» и «&apos;»:

<result>2 &lt; 5</result>
<result>5 &gt; 3</result>
<text>Скажите: &quot;Hello, world!&quot;</text>

Комментарии

XML-документ может содержать комментарии. Комментарии начинаются с последовательности символов «<!––» и заканчиваются последовательностью символов «––>». Однако, внутри комментария не должно встречаться последовательности символов «––»:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<!–- Это правильный комментарий -–>
  <title>XML за 10 минут</title>
<!–- А это -- неправильный комментарий -–>
</root>

Секция CDATA

Если, все-таки, необходимо в содержании элемента использовать текст который не должен восприниматься как разметка(например, часть кода), то этот текст можно заключить в секцию CDATA. Секция CDATA начинается с последовательности символов «<![CDATA[» и заканчивается последовательностью символов «]]>». Внутри секции может присутствовать любой текст, кроме последовательности символов «]]>», которая указывает на окончание самой секции:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <code>
    <![CDATA[
      <div><h2><a href="#">John & Peter</a></h2></div>
    ]]>
  </code>
</root>

Другое

И, в заключение, XML-документ может включать инструкции по обработке для приложений:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <?web-server add-header="Powered by Pupkin"?>
  <title>XML за 10 минут</title>
</root>

Подробнее о XML можно прочитать на www.w3.org/XML.