XML документ можно представить в виде древовидной структуры, которая начинается с "корня" и заканчивается "листьями".
Ниже приведен пример XML документа:
<?xml version="1.0" encoding="Windows-1251"?> <mail> <to>user1@domain.ru</to> <from>user2@domain.ru </from> <subject>Встреча</heading> <body>Позвони мне завтра утром</body> </mail>
XML документ должен содержать корневой элемент, который является родительским для всех остальных элементов. Любой элемент (кроме находящихся на самом нижнем уровне дерева) может иметь вложенные элементы (дочерние элементы).
С помощью терминов родитель, дочерний и потомок описываются отношения между элементами в дереве XML документа. Родители содержат дочерние элементы, а дочерние элементы одного уровня называются потомками (братьями или сестрами).
Элементы могут иметь текстовое содержимое и атрибуты.
Ниже приведена схема, показывающая отношения между элементами и атрибутами этого документа:
Кроме того в XML документе следует выполнять еще несколько несложных правил:
Некоторые из символов (их всего 5) имеют специальное значение в XML. Для их обозначения используются альтернативные сочетания:
Комментарии в XML выделяются также как и в HTML:
<!-- Это комментарий -->
В отличие от HTML, который игнорирует повторы пробелов, XML сохраняет полную длину строки из пробелов.
XML документы, оформленные в соответствии с приведенными выше правилами, называются "правильно оформленными". Если при этом они еще и соответствуют правилам DTD (Document Type Definition) , то они являются и "действительными".
Действительные XML документы содержат ссылку на DTD файл, например:
<!DOCTYPE note SYSTEM "mail.dtd">
DTD схема предназначена для определения структуры XML документа путем задания списка допустимых элементов, например
<!DOCTYPE mail [ <!ELEMENT note (to,from,subject,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT subject (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
Консорциум W3C поддерживает альтернативную к DTD, основанную на XML схему, называемую как "XML Schema":
<xs:element name="mail"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="subject" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Для проверки действительности XML документа можно использовать специальные валидаторы, например W3C валидатор (http://validator.w3.org/). Для проверки схем также существуют специальные валидаторы, например XML Schema валидатор (http://www.w3.org/2001/03/webdata/xsv).
Согласно спецификации W3C XML программа должна прекратить обработку XML документа, как только будет обнаружена ошибка в этом документе.