Встроенные объектные ссылки
При формировании разметки можно использовать ссылки на символы. В XML имеется фиксированный набор именованных ссылок, показанных в таблице 2.4. При использовании ссылки обязательно должны оканчиваться символом;. Таблица 2.4 Ссылки XML
Допускается использовать ссылки в виде кода. В качестве кода может быть указан любой десятичный символа в кодировке UNICODE. Примеры кодов некоторых символов: · © (авторское право ©) · ® (торговая марка ®) · — (длинное тире) В разметке можно использовать комментарий. Это любой текст в паре треугольных скобок. Первый символ знак! за которым нужно указать два знака минус, эти знаки должны закрывать комментарий. Пример: <!-- Текст комментария --> Создание валидных документов Документы XML обязательно должны быть корректными, дополнительно они могут отвечать требованию валидности. Валидность означает, что документ отвечает определенной структуре заданной в описании шаблона документ DTD (Data Type Definition). Схема DTD задается таблица в прологе документа. В виде: <!DOCTYPE name [ Описание элементов ]> Здесь name - имя корневого тега. Описание элементов задается с помощью объявления: <!ELEMENT Имя описание_содержимого> Описание содержимого: EMPTY – пустой элемент, такой элемент не может содержать дочерних тегов; ANY – любое содержимое, содержание не определено, но элемент может содержать дочерние теги; (#PCDATA) – символьное содержание. В качестве описи содержимого могут указываться другие теги, которые вложены в тег: Тег(дочерние теги). При описании дочерних структур действуют следующие правила: Перечисление через запятую – обязательный перечень элементов и порядок элементов.
Использования символа | - выборочная форма, может быть один из дочерних тегов. Пример. Составим описание для документа с двумя предложениями на русском и английском языке: <?xml version="1.0" encoding="windows-1251"?> <?xml-stylesheet type="text/css" href="hello.css"?> <!DOCTYPE TEST[ <!ELEMENT TEST (NODE)> <!ELEMENT NODE (ENG,RU)> <!ELEMENT ENG (#PCDATA)> <!ELEMENT RU (#PCDATA)> ]> <TEST> <NODE> <ENG>Hello World!</ENG> <RU>Привет МИР!</RU> </NODE> </TEST> Следует иметь в виду, что интерпретатор XML браузера проверяет только корректность документа, проверить валидность можно с помощью специальных программ, либо специальных XML редакторов кода. При создании DTD для уточнения содержания используются символы, показанные в таблице 2.5.
Таблица 2.5 Уточнение содержания
Пример DTD описания шаблона со специальным символом: <?xml version="1.0" encoding="windows-1251"?> <!DOCTYPE firma[ <!ELEMENT firma (sluj+)> <!ELEMENT sluj (id, fam)> <!ELEMENT id (#PCDATA)> <!ELEMENT fam (#PCDATA)>]> <firma> <sluj> <id>m100</id> <fam>Петров</fam> </sluj> <sluj> <id>m200</id> <fam>Хватова</fam> </sluj> </firma> Здесь тег sluj это блок данных о сотруднике фирмы, тег id хранит личный номер сотрудника, а тег fam его фамилию. Блоков sluj должно быть минимум один. Можно повысить информационную емкость XML тега, используя атрибуты. Атрибут описывается в DTD шаблоне в виде: <!ATTLIST Тег Атрибут Тип Спецификация> Здесь Тег имя тега, которому принадлежит атрибут. Тип атрибута может принимать значения из таблицы.
Таблица 2.6 Типы атрибутов
Спецификация определяет правило задания значения атрибуту. Допустимые спецификации приводятся в таблице.
Таблица 2.7 Спецификация атрибутов
Пример.Документ с атрибутами. <?xml version="1.0" encoding="windows-1251"?> <!DOCTYPE firma[ <!ELEMENT firma (rukov+)> <!ELEMENT rukov (sotr+)> <!ELEMENT sotr (#PCDATA)> <!ATTLIST rukov zip ID #REQUIRED podch IDREFS #REQUIRED otdel (Маркетинг | Склад) #REQUIRED name CDATA #REQUIRED > <!ATTLIST sotr zip ID #REQUIRED firma_name CDATA #FIXED "ООО Иволга"> ]> <firma> <rukov zip="r100" podch=" m101 m102" otdel="Маркетинг" name="Артамонов И.С."> <sotr zip="m101" >Иванов П.И.</sotr> <sotr zip="m102">Сидорова О.П.</sotr> </rukov> </firma> Данный документ задает структуру фирмы. Фирма состоит из нескольких руководителей тег rukov. Руководителю подчиняются несколько сотрудников тег sotr. Руководитель характеризуется атрибутами: zip - личный номер руководителя; podch - ссылка на личные номера починенных; otdel - наименование отдела; name - фамилия руководителя. Задавать значения всех атрибутов обязательно. Сотрудник характеризуется атрибутами: zip – личный номер сотрудника firma_name – наименование фирмы. Код сотрудника задавать обязательно, а название фирмы нет, но если задано, то оно должно быть: ОООИволга. В описании документа можно определить некоторую сущность – примитив и тиражировать ее в документе XML по ссылке. Задается сущность описанием: <!ENTITY ИмяПримитива Значение> Ссылка на сущность имеет вид: &ИмяПримитива; Пример. Задание перевода предложения в виде сущности. <?xml version="1.0" encoding="windows-1251"?> <?xml-stylesheet type="text/css" href="entity.css"?> <!DOCTYPE document[ <!ELEMENT document (verse)> <!ELEMENT verse (#PCDATA)> <!ENTITY hello "Hello World!"> ]> <document> <verse><Привет мир! (&hello;)></verse> </document> Кроме определенной сущности в шаблоне hello используются ссылки на две встроенные сущности XML lt и gt. Преобразование XML документов
Документы XML по умолчанию отображаются в браузере как иерархическая структура тегов с их содержанием. Разметка документа отмечает только смысловые – семантические его части и не несет никакой информации о том, как должно быть выведено содержание пользователю документа. В настоящее время существуют различные технологии преобразования содержания документов XML. В данном пособии будут рассмотрены две такие технологии каскадные таблицы стилей CSS (Cascading Style Sheets) и технология расширяемых стилевых таблиц XSLT (eXtensible Stylesheet Language Transformations).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|