Элементы
Элементы составляют костяк XML-документов. Они образуют структуры, которые можно обрабатывать программно или с помощью таблиц стилей. Элементы размечают именованные разделы информации. Элементы строятся с помощью тегов разметки, обозначающих имя, начало и конец элемента.
Элементы могут также содержать имена и значения атрибутов, которые предоставляют дополнительную информацию о содержимом. Дополнительные сведения см. в разделе Атрибуты.
Имена элементов
У каждого элемента должно быть имя. Имена элементов учитывают регистр и должны начинаться с буквы или символа подчеркивания. Имя элемента может содержать буквы, цифры, дефисы, символы подчеркивания и точки.
![]() |
---|
Двоеточия зарезервированы для использования с пространствами имен.Дополнительные сведения о том, какие символы Юникод являются допустимыми буквами и цифрами, см. в приложении Б спецификации XML. |
Начальные, конечные и пустые теги
Теги устанавливают границы вокруг содержимого элемента, если таковое имеется.
Начальные теги показывают, где начинается элемент, и используют следующую синтаксическую конструкцию:
<elementName att1Name="att1Value" att2Name="att2Value"...>
Для элементов, не имеющих атрибутов, можно использовать сокращенный вариант начального тега:
<elementName>
Конечные теги показывают, где кончается элемент. Они не могут содержать атрибутов. Конечные теги всегда имеют следующий вид:
</elementName>
Обычно считается, что элемент включает в себя начальный тег, конечный тег и все, что расположено между ними.
<person><givenName>Peter</givenName> <familyName>Kress</familyName></person>
В данном случае элемент <person>
содержит два других элемента, <givenName>
и <familyName>
, а также разделяющий их пробел. Элемент <givenName>
содержит текст Peter
, а элемент <familyName>
— текст Kress
.
Пустые теги используются для указания элементов, которые не содержат текста, но могут иметь атрибуты. Элементы HTML img
и br
представляют собой примеры пустых элементов. Пустые теги можно использовать как сокращения, если между начальным и конечным тегами документа содержимое отсутствует. Пустые теги выглядят как начальные, но содержат косую черту (/) перед закрывающей скобкой >.
<elementName att1Name="att1Value" att2Name="att2Value".../>
В XML можно задать пустой элемент с помощью начального и конечного тега, не помещая между ними ни пробелов, ни содержимого, например: <giggle></giggle>
; можно использовать пустой тег, например, <giggle/>
. Синтаксический анализатор XML выдаст идентичный результат для обеих конструкций.
Отношения между элементами
Отношения между элементами описываются с помощью метафор родственных отношений или с помощью метафор дерева. XML-документы содержат один и только один корневой элемент. Как перед корневым элементом, так и после него может содержаться другая разметка: объявления, инструкции по обработке, комментарии и пробелы; однако корневой элемент должен включать в себя все содержимое, которое входит в собственно документ. Приведенный далее пример кода может быть XML-документом, содержащим элемент <person>
в качестве корневого элемента.
<person><givenName>Stephanie</givenName> <familyName>Bourne</familyName></person>
Приведенный далее фрагмент не может быть XML-документом, поскольку содержит несколько корневых элементов.
<givenName>Stephanie</givenName>
<familyName>Bourne</familyName>
![]() |
---|
Фрагменты документа могут быть полезными как части XML-документа, но их не следует передавать синтаксическому анализатору по отдельности.Обнаружив второй элемент или текст снаружи элемента, синтаксический анализатор выдаст сообщение об ошибке. |
При использовании метафор дерева листьями называются элементы, не содержащие никаких других элементов, как листья на конце ветви. Элементы-листья обычно содержат только текст или вообще ничего; листовые узлы обычно представляют собой пустые элементы или содержат текст. В схеме документа весь текст, описывающий книги, содержится в элементах-листьях; сам текст представляет собой листовой узел.
Метафоры семейных отношений (родительский элемент, дочерний элемент, предок, потомок, сестра) описывают отношения между элементами относительно этих элементов, и не обязательно относительно документа в целом. Следующий абстрактный пример документа иллюстрирует отношения между элементами.
<a>
<b>
<c>
<d/><e/><f/>
</c>
</b>
</a>
Элемент <a>
содержит элемент <b>
, который содержит элемент <c>
, который содержит элементы <d>
, <e>
и <f>
. Используя метафоры дерева, можно сказать, что <a>
- корневой элемент, а <d>
, <e>
и <f>
— элементы-листья. В принципе элементы <b>
и <c>
можно было бы назвать стволом или ветвями, но так обычно не делают.
Метафоры семейных отношений предоставляют больше различных уровней для описания отношений. Единственные узлы-сестры — <d>
, <e>
и <f>
; все они содержатся в элементе <c>
. Элемент <c>
является родителем для элементов <d>
, <e>
и <f>
; элементы <d>
, <e>
и <f>
являются дочерними для элемента <c>
. Точно так же, элемент <b>
— родитель элемента <c>
, а элемент <c>
— дочерний для элемента <b>
, в то время как элемент <a>
является родителем элемента <b>
, а элемент <b>
— дочерним элементом для элемента <a>
.
Предки и потомки определяются подобно родителям и детям, с той разницей, что непосредственного включения не требуется. Элемент <a>
является родителем элемента <b>
и предком всех элементов, содержащихся в документе. Элементы <d>
, <e>
и <f>
являются потомками для элементов <a>
, <b>
и <c>
.