Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
xml.docx
Скачиваний:
49
Добавлен:
16.04.2015
Размер:
115.97 Кб
Скачать

3. Ссылки на сущности, секция cdata. Комментарии, атрибуты, имена

Ссылки на сущности (entity references), начинающиеся с амперсанда и заканчивающиеся точкой с запятой, — это указание программе-анализатору подставить вместо них заранее определенную строку символов — сущность. Например, можно записать ссылку на сущность &author;. Программа-анализатор подставит вместо нее фамилию автора. Сущности задаются в определении типа документа (Document Type Definition).

Если текст содержит много знаков "больше", "меньше" и амперсандов, например, требуется весь вложенный элемент понимать как простую строку символов, то удобнее организовать так называемую секцию CDATA.

Секция CDATA (character data) начинается со строки <! [CDATA[. Дальше записывается все то, что следует считать не разметкой, а простой строкой символов. Секция завершается двумя закрывающими квадратными скобками и знаком "больше".

<![CDATA[<surname>Сидорова</surname>]]>

Все знаки "больше", "меньше" и амперсанды, расположенные в секции CDATA, понимаются как обычные символы, не определяющие никакой разметки.

Секции CDATA можно создать в содержимом любого элемента XML. Внутри секции CDATA нельзя создать новую секцию, секции CDATA нельзя вкладывать друг в друга.

<progcode>

<![CDATA[if (х < MAX_VALUE && х > MIN_VALUE) procl(х);]]> </progcode>

Программа-анализатор не разбивает секцию CDATA на элементы, а считает ее просто набором символов, которые надо передать без изменений на выход программы.

Комментарии

Если надо сделать какой-то фрагмент документа XML вообще "невидимым" для программы-анализатора, то его можно оформить как комментарий, записав перед ним символы <!--, а после него — символы --> с двумя дефисами подряд. Например:

<!-- Это комментарий -->

Программа-анализатор пропустит всю эту конструкцию, даже не "заглянув" в нее.

Такой синтаксис комментария накладывает на него два ограничения:

- в комментарии нельзя записывать два дефиса подряд;

- комментарий нельзя завершить дефисом.

У открывающих тегов XML могут быть атрибуты, состоящие из имени и значения, связанных знаком равенства. Например, имя, отчество и фамилию можно записать как атрибуты first, second и surname тега <name>:

<name first="Иван" second="Петрович" surname="Сидоров" />

В отличие от языка HTML, в языке XML значения атрибутов обязательно надо заключать в кавычки или в апострофы.

Атрибуты удобны для описания простых значений. Элемент <name> с атрибутами пустой, у него нет содержимого, следовательно, не нужен закрывающий тег. Поэтому тег <name> с атрибутами завершается символами "/>".

Атрибуты открывающего тега удобны и для указания типа элемента. Например, мы не уточняем, в городе живет наш родственник, в поселке или в деревне. Можно ввести в открывающий тег <city> атрибут type, принимающий одно из значений город, поселок, деревня. Например:

<city type="ropoд">Москва</city>

Значения атрибутов можно записывать не только латинскими, но и русскими буквами. Спецификация XML допускает для записи значений атрибутов и содержимого элементов практически все символы Unicode.

Имена

Правила записи имен довольно просты и заключаются в следующем:

 имена элементов и атрибутов могут содержать только буквы, входящие в секцию букв кодировки Unicode, арабские цифры, дефисы, знаки подчеркивания, точки и двоеточия;

 имя может начинаться с буквы, знака подчеркивания или двоеточия;

 имя не может начинаться со строки xml в любом регистре, поскольку такие имена зарезервированы для самой спецификации XML.

С введением понятия пространства имен двоеточие получило особое значение. Теперь оно используется только для отделения префикса от локального имени.

В имени не может быть пробелов. Запись <my cool element> неверна!

Каждое имя должно быть уникально в пределах документа. Это правило несложно выполнить, но в документ XML можно включить иной документ, даже относящийся к другой реализации XML. Во включенном документе не должны встречаться такие же имена, что и во включающем, поскольку у совпадающих имен может быть совершенно разный смысл. Для решения проблемы совпадающих имен введено понятие пространства имен.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]