20. Языки описания cхем XML
DTD схемы. Недостатки DTD схем. XDR схемы. Элементы и атрибуты XDR схем.
Идея создания собственных тэгов, имеющих специальное значение и помогающих описать содержание документа, сама по себе просто замечательна. Но если каждый пользователь может создавать свои собственные описания, каким образом их распознавать? С этой целью в спецификации XML для описания подобных "самодеятельных" тэгов используются схемы. Они необходимы для того, чтобы:
описать, что именно является разметкой;
описать точно, что означает разметка.
Наиболее известными языками описания схем являются следующие:
DTD (Document Type Definition) - язык определения типа документов, который первоначально использовался в качестве язык описания структуры SGML-документа.
XDR (XML Data Reduced) – диалект схемы XML, разработанный Microsoft, который поддерживался в Internet Explorer 4 и 5 версий.
XML Schema или просто XSD (язык определения схем XML) – рекомендация консорциума W3C с 2001 года.
Рассмотрим подробнее первые два из них. Третий язык описания схем рассматривается в лабораторной работе 11.
DTD схема
Схема DTD предоставляет шаблон разметки документа, в котором указываются наличие, порядок следования и расположение элементов и их атрибутов в документе XML.
В рамках DTD модель содержимого XML документа можно описать следующим образом:
Каждый элемент документа может иметь один из типов:
Синтаксис |
Комментарий |
|
Содержит только текстовые данные |
||
Другие элементы |
Содержит только дочерние элементы |
|
Смешанное |
Содержит комбинацию текстовых данных и дочерних элементов |
|
Ничего не содержит |
||
Атрибуты, находящиеся внутри тэгов документа, описываются отдельно с помощью синтаксиса:
имя_элемента имя_атрибута1 (тип) значение_по_умолчанию
…………………………………………………………………………………...
имя_элемента имя_атрибутаN (тип) значение_по_умолчанию >
При этом атрибут в DTD может иметь один из трех типов:
Маркированные атрибут
Атрибута с перечислением
Кроме типа атрибута можно также задавать и его модальность:
Рассмотрим в качестве примера описание атрибутов строкового типа для элемента, описывающего некоторое сообщение:
number CDATA #REQUIRED
date CDATA #REQUIRED
from CDATA #FIXED
status CDATA #IMPLIED>
Если этот элемент содержит атрибуты с перечислением, то их описание может выглядеть, например, следующим образом:
number ID #REQUIRED
from CDATA #REQUIRED
alert (low | normal | urgent) "normal">
Маркированных атрибуты элемента могут быть четырех типов:
И, наконец, в DTD можно использовать следующие индикаторы вхождения последовательностей:
Символ |
Пример |
Описание |
Последовательное использование элементов списка |
||
Используется один из членов списка |
||
Используется один и только один элемент |
||
Необязательное использование (0 или 1 раз) |
||
Используется один или несколько раз |
||
Используется ноль или несколько раз |
В качестве примера приведем DTD схему, описывающую структуру электронного почтового ящика:
Исходный XML документ, удовлетворяющий данной схеме, может выглядеть, например, так:
Remind me about meeting.
Обратите внимание на 2-ю строчку документа, в которой указывается внешняя ссылка на файл, содержащий DTD схему.
В принципе, DTD допускает два способа использования в XML документе.
Объявление внутренней схемы:
Объявление внешней схемы:
В заключение укажем на следующие недостатки DTD схем:
Не являются экземплярами XML. Требуется изучение совершенно другого языка.
Не предоставляют контроль за типами данных, за исключением самых простых текстовых данных.
Не являются экземплярами XML, поэтому их нельзя легко расширить или преобразовать к другим языкам разметки – HTML или DHTML.
Не обеспечивают поддержки пространств имен XML.
XDR схема
XML-Data – полное имя языка описания схем, предложенного Майкрософт, а XML-DataReduced– это "часть" полной рекомендации. Схема XDR - это экземпляр XML, т.е. соответствует всем синтаксическим правилам и стандартам XML.
Реализуя проверки данных на уровне документа с помощью схемы, приложения, генерирующие и принимающие транзакции, можно оптимизировать для обеспечения максимального быстродействия. Соответствие полей и правильность записей проверяются на уровне экземпляров XML.
Корневым элементом в схеме XDR всегда является элемент Schema:
name="имя_схемы" xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<-- Объявления других элементов -->
Элемент ElementType имеет синтаксис:
content="{empty | texOnly | eltOnly | mixed}">
dt:type "datatype"
model="{open | closed}"
order="{one | seq | many}"
Элемент ElementType может иметь следующие атрибуты:
Имя атрибута |
Описание |
Имя элемента |
|
Тип данных элемента |
|
Может принимать значения: |
|
Open – разрешено использовать элементы, не определенные в схеме |
|
Closed – запрещено использовать элементы, не определенные в схеме |
|
Порядок следования дочерних элементов в экземпляре XML. Допустимые значения: |
|
one – предполагается наличие одного документа |
|
many – любое количество элементов в любом порядке |
|
seq – элементы указываются в строго заданном порядке. |
качестве дочерних элементов для ElementType можно использовать следующие:
Имя элемента |
Описание |
Объявляет дочерний элемент |
|
Обеспечивает описание элемента ElementType |
|
Обеспечивает тип данных элемента ElementType |
|
Определяет порядок следования элементов |
|
Определяет атрибут |
|
Определяет сведения о дочернем элементе AttributeType |
Для объявления атрибутов используется синтаксис:
default="default-value" dt:type="primitive-type" dt:values="enumerated-values" required="{yes|no}" В
свою очередь элемент AttributeType
может иметь атрибуты: Значение
Описание
Значение
по умолчанию Один
из следующих типов: entity,
entities,
enumeration,
id,
idref,
nmtoken,
nmtokens,
notation,
string Допустимые
значения Имя
атрибута Указывает
на обязательное наличие атрибута в
описании Синтаксис
для описания элемента attribute выглядит
следующим образом: default="default-value" type="attribute-type" а
его возможные значения могут быть
такими: Значение
В этой статье будут подробно описаны основы синтаксиса популярного сейчас
языка разметки XML. Также здесь будут упомянуты существенные аспекты базового
документа XML.
Данная статья открывает серию статей, посвященных основам написания документов
XML, принципам оформления этих документов, способам отображения XML документов
в браузере.
Язык разметки XML описывает, а также структурирует содержание файла XML. Основа
языка разметки – тэг, который ограничивает разделы содержания. Данный способ
описания документа очень похож на разметку HTML, однако между этими языками
существует большая разница. Приведем небольшой пример, написанный как на HTML, так и на XML. Пусть у нас есть небольшая таблица, в одной из ячеек которой помещен некоторый
текст. HTML
XML
<
Table
border
=
0
>
<
tr
>
<
td
>
<
H1
align
=”
center
”>
Этот текст находится внутри HTML
h1
>
<
hr
size
=
1
>
td
>
tr
>
table
>
<
table
border
=”
0
”>
<
tr
>
<
td
>
<
h1
align
=”
center
”>
Этот текст находится внутри XML
h1
>
<
hr
size
=”
1
”/>
td
>
tr
>
table
>
Теперь, взглянув на эти примеры, можно заметить отличия разметки XML от привычного
нам HTML. Главное отличие состоит в том, что язык XML чувствителен к регистру
символов, это касается как имен тегов, так и значений атрибутов. То есть Также существенным отличием языка XML от HTML является тот факт, что каждое
значение атрибута должно быть заключено в кавычки. Каждый элемент должен иметь
закрывающий тег (пример: Имена и символы
Символы в языке XML представляют собой числа, определенные в наборе символов
16-bit+ Unicode 2.1. Данный способ кодирования соответствует стандарту ISO/IEC
10646, описанному на сайте по адресу: //www.iso.ch . Имена
В языке XML все имена должны начинаться с буквы, символа нижнего подчеркивания
(_) или двоеточия (:) и продолжаться только допустимыми для имен символами.
К числу последних относятся все вышеперечисленные символы, а также цифры, знак
дефиса (-) или точки (.). Имена не могут
начинаться со строк “xml”,
“XML”, “xML”, “xmL”, “XMl”, “Xml”, “XmL”. Пример. Это правильные имена: Book, BOOK, myname: Catalog, Книга. Это не правильные имена: -BOOK, 101Далматинец, XMLForever, Лена+Петя=Любовь. Структура документа
Правильно оформленный документ XML состоит из трех главных частей: Рассмотрим стандартный пример простого документа XML. Тело
Эпилог
Рассмотрим подробнее структуру приведенную выше. Пролог
Каждый документ XML начинается со следующего элемента: . Здесь мы объявляем, что документ является документов
XML с кодировкой Windows-1251. Впрочем, кодировка может быть любая в зависимости
от кодировки текста. Итак, пролог состоит из следующих атрибутов: Декларация типа документа
Декларацию типа документа не следует путать с определением типа документа.
Можно сказать, что декларация типа документа содержит внутреннее подмножество
и/или ссылается на внешнее подмножество определения типа документа. Все допустимые (valid) документы должны содержать такого рода декларации, либо
ссылки на их внешний эквивалент (пример такой ссылки приведен ниже).
. Данный элемент «говорит», что представленная структура документа XML определяется
внешней декларацией books.dtd, находящейся по адресу //yourserver.com/
. Тело
Тело состоит из элементов. Элементы – это основные строительные блоки разметки
XML. Элементы могут содержать подэлементы, символьные данные, ссылки на символы,
ссылки на объекты, команды PI (команды обработки), комментарии, разделы CDATA.
Все данные XML, кроме комментариев, команд обработки и пустого пространства,
должны содержаться внутри элементов. Элементы отделяются друг от друга с помощью тэгов, состоящих из имени типа
элемента, заключенного в пару угловых скобок. Каждый элемент имеет открывающий
и закрывающий тэг, либо, если это пустой элемент (например, Все элементы должны быть вложены друг в друга. Это выглядит примерно так: <
a
>
<
b
>
…………………………………
b
>
<
b
>
…………………………………
b
>
a
>
Таким образом, мы получаем некую иерархическую древовидную структуру с единственным
корневым узлом, называемым корнем документа. Корень в документе может быть только
один. Такой принцип составления документа можно сравнить с системным реестром
Windows, т.е. со структурой типа иерархическая база данных. Для сравнения приведем два примера, как нельзя составлять документы XML. <
a
>
<
b
>
…………………………………….
a
>
b
>
<
a
>
……………………………………………
a
>
<
b
>
…………………………………………....
b
>
Здесь все очевидно. В первом примере мы видим отсутствие вложенности тэгов,
а во втором – в документе существуют два корня. Атрибуты
Часто необходимо связать некоторую информацию с элементом, а не просто включить
его в содержание последнего. Для этого существуют атрибуты.
Атрибут представляет
собой пару имя-значение, записанное в одном из двух форматов: attribute_name=”attribute_value” attribute_name=’attribute_value’ Атрибуты подчиняются тем же правилам, что и строковые константы, т.е. значения
атрибутов должны быть заключены в двойные или одинарные кавычки, они могут содержать
ссылки на объекты, ссылки на символы и/или текстовую информацию Пример: Атрибут xml:space
служит для указания приложению сохранять пустые пространства.
Данный атрибут можно сравнить с тэгом Атрибут xml:lang
введен для указания приложению о существовании текста
со специфической кодировкой, где надо учитывать порядок сортировки символов,
способы разделения слов при полнотекстовом индексировании и т.д. Указывая данный
атрибут, мы даем понять приложению, какой язык использует элемент с данным атрибутом.
Значением атрибута xml:lang является специльный двухбуквенный код, обозначающий
соответствующий язык: fr для французского, ja для японского. Также двухбуквенный
код может сопровождаться подкодами: en-US – американский английский, az-cyrillic
– азербайджанская кириллица. Эпилог
В этой части документа XML могут использоваться комментарии и команды обработки
и/или пустое пространство. Однако при этом не ясно, должны ли команды обработки
применяться к предшествующим элементам или к последующим, если таковые имеются. В этом и заключается основная проблема эпилога. Большинство анализаторов XML (если не все) конец документа определяют по завершающему
тэгу. Соответственно, вся та часть, что находится после завершающего тэга, анализатором
будет игнорирована. По мнению Тима Брея (один из авторов рекомендации XML 1.0) эпилог является
ошибкой проектирования и его не стоит использовать без необходимости. Также
следует иметь в Вилу, что скорее всего эпилог не будет обрабатываться другими
приложениями XML. Введение в правильную разметку XML
означает Extensible Markup Language,
с акцентом на markup
(разметка). Вы можете создавать текст и размечать его при помощи обрамляющих тегов, превращая каждое слово, предложение или фрагмент в идентифицируемую, сортируемую информацию. Создаваемые вами файлы, или экземпляры документа
, состоят из элементов (тегов) и текста, причем элементы помогают правильно понимать документ при чтении на бумаге или даже обрабатывать его в электронном виде. Чем больше описательных элементов, тем больше частей документа можно идентифицировать. С первых дней существования разметки одно из ее преимуществ заключается в том, что в случае потери компьютерной системы распечатанные данные
все равно остаются читабельными благодаря тегам. Языки разметки прошли путь от первых форм, создаваашихся компаниями и госучреждениями, до Стандартного языка обобщенной разметки (Standard Generalized Markup Language - SGML), Гипертекстового языка разметки (Hypertext Markup Language - HTML) и в конечном итоге до XML. SGML может показаться сложным, а HTML (который, по сути, сначала был просто набором элементов) оказался недостаточно мощным для идентификации информации. XML разрабатывался как простой в применении и удобный для расширения язык разметки. В XML можно создавать свои собственные элементы, что позволяет точно представлять фрагменты данных. Документы можно не просто разделять на абзацы и заголовки, но и выделять любые фрагменты внутри документа. Чтобы это было эффективно, нужно определить конечный перечень своих элементов и придерживаться его. Элементы можно определять в Описании типа документа (Document Type Definition - DTD) или в схеме, что будет кратко обсуждено ниже. Когда вы освоите и начнете использовать XML, не бойтесь экспериментировать с именами элементов, создавая реальные файлы. Как уже упоминалось, файлы XML состоят из текста и разметки. Большая часть текста помещается в элементы, в которых текст окружен тегами. Например, допустим, нужно создать поваренную книгу в формате XML. У нас есть рецепт под названием Ice Cream Sundae
, который нужно преобразовать в XML. Чтобы разметить название рецепта, заключим его текст в элемент, который начинается и заканчивается тегами. Этот элемент можно назвать recipename . Чтобы отметить начальный тег элемента, поместим его имя в угловые скобки <>), вот так: Имена элементов можно создавать как для отдельных документов, так и для групп документов. В соответствии с вашими требованиями можно указать правила, которые должны соблюдаться для элементов. Элементы могут быть строго специальными или достаточно общими. Правила должны также определять, что допустимо включать в каждый элемент. Они могут быть строгими, свободными или промежуточными. Просто создайте элементы, определяющие те части вашего документа, которые, на ваш взгляд, важны. Первой строкой документа XML может быть декларация XML. Эта необязательная часть файла определяет его как файл XML, что может помочь автоматическим инструментам и людям распознавать файл как XML, а не SGML или другой способ разметки. Декларация может выглядеть просто как Начальный и замыкающий теги корневого элемента окружают весь текст XML-документа. В файле должен присутствовать только один корневой элемент, и это необходимая "обложка" для него. показан фрагмент примера, который я здесь использую, с корневым элементом По мере создания своего документа вы будете размещать текст и дополнительные теги между При создании XML регистры начального и конечного тегов должны совпадать. В противном случае можно получить сообщение об ошибке при использовании или просмотре XML. Например, Internet Explorer не отображает текст в случае несовпадения регистров. Вместо этого он выводит сообщения о несовпадении начального и конечного тегов. Итак, у нас есть корневой элемент XML-документ может содержать пустые теги, внутри которых ничего нет и которые могут выражаться одним тегом, а не парой из открывающего и замыкающего тегов. Например, это может быть самостоятельный тег в стиле HTML . Он не содержит никаких дочерних элементов или текста, так что это пустой элемент, и его можно записать как (с пробелом и знакомой замыкающей косой чертой в конце). Вложение
— это размещение элементов внутри других элементов. Эти новые элементы называются дочерними
элементами, а элементы, которые их окружают, — их родительскими
элементами. В в корневой элемент Типичная синтаксическая ошибка связана с вложенностью родительского и дочернего элементов. Каждый дочерний элемент должен быть целиком расположен между открывающим и замыкающим тегами своего родительского элемента. Дочерние элементы должны заканчиваться до начала следующего дочернего элемента. Пример правильного вложения приведен в . Теги начинаются и завершаются без переплетения
с другими тегами. К элементам иногда добавляются Атрибуты
. Атрибуты состоят из пары имя-значение, где значение берется в двойные кавычки ("), вот так: type="dessert" . Атрибуты позволяют сохранять вместе с элементом дополнительные параметры, меняя значения этих параметров от элемента к элементу в одном и том же документе. Атрибут —или даже несколько атрибутов —указывается внутри начального тега элемента: Можно использовать любое количество атрибутов. Подумайте, какие подробности можно добавить в ваш документ. Атрибуты особенно полезны, если документы будут храниться -например, по типу рецептов. Имена атрибутов могут содержать такие же символы, что и имена элементов, с теми же правилами исключения пробелов и начала имени с буквы. Если вы следуете правилам, определенным в вашей структуре, вы сможете легко создавать правильно построенный код XML. Правильный XML
— это код XML, составленный с соблюдением всех правил XML: правильное именование элементов, вложение, именование атрибутов и т.п. В зависимости от того, что именно вы делаете с XML, вам может понадобиться работа с правильно построенным XML. Рассмотрим приведенный выше пример сортировки по типу рецептов. Нужно, чтобы элементы Под проверкой (validation)
понимается проверка структуры документа на соответствие установленным для нее правилам и определению дочерних элементов для каждого родительского элемента. Эти правила определяются в Описании типа документа
(DTD) или в схеме. Для такой проверки требуется создать DTD или схему, а затем давать ссылку на файл DTD или схемы в своих XML-файлах. Чтобы разрешить проверку, нужно ближе к началу своих XML-документов поместить декларацию типа документа (DOCTYPE). Эта строка содержит ссылку на DTD или схему (перечень элементов и правил), которая будет использоваться для проверки данного документа. Строка DOCTYPE может быть примерно такой, как в . Этот пример означает, что ваш файл списка элементов с именем filename.dtd
находится в вашем компьютере (то есть в каталоге SYSTEM , а не в общем каталоге PUBLIC). Сущности (entity)
могут представлять собой фрагменты текста или специальные символы. Они могут указываться внутри документа или вне его. Во избежание ошибок и для правильности отображения сущности должны быть надлежащим образом объявлены и выражены. Нельзя вводить специальные символы прямо в текст. Для использования в тексте специальных символов их нужно сделать сущностями и использовать коды этих символов. В качестве сущностей можно определить фразы, такие как название компании, а затем использовать их по всему тексту. Чтобы создать сущность, назначьте ей имя и вставляйте это имя и вставляйте это имя в текст после знака амперсанда (&) и заканчивая точкой с запятой — например, &coname; (или другое имя). Затем укажите этот код в своей строке DOCTYPE в квадратных скобках(), как в . Этот код определяет текст, который подставляется вместо сущности. Использование сущностей помогает избежать многократного повторения одной и той же фразы или информации. Оно может также облегчить редактирование текста (например, если компания изменит название) сразу во многих местах с помощью простой настройки строки определения сущности. Пока вы учитесь создавать XML-файлы, открывайте их в редакторе XML, чтобы удостовериться в их формальной правильности и убедиться, что правила XML соблюдены. Например, если у вас Windows® Internet Explorer®, вы можете просто открыть свой файл XML в браузере. Если ваши элементы, атрибуты и текст отображаются, значит файл XML составлен правильно. Если же присутствуют ошибки, вероятно, вы что-то напутали в синтаксисе, и вам нужно тщательно проверить свой документ на опечатки или пропуски тегов и знаков пунктуации. Усвоив несколько простых правил, вы можете гибко разрабатывать собственные элементы XML и их атрибуты. Правила XML не сложны. Набирать XML-документ тоже несложно. Главное - понять, что вы хотите от документов в смысле возможностей сортировки и поиска, а затем разработать элементы и атрибуты для удовлетворения этих требований. Когда хорошо понимаешь цель и знаешь, как разметить свой текст, можно создавать эффективные элементы и атрибуты. С этой точки зрения тщательная разметка - это все, что нужно для создания правильно построенного и пригодного к использованию документа XML. Элементы составляют костяк XML-документов. Они образуют структуры, которые можно обрабатывать программно или с помощью таблиц стилей. Элементы размечают именованные разделы информации. Элементы строятся с помощью тегов разметки, обозначающих имя, начало и конец элемента. Элементы могут также содержать имена и значения атрибутов, которые предоставляют дополнительную информацию о содержимом. Дополнительные сведения см. в разделе Атрибуты . У каждого элемента должно быть имя. Имена элементов учитывают регистр и должны начинаться с буквы или символа подчеркивания. Имя элемента может содержать буквы, цифры, дефисы, символы подчеркивания и точки. Примечание Двоеточия зарезервированы для использования с пространствами имен.Дополнительные сведения о том, какие символы Юникод являются допустимыми буквами и цифрами, см. в приложении Б спецификации XML. Теги устанавливают границы вокруг содержимого элемента, если таковое имеется. Начальные теги показывают, где начинается элемент, и используют следующую синтаксическую конструкцию:
Для элементов, не имеющих атрибутов, можно использовать сокращенный вариант начального тега:
Конечные теги показывают, где кончается элемент. Они не могут содержать атрибутов. Конечные теги всегда имеют следующий вид:
Обычно считается, что элемент включает в себя начальный тег, конечный тег и все, что расположено между ними.
В данном случае элемент Пустые теги используются для указания элементов, которые не содержат текста, но могут иметь атрибуты. Элементы HTML img и br представляют собой примеры пустых элементов. Пустые теги можно использовать как сокращения, если между начальным и конечным тегами документа содержимое отсутствует. Пустые теги выглядят как открывающие, но содержат косую черту (/) перед закрывающей скобкой >.
В XML можно задать пустой элемент с помощью начального и конечного тега, не помещая между ними ни пробелов, ни содержимого, например: Отношения между элементами описываются с помощью метафор родственных отношений или с помощью метафор дерева. XML-документы содержат один и только один корневой элемент. Как перед корневым элементом, так и после него может содержаться другая разметка: объявления, инструкции по обработке, комментарии и пробелы; однако корневой элемент должен включать в себя все содержимое, которое входит в собственно документ. Приведенный далее пример кода может быть XML-документом, содержащим элемент
Примечание Фрагменты документа могут быть полезными как части XML-документа, но их не следует передавать синтаксическому анализатору по отдельности.Обнаружив второй элемент или текст снаружи элемента, синтаксический анализатор выдаст сообщение об ошибке. При использовании метафор дерева листьями называются элементы, не содержащие никаких других элементов, как листья на конце ветви. Элементы-листья обычно содержат только текст или вообще ничего; листовые узлы обычно представляют собой пустые элементы или содержат текст. В схеме документа весь текст, описывающий книги, содержится в элементах-листьях; сам текст представляет собой листовой узел. Метафоры семейных отношений (родительский элемент, дочерний элемент, предок, потомок, сестра) описывают отношения между элементами относительно этих элементов, и не обязательно относительно документа в целом. Следующий абстрактный пример документа иллюстрирует отношения между элементами. Элемент содержит элемент , который содержит элемент Метафоры семейных отношений предоставляют больше различных уровней для описания отношений. Единственные узлы-сестры - Предки и потомки определяются подобно родителям и детям, с той разницей, что непосредственного включения не требуется. Элемент является родителем элемента и предком всех элементов, содержащихся в документе. Элементы
Информация о марке, модели и альтернативных названиях конкретного устройства, если таковые имеются. ДизайнИнформация о размерах и весе устройства, представленная в разных единицах измерения. Использованные материалы, предлагаемые цвета,...
Сегодня компьютерные технологии, стремительно развиваются, совершенствуя другие отрасли производства. Для развития других технологий, с помощью компьютерных, нужны специальные программы. Эти программы устанавливают на многие заводы и фабрики, чтобы...
Инструкция Два сравнительно небольших экрана могут с легкостью заменить один широкоформатный с большой диагональю. Иногда подключение второго позволяет использовать одновременно несколько функций одного компьютера. Современные видеоадаптеры в...
.
- в HTML такое написание допустимо, в XML
элемент линии должен иметь закрывающий тэг:
).
В HTML, используемым для сохранения
форматирования документа.
Построение документа XML
Начало создания файла XML
Создание корневого элемента
Листинг 1. Корневой элемент
Наименования элементов
Соблюдение регистра в тегах
Листинг 2. Другие элементы
Вложение элементов
Листинг 3. Правильное вложение элементов XML.
Добавление атрибутов
Листинг 4. Наш файл XML с элементами и атрибутами
Правильно и неправильно построенный XML
Листинг 5. DOCTYPE
Использование сущностей
Листинг 6. Сущность
Как избежать ошибок
Заключение
Имена элементов
Начальные, конечные и пустые теги
Отношения между элементами