
- •Оглавление
- •1. История появления xml и его особенности. Хорошо оформленный документ
- •2. Структура документа xml. Верный документ
- •3. Ссылки на сущности, секция cdata. Комментарии, атрибуты, имена
- •4. Пространства имён xml. Инструкции по обработке
- •5. Конструкции dtd: объявление типа элемента, объявление атрибутов
- •6. Конструкции dtd: объявление сущности, объявление обозначения
- •7. Размещение описания dtd. Программы-анализаторы xml
- •8. Описание схемы документа на языке xsd. Встроенные простые типы
- •9. Определение новых простых типов в xsd
- •10. Объявление элементов и их атрибутов в xsd
- •11. Определение сложных типов в xsd
- •12. Пространства имён языка xsd. Связь документа xml со своей схемой
- •13. Создание ссылок на языке xLink. Пространство имён языка xLink
- •14. Атрибуты, используемые при создании ссылок на языке xLink
- •15. Типы ссылок, создаваемых на языке xLink
- •16. Создание банка ссылок. Программы-обработчики атрибутов xLink
- •17. Таблицы стилей css в языке xml. Язык описания стилей xsl
- •18. Язык записи преобразований xslt бред, не стала разбираться, что из этого надо, а что нет
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. Во включенном документе не должны встречаться такие же имена, что и во включающем, поскольку у совпадающих имен может быть совершенно разный смысл. Для решения проблемы совпадающих имен введено понятие пространства имен.