xml
Строительные блоки
Поиск…
элементы
Элементы с угловыми скобками являются наиболее заметным строительным блоком XML.
Элементы могут быть пустыми, и в этом случае они состоят из пустой метки (обратите внимание на конечную косую черту):
<an-empty-element/>
Или они могут иметь контент, и в этом случае у них есть открывающий тег (без косой черты) и закрывающий тег (начальная косая черта):
<a-non-empty-element>Content</a-non-empty-element>
Элементы могут входить (но только между открывающими и закрывающими тегами):
<parent-element>
<child-element/>
<another-child-element>
Some more content.
</another-child-element>
</parent-element>
Имена элементов называются QNames (квалифицированные имена). Все вышеперечисленные элементы не имеют пространства имен, но имена элементов также могут быть определены в пространствах имен с использованием таких префиксов:
<my-namespace:parent-element xmlns:my-namespace="http://www.example.com/">
<my-namespace:child-element/>
<my-namespace:another-child-element>
Some more content.
</my-namespace:another-child-element>
</my-namespace:parent-element>
Пространства имен и имена элементов более подробно описаны в этом разделе документации .
Атрибуты
Атрибуты - это пары имя-значение, связанные с элементом.
Они представлены значениями в одинарных или двойных кавычках внутри тега элемента открытия или тегом пустой тега, если это пустой элемент.
<document>
<anElement foo="bar" abc='xyz'><!-- some content --></anElement>
<anotherElement a="1"/>
</document>
Атрибуты не упорядочены (в отличие от элементов). Следующие два элемента имеют одинаковые атрибуты:
<foo alpha="1" beta="2"/>
<foo beta="2" alpha="1"/>
Атрибуты не могут повторяться в одном и том же элементе (в отличие от элементов). Следующий документ не является корректным: поскольку атрибут <foo a="x" a="y"/>
a
появляется дважды в одном элементе.
Следующий документ хорошо сформирован. Значения могут быть одинаковыми, это имя атрибута не может быть повторено.
<foo a="x" b="x"/>
Атрибуты не могут быть вложенными (в отличие от элементов).
Текст
Текст состоит из всех символов за пределами любой разметки (теги открывающего элемента, теги закрывающего элемента и т. Д.).
<?xml version="1.0"?>
<document>
This is some text and <b>this is some more text</b>.
</document>
Точная XML-терминология для текста - это символьные данные . Спецификация XML фактически использует текст слова для всего документа XML или анализируемого объекта, поскольку он определяет XML на синтаксическом уровне. Однако некоторые модели данных, такие как XDM (XQuery и модель данных XPath), которые представляют XML-документы в виде деревьев, относятся к символьным данным как текстовые узлы , так что текст часто понимается как синоним символьных данных на практике.
Символьные данные могут не содержать символ <
character - это будет интерпретироваться как первый символ тега элемента открытия - и он не может содержать последовательность символов ]]>
. Соответствующие символы должны быть экранированы с помощью ссылки на сущность.
<?xml version="1.0"?>
<document>
It is fine to escape the < character, as well as ]]>.
</document>
Для удобства можно также избежать большей части текста с разделом CDATA (но последовательность ]]>
по понятным причинам все еще не разрешено):
<?xml version="1.0"?>
<document>
<![CDATA[
In a CDATA section, it is fine to write < or even & and entity references
such as & are not resolved.
]]>
</document>
Комментарии
Комментарии в XML выглядят так:
<!-- This is a comment -->
Они могут отображаться в содержимом элемента или на верхнем уровне:
<?xml version="1.0"?>
<!-- a comment at the top-level -->
<document>
<!-- a comment inside the document -->
</document>
Комментарии не могут отображаться внутри тегов или внутренних атрибутов:
<element <!-- comment with -- inside --> />
или же
<element attr="<!-- comment with -- inside -->"/>
не являются хорошо сформированными.
Последовательность символов --
не может появляться в середине комментария. Это не правильно сформированный XML:
<!-- comment with -- inside -->
Комментарии в XML, в отличие от других языков, таких как C ++, являются частью модели данных : они анализируются, пересылаются и видны потребляющему приложению.
Инструкции по обработке
Команда обработки используется для непосредственного передачи некоторой информации или инструкции в приложение через синтаксический анализатор.
<?my-application some instructions ?>
Токен после начального вопросительного знака (здесь my-application
) называется целевым и идентифицирует приложение, в котором нацелена инструкция. Дальнейшее это не уточняется, и приложение может интерпретировать его. Ссылки на объекты и символы не распознаются.
Он может отображаться на верхнем уровне или в содержимом элемента.