Переводы

Учебник XML. Быстро, просто и понятно.
«Как работает автомобиль» — в помощь начинающему автомобилисту.

Навигация

Главная
Обо мне
Контакт

Ссылки

Блог на Livejournal

Синтаксис XML

Синтаксические правила языка XML однозначны и очень просты. Эти правила легко выучить и легко использовать.

Именно по этой причине упрощается разработка программ, способных читать и обрабатывать XML.

Пример XML документа

В XML используется самоопределяющийся и простой синтаксис.

<?xml version="1.0"  encoding="Windows-1251"?>
<note>
<to>Сергей</to>
<from>Наталья</from>
<heading>Напоминание</heading>
<body>Не забудь про наши планы на эти выходные!</body>
</note>

Первая строка в документе — объявление типа документа — определяет версию XML и кодировку, которая используется в документе.

В нашем случае документ соответствует версии 1.0 спецификации XML, и использует кодировку Windows-1251 (кириллица).

Следующая строка описывает корневой элемент документа. Это все равно, что сказать: «этот документ — записка (note)»

<note>

Следующие 4 строки описывают 4 дочерних элемента к записке (note): кому (to), от кого (from), заголовок (heading), содержание (body).

<?xml version="1.0"  encoding="Windows-1251"?>
<to>Сергей</to>
<from>Наталья</from>
<heading>Напоминание</heading>
<body>Не забудь про наши планы на эти выходные!</body>
</note>

И, наконец, последняя строка указывает на завершение корневого элемента:

</note>

Можете ли вы без объяснений понять, что этот пример содержит записку от Натальи Сергею? Согласитесь, язык XML это великолепный пример самоопределяющегося языка.

Все элементы XML должны иметь закрывающий тег

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

В HTML многие элементы могут не иметь закрывающего тега. Следующий пример будет правильным с точки зрения HTML:

<p>Это параграф
<p>А это другой параграф

Но вот в XML все элементы должны иметь закрывающий тег:

<p>Это параграф</p>
<p>А это другой параграф</p>

Важно: вы могли заметить, что в предыдущем примере объявление типа документа не имеет закрывающий тег. Это не ошибка. Объявление — это не элемент XML документа, а некий особый элемент, который не должен иметь закрывающего тега.

XML теги чувствительны к регистру

В отличие от HTML, теги в XML чувствительны к регистру.

В XML документе тег <Letter>  это не то же самое, что тег <letter>.

Открывающий и закрывающий теги должны быть написаны одинаково с учетом регистра.

<Message>Это неправильно!</message>
<message>А это правильно</message>

XML элементы должны быть строго вложенными

Нестрого вложенные элементы можно позволить себе в HTML (но и это будет ошибкой):

<b><i>Этот текст печатается жирным курсивом</b></i>

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

<b><i>Этот текст печатается жирным курсивом</i></b>

Все XML документы должны иметь корневой элемент

Все XML документы должны содержать единственную пару тегов, определяющую корневой элемент.

Все остальные элементы должны быть потомками этого корневого элемента.

Любой элемент может иметь свой дочерний элемент. Дочерние элементы должны быть строго вложены в родительский элемент:

<root>
<child>
<subchild>………</subchild>
</child>
</root>

В этом примере: root — корень, child — потомок, subchild — потомок потомка.

Значения атрибутов должны быть в кавычках

В XML считается ошибкой, если вы напишите значение параметра, не заключив его в кавычки.

XML элементы могут иметь атрибуты, которые идут парой «название атрибута / значение атрибута» совсем как в HTML. В XML значения атрибутов должны записываться в кавычках. Сравните следующие два примера, но учтите, что первый — это неправильный пример, а второй — правильный.

<?xml version="1.0"  encoding="Windows-1251"?>
<note date=12/11/22002>
<to>Сергей</to>
<from>Наталья</from>
</note>


<?xml version="1.0"  encoding="Windows-1251"?>
<note date="12/11/22002">
<to>Сергей</to>
<from>Наталья</from>
</note>

В первом примере есть всего одна ошибка: значение параметра date записано не в кавычках.

Правильно: date="12/11/22002". Неправильно: date=12/11/22002.

В XML пробелы сохраняются

В XML все подряд идущие пробелы не сокращаются до одного, а воспринимаются как есть.

В HTML была другая ситуация. Если бы вы в HTML напишите:

Привет, меня           зовут Сергей

то это предложение отобразится как

Привет, меня зовут Сергей

потому что HTML подряд идущие пробелы, табуляции, переводы строки превращал в один единственный пробел.

В XML, CR/LF преобразуется в LF

В XML новая строка всегда обозначается как LF.

Знаете ли вы, что такое печатная машинка? Ну, печатная машинка — это механическое устройство, которое использовалось в прошлом веке для печати документов.

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

В Windows приложениях новая строка обычно записывается как пара специальных символов: возврат каретки (CR — carriage return) и перевод строки (LF — line feed). Эта пара спецсимволов подобна действиям при печати на печатной машинке, в случае, когда вы переходите на следующую строку. В Unix приложениях новая строка обычно обозначается только символом LF. Mac приложения обычно используют CR символ для обозначения новой строки.

Комментарии в XML

Синтаксис для записи комментариев в XML такой же как и в HTML.

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

В XML нет ничего особенного

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

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

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

Далее — урок 4. Элементы XML.