, также образующий оболочку над текстовым содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<DOCUMENT>
<GREETING>
Hello From XML
</GREETING>
<MESSAGE>
Welcome to the wild and woolly world of XML.
</MESSAGE>
</DOCUMENT>
Сейчас
корневой элемент
<DOCUMENT>
содержит два элемента —
<GREETING>
и
<MESSAGE>
, в каждом из которых имеется текст. Таким образом, я создал новый документ XML.
Однако следует добавить еще кое-что: документы XML могут быть также хорошо сформированными (well-formed) и допустимыми (valid).
Хорошо сформированные документы XML
Для того чтобы быть хорошо сформированным, документ XML должен следовать правилам синтаксиса, установленным для XML консорциумом W3C в рекомендации XML 1.0 (которую можно найти по адресу www.w3.org/TR/REC-xml). Неформально «хорошо сформированный» означает главным образом то, что документ должен содержать один или более элементов, и один из них, корневой, обязан включать в себя все остальные элементы. Кроме того, для каждого элемента должны соблюдаться правила вложенности. Например, следующий документ не будет хорошо сформированным, потому что закрывающий тег </GREETING> встречается после открывающегося тега <MESSAGE> для следующего элемента:
<?xml version="1.0" encoding="UTF-8"?>
<DOCUMENT>
<GREETING>
Hello From XML
<MESSAGE>
</GREETING>
Welcome to the wild and woolly world of XML.
</MESSAGE>
</DOCUMENT>
Допустимые документы XML
Большинство браузеров XML проверяют документы на то, являются ли они хорошо сформированными. Некоторые браузеры могут также проверить, допустим ли документ. Документ XML допустим (valid), если с ним связаны объявление типа документа (DTD — Document Type Declaration) или схема XML, и если документ удовлетворяет этим DTD или схеме. То есть DTD или схема задает набор правил для внутренней целостности самого документа, и если браузер может подтвердить, что документ удовлетворяет этим правилам, он является допустимым.
XML-схемы завоевывают популярность, и значительно большая поддержка схем присутствует в XSLT 2.0 (фактически поддержка XML-схем — одна из побудительных сил к переходу на XSLT 2.0), однако объявления DTD все еще остаются наиболее часто используемым средством проверки на допустимость. Объявления DTD могут быть сохранены в отдельном файле или в самом документе в элементе <!DOCTYPE>. Ниже этот элемент добавлен в разработанный нами пример:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="#"?>
<!DOCTYPE DOCUMENT [
<!ELEMENT DOCUMENT (GREETING, MESSAGE)>
<!ELEMENT GREETING (#PCDATA)>
<!ELEMENT MESSAGE (#PCDATA)>
]>
<DOCUMENT>
<GREETING>
Hello From XML
</GREETING>
<MESSAGE>
Welcome to the wild and woolly world of XML
</MESSAGE>
</DOCUMENT>
В
этой книге не рассматриваются объявления DTD, но из них видно, что элемент
<DOCUMENT>
— корневой, а элементы
<GREETING>
и
<MESSAGE>
могут, во-первых, находиться внутри него, а во-вторых — содержать текст.
В документах XML могут присутствовать все виды иерархий, когда один элемент заключен в другой элемент и так далее на много уровней вложенности. Элементам можно также задавать атрибуты, например:
<CIRCLE COLOR="blue">
, где атрибут
COLOR
содержит значение "
blue
". При помощи таких атрибутов удобно хранить дополнительные данные об элементах. Еще в документы XML разрешается включать комментарии, поясняющие определенные элементы текстом внутри тегов
<!--
и
– ->
.
Ниже, в листинге 1.1, приведен пример XML-документа
planets.xml
, в котором эти возможности используются для хранения данных о планетах Меркурии (Mercury), Венере (Venus) и Земле (Earth) — таких как масса, длительность дня, плотность, расстояние от Солнца и т.д. Мы будем работать с этим документом во всей книге, поскольку в нем в компактной форме содержится большая часть возможностей XML, которые могут вам потребоваться.