Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Встроенные объектные ссылки




При формировании разметки можно использовать ссылки на символы. В XML имеется фиксированный набор именованных ссылок, показанных в таблице 2.4. При использовании ссылки обязательно должны оканчиваться символом;.

Таблица 2.4

Ссылки XML

Ссылка Символ
& &
'
> >
&lt; <
&quot; "

Допускается использовать ссылки в виде кода. В качестве кода может быть указан любой десятичный символа в кодировке UNICODE. Примеры кодов некоторых символов:

· &#169; (авторское право ©)

· &#174; (торговая марка ®)

· &#8212; (длинное тире)

В разметке можно использовать комментарий. Это любой текст в паре треугольных скобок. Первый символ знак! за которым нужно указать два знака минус, эти знаки должны закрывать комментарий.

Пример:

<!-- Текст комментария -->

Создание валидных документов

Документы 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

Типы атрибутов

Тип Особенности
CDATA Произвольный текст
ID Уникальное значение
IDREF Ссылка на другой ID атрибут
IDREFS Ссылка на другие ID атрибуты

Спецификация определяет правило задания значения атрибуту. Допустимые спецификации приводятся в таблице.

 

Таблица 2.7

Спецификация атрибутов

Значение Особенности
#REQUIRED Значение должно задаваться обязательно
#IMPLIED Значение задавать не обязательно.
#FIXED Заданное значение по умолчанию изменять нельзя
Значение по умолчанию Значение по умолчанию принимается автоматически
Перечисляемые значения Список допустимых значений разделенных символом |

Пример.Документ с атрибутами.

<?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>&lt;Привет мир! (&hello;)&gt;</verse>

</document>

Кроме определенной сущности в шаблоне hello используются ссылки на две встроенные сущности XML lt и gt.

Преобразование XML документов

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

В настоящее время существуют различные технологии преобразования содержания документов XML. В данном пособии будут рассмотрены две такие технологии каскадные таблицы стилей CSS (Cascading Style Sheets) и технология расширяемых стилевых таблиц XSLT (eXtensible Stylesheet Language Transformations).

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...