Хорошо сформированные документы XML




Теоретический материал

Структура XML–документа

XML-документ состоит из деклараций, элементов, комментариев, специальных символов и директив.

XML – это теговый язык разметки документов. Иными словами, любой документ на языке XML представляет собой набор элементов, причем начало и конец каждого элемента обозначается специальными пометками, называемыми тегами.

Элемент состоит из трех частей: начального тега, содержимого и конечного тега. Тег – это текст, заключенный в угловые скобки "<" и ">". Конечный тег имеет то же имя, что начальный тег, но начинается с косой черты "/". Пример XML–элемента:

 

<buyer>Сергей Довлатов</buyer>

 

Имена элементов зависят от регистра, т. е. <author>, <Author> и <AUTHOR> – это имена различных элементов. Наличие закрывающего тега всегда обязательно. Если тег является пустым, т. е. не имеет содержимого и закрывающего тега, то он имеет специальную форму:

<tag/>

Любой элемент может иметь атрибуты, содержащие дополнительную информацию об элементе. Атрибуты всегда включаются в начальный тег элемента и имеют вид:

 

имя_атрибута="значение_атрибута"

 

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

 

<employee post="Продавец">Сергей Довлатов</employee >

 

Элементы должны либо следовать друг за другом, либо быть вложены один в другой:

 

<books>

<book isbn="5887821192">

<title>Часть речи</title>

<author>Бродский, Иосиф</author>

<present/>

</book>

<book isbn="0345374827">

<title>Марш одиноких</title>

<author>Довлатов, Сергей</author>

<present/>

</book>

</books>

 

Здесь элемент books (книги) содержит два вложенных элемента book (книга), которые, в свою очередь, имеют атрибут isbn и содержат три последовательных элемента: title (название), author (автор) и present (есть в наличии), причем последний пуст, т. к. в данном случае соответствует логическому флажку.

Из приведенного описания видно, что синтаксис XML напоминает синтаксис HTML (что естественно, т. к. оба они являются диалектами одного языка SGML), но требования к оформлению правильных XML–документов выше. Еще одним очень важным отличием XML от HTML является то, что содержимое элементов, т. е. все, что содержится между начальным и конечным тегами, считается данными. Это означает, что XML не игнорирует символы пробела и разрыва строк, как это делает HTML.

Любой XML–документ состоит из пролога и корневого элемента, например:

 

<?xml version="1.0"?>

<books>

<book isbn="0345374827">

<title>Марш одиноких</title>

<author>Довлатов, Сергей</author>

<present/>

</book>

</books>

 

В этом примере пролог сводится к единственной директиве (первая строка документа), указывающей версию XML. За ней следует XML–элемент с уникальным именем, который содержит в себе все остальные элементы и называется корневым. Директива (processing instruction) – это выражение, заключенное в специальные теги "<?" и "?>", которое содержит указания программе, обрабатывающей XML–документ.

Стандарт XML резервирует только одну директиву <?xml version="1.0"?>, указывающую на версию языка XML, которой соответствует данный документ (второй версии XML пока нет). В действительности, эта директива несколько богаче и в самом общем виде выглядит так:

 

<?xml version="1.0" encoding="ISO–8859–1" standalone="yes"?>

 

Здесь атрибут encoding задает кодировку символов документа. По умолчанию считается, что XML–документы должны создаваться в формате UTF–8 или UTF–16. Атрибут standalone говорит о том, содержит ли данный документ внешние разделы. Значение yes означает, что таких разделов нет, значение no – что они есть.

В общем случае, пролог может содержать также декларации типа документа.

XML–документы могут содержать комментарии, которые игнорируются приложением, обрабатывающим документ. Комментарии строятся по тем же правилам, что и в HTML:

- начинайте комментарий с символов "<!--",

- завершайте комментарий символами "-->",

- не используйте внутри комментария символов "--".

- Пример комментариев:

 

<!–– это комментарий ––>

<!–– а вот еще комментарий,

занимающий более одной строки ––>

 

Все имена элементов, атрибутов и разделов должны начинаться с буквы Unicode и состоять из букв, цифр, символов точки (.), подчеркивания (_) и дефиса (–). Единственное ограничение состоит в том, что они не должны начинаться с комбинации букв xml в любом регистре; подобные имена зарезервированы для будущих расширений языка. Существенно, что стандарт допускает использование в именах не только английских букв, но и любых других, хотя существующие XML–процессоры часто ограничены теми системами кодировок, которые в них заложены создателями.

XML документы могут быть хорошо сформированными (well-formed) и допустимыми (valid). [5]

 

Хорошо сформированные документы XML

Для того чтобы быть хорошо сформированным, документ должен следовать правилам синтаксиса, установленным для XML консорциумом W3C в рекомендации XML 1.0. Неформально «хорошо сформированный» означает главным образом то, что документ должен содержать один или более элементов, и один из них, корневой, обязан включать в себя все остальные элементы. Кроме того, для каждого элемента должны соблюдаться правила вложенности. Например, следующий документ не будет хорошо сформированным, потому что закрывающийся тег </Bill> встречается после открывающегося тега <Buyer> для следующего элемента:

 

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

< Document >

<Bill>

Чек

<Buyer>

</Bill>

Покупатель

</Buyer>

</Document> [6]

 

Валидные документы XML

Большинство браузеров проверяют XML документы на то, являются ли они хорошо сформированными. Некоторые браузеры могут так же проверить, валиден (допустим) ли документ. Документ XML валиден (допустим), если с ним связаны объявление типа документа (DTD – Document Type Declaration) или схема XML, и если документ удовлетворяет этим DTD или схеме. То есть DTD или схема задает набор правил для внутренней целостности самого документа, и если браузер может подтвердить, что документ удовлетворяет этим правилам, он является валидным [6].

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: