Теги XML в документе должны обладать двумя свойствами. Они должны быть:
• Корректные
Файл XML считается корректным (well-formed), если все теги закрыты, все элементы правильно вложены, а все атрибуты заключены в кавычки
• Действительные
Действительный (valid) документ - это документ, который корректен и соответствует указанному определению типа документа (Document Type Definition, DTD) или схеме Посмотрим, как эти понятия выглядят в файлах XML.
Следующий XML не является ни корректным, ни действительным:
<root> <title> <name>some text</title>
<name>
♦ Тег<гооГ> не закрыт, хотя это обязательно
♦ Теги <title> и <name> вложены некорректно. Тег <name> должен быть закрыт перед тегом <title>
♦ Отсутствует DTD, поэтому действительность примера нельзя подтвердить
Следующий XML корректен, но не действителен:
<root>
<title> <name>soine text</name>
</title> </root>
♦ Тег <root> закрыт
♦ Теги <title> и<пате> вложены корректно
♦ Отсутствует DTD, поэтому действительность примера нельзя подтвердить Следующий XML корректен и действителен:
<?xml version="1.0" encoding="UTF-8"?> <!OOCTYPE root H <!ELEMENT name (#PCDATA)> <! ELEMENT root (title) >
<! ELEMENT title (name)>
]>
<root> <title> <name>some text</name>
</title>
</root>
♦ Тег<госЛ > закрыт
♦ Теги <title> и<пате> вложены корректно
♦ Есть DTD, поэтому действительность примера можно подтвердить. Обратите внимание, что файл XML не обязательно должен содержать DTD, на него можно сослаться, заменив <! D0CTYPE [ ]> на <! DOCTYPE root SYSTEM " root. dtd">, если объявление <! DOCTYPE [ ]> переместить в root, dtd
Структура семейства XML
XML образует ядро семейства спецификаций XML (см. рис. 21.2).
♦ XML выступает в качестве основания
Пространства имен (Namespaces) служат для расширения XML.
Нельзя иметь внутри документа два элемента с одним и тем же именем. Для решения этой проблемы были созданы пространства имен XML. Файл XML может ссылаться на одно или несколько пространств имен. Пространство имен — это совокупность определенных тегов XML. Пространства имен важны в сложных документах XML, в которых надо использовать установленные внешние определения тегов.