оболочку над текстовым содержимым:
<?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 могут быть также
Хорошо сформированные документы 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), если с ним связаны
XML-схемы завоевывают популярность, и значительно большая поддержка схем присутствует в XSLT 2.0 (фактически поддержка XML-схем — одна из побудительных сил к переходу на XSLT 2.0), однако объявления DTD все еще остаются наиболее часто используемым средством проверки на допустимость. Объявления DTD могут быть сохранены в отдельном файле или в самом документе в элементе <! DOCTYPE>. Ниже этот элемент добавлен в разработанный нами пример:
<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type='text/css' href='first.css'?>
<!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, которые могут вам потребоваться.
<?xml version='1.0'?>
<PLANETS>
<PLANET>
<NAME>Mercury</NAME>
<MASS UNITS='(Earth = 1)'>.0553</MASS>
<DAY UNITS='days'>58.65</DAY>
<RADIUS UNITS='miles'>1516</RADIUS>
<DENSITY UNITS='(Earth = 1)'>.983</DENSITY>
<DISTANCE UNITS='million miles'>43.4</DISTANCE><!--B перигелии-- >
</PLANET>
<PLANET>
<NAME>Venus</NAME>
<MASS UNITS='(Earth = 1)'>.815</MASS>