Чтение онлайн

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:
Пример

В документе

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE advert [

 <!ENTITY animal "слон">

]>

<advert>

 <product title="&animal;">

Продается настоящий &animal;!

 </product>

</advert>

сущность

animal
имеет значение
"слон"
. Ссылка
на сущность используется дважды — в атрибуте
title
и в тексте элемента
product
. Этот документ эквивалентен документу

<?xml version="1.0" encoding="UTF-8"?>

<advert>

 <product title="слон">

Продается настоящий слон!

 </product>

</advert>

Если в будущем фирма переквалифицируется, и будет продавать, скажем, жирафов, можно будет, не изменяя всего документа, заменить только значение сущности:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE advert [

 <!ENTITY animal "жираф">

]>

<advert>

 <product title="&animal;">

Продается настоящий &animal;!

 </product>

</advert>

Спецификация XML определяет несколько встроенных сущностей, которые перечислены в табл 1.1.

Таблица 1.1. Встроенные сущности XML

Имя сущности Значение Описание
lt
<
знак "меньше"
gt
>
знак "больше"
amp
&
амперсант
apos
'
апостроф или одинарные кавычки
quot
"
двойные кавычки

Встроенные сущности могут быть использованы для замены некоторых символов там, где они могут быть восприняты, как разметка. В частности, символы

<
(знак "меньше") и
&
(амперсант) вообще не могут появляться в тексте документа иначе, кроме как в виде сущностей.

Пример

<?xml version="1.0" encoding="UTF-8"?>

<advert>

 <product title="слон">

Продается серый слон весом &gt; 5 тонн!

Компания &quot;слон &amp; Слон&quot;.

 </product>

</advert>

На

самом же деле в элементе
product
заключен текст

Продается серый слон весом > 5 тонн!

Компания "Слон & Слон".

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

Символьная сущность (или, как ее еще называют, символьная ссылка) записывается в виде

&#код;
или
&#xкод;
, где
код
— десятеричный и шестнадцатеричный Unicode-код символа в первом и втором случае соответственно.

Пример

Фраза "

Миру-мир!
" может быть записана с использованием символьных сущностей следующим образом:

&#х41С;&#х438;&#х440;&#х443; - &#1084;&#1080;&#1088;!

Первое слово, "

Миру
" записано с использованием шестнадцатеричных unicode-кодов кириллицы, второе слово, "
мир
", записано с использованием десятичных кодов.

Внешние сущности содержатся во внешних файлах. Если ссылка на внешнюю сущность появляется в документе, то на ее место копируется содержимое внешнего файла.

Определение внешней сущности имеет следующий синтаксис:

<!ENTITY имя SYSTEM "URI">

В этом определении

имя
точно так же, как и во внутренней сущности определяет имя сущности, в то время как
URI
определяет абсолютное или относительное местоположение файла.

Пример

Предположим, что мы создали файл

animal.ent
со следующим содержанием:

огромное серое животное

Для того чтобы использовать содержимое этого файла в документе, мы должны объявить внешнюю сущность следующим образом:

<!ENTITY animal SYSTEM "ent/animal.ent">

где

ent/animal
есть относительный путь до файла
animal.ent
. Если бы мы расположили файл на сервере, скажем,
www.animalhost.com
, сущность могла бы быть объявлена как

<!ENTITY animal SYSTEM "http://www.animalhost.com/animal.ent">

В документе ссылаться на объявленную внешнюю сущность мы будем точно так же, как ссылались бы на внутреннюю сущность:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE advert [

 <!ENTITY animal SYSTEM "ent/animal.ent">

]>

<advert>

 <product title="слон">

Продается &animal; весом &gt; 5 тонн!

Рождественские скидки!

 </product>

</advert>

В этом случае элемент

product
будет иметь текст

Продается огромное серое животное весом > 5 тонн!

Поделиться:
Популярные книги

Седьмая жена короля

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Седьмая жена короля

Вернуть невесту. Ловушка для попаданки

Ардова Алиса
1. Вернуть невесту
Любовные романы:
любовно-фантастические романы
8.49
рейтинг книги
Вернуть невесту. Ловушка для попаданки

Истинная поневоле, или Сирота в Академии Драконов

Найт Алекс
3. Академия Драконов, или Девушки с секретом
Любовные романы:
любовно-фантастические романы
6.37
рейтинг книги
Истинная поневоле, или Сирота в Академии Драконов

Неудержимый. Книга XVI

Боярский Андрей
16. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVI

Попаданка в академии драконов 2

Свадьбина Любовь
2. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
6.95
рейтинг книги
Попаданка в академии драконов 2

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Девочка-лед

Джолос Анна
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Девочка-лед

Сотник

Ланцов Михаил Алексеевич
4. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Сотник

Эволюционер из трущоб

Панарин Антон
1. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб

Новые горизонты

Лисина Александра
5. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Новые горизонты

Возвышение Меркурия

Кронос Александр
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия

Скандальный развод, или Хозяйка владений "Драконье сердце"

Милославская Анастасия
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Скандальный развод, или Хозяйка владений Драконье сердце

Курсант: Назад в СССР 7

Дамиров Рафаэль
7. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 7

Шериф

Астахов Евгений Евгеньевич
2. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
6.25
рейтинг книги
Шериф