Алексей Валиков - Технология XSLT
- Название:Технология XSLT
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2002
- Город:Санкт-Петербург
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Алексей Валиков - Технология XSLT краткое содержание
Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.
Для начинающих и профессиональных программистов
Технология XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Нотация — это ни что иное, как определение формата неразбираемой сущности. Нотация дает формату имя и предоставляет некоторую информацию о приложении, которое следует использовать для обработки этого формата.
Предположим, что мы используем графические изображения в формате GIF
, для просмотра которых используется приложение gif-viewer.exe
. Определение нотации будет иметь следующий вид:
Эта запись определяет нотацию с именем GIF
и указывает имя приложения, которое может быть использовано для обработки внешних сущностей этого формата.
Информация о вспомогательном приложении-обработчике (англ. helper application) указывается при определении нотации системным или публичным идентификатором. В отличие от определения внешней сущности, публичный идентификатор в нотации может указываться без системного идентификатора. Фактически, нотация имеет три варианта определения:
имя
SYSTEM " системный ид-р ">
имя
PUBLIC " публичный ид-р " " системный ид-р ">
имя
PUBLIC " публичный ид-р ">
Если информация о вспомогательном приложении несущественна, можно воспользоваться определением следующего вида:
имя
SYSTEM "">
Существует два основных способа применения нотаций. Первый — объявление неразбираемых сущностей и использование их имен в атрибутах типа ENTITY
или ENTITIES
, второй — указание имени нотации в атрибуте типа NOTATION
для того, чтобы задать формат данных, который содержит данный элемент.
Первый способ можно продемонстрировать простым документом, который задает меню (листинг 1.5).
Проанализируем декларацию типа этого документа.
□ Декларация типа говорит о том, что корневым элементом этого документа является элемент menu
.
□ В соответствии с определением этот элемент состоит из нескольких субэлементов menuitem
.
□ В соответствии с определением элемент menuitem
должен быть пустым.
□ Запись определяет в элементе menuitem
следующие атрибуты:
• обязательный атрибут image
, в котором должно указываться имя сущности;
• обязательный атрибут title
, содержащий символьные данные;
• обязательный атрибут href
, содержащий символьные данные.
□ Запись определяет нотацию с именем gif
и закрепляет за ней приложение gif-viewer.exe
.
□ Запись определяет нотацию с именем jpg
и закрепляет за ней приложение jpg-viewer.exe
.
□ Запись определяет внешнюю неразбираемую сущность с именем news
, которая имеет формат (нотацию) gif
.
□ Запись определяет внешнюю неразбираемую сущность с именем products
, которая имеет нотацию jpg
.
□ Запись определяет внешнюю неразбираемую сущность с именем support
, которая имеет нотацию gif
.
Посмотрим теперь, какую информацию нам дают такие громоздкие определения. Обратимся к записи одного из элементов menuitem
:
С атрибутами title
и href
все ясно: они содержат простые символьные данные. Атрибут image
несколько сложнее, он предоставляет гораздо больше информации. Типом этого атрибута является ENTITY
, значит текст, который он содержит, является не просто символьными данными: он задает имя сущности, связанной с данным атрибутом. Иначе говоря, с атрибутом image
связывается сущность.
Анализируя определение сущности products
, обрабатывающая программа может понять, что это — неразбираемая внешняя сущность формата jpg
, которая хранится в файле prod.jpg
и для обработки которой можно использовать приложение jpg-viewer.exe
.
Вторым способом использования нотаций является присвоение определенного формата содержимому элемента. Один (но не более чем один) из атрибутов элемента может иметь тип NOTATION
. Значением этого атрибута должно быть имя нотации, которое и будет задавать формат содержимого элемента.
...
...
]]>
В этом документе определяется три нотации, три формата данных: rtf
, htm
и txt
. Атрибут type
элемента root
указывает формат данных, которые содержатся в этом элементе — в данном случае это "htm"
(что, очевидно, соответствует HTML-документу).
Несмотря на то, что нотации являются довольно мощным механизмом, ввиду очевидной сложности, широкого распространения их использование не получило. Почти того же самого эффекта можно добиться более простыми способами, например, используя в элементах дополнительные атрибуты.
Символьные данные в XML-документах
Каковы бы ни были структура и синтаксис текстового документа, основой его всегда являются символы. Для хранения и обработки текста на компьютерах, которые по своей природе являются цифровыми устройствами, каждому символу нужно поставить в соответствие числовой код.
Проблема многих языков заключается в том, что для них существует несколько альтернативных кодировок символов. Например, для кириллицы существуют такие кодировки, как CP-866, KOI8-R, CP-1251, ISO-8859-5, кодовая страница Macintosh и другие, но вместе с тем не существует единого стандарта, принятого де-факто. В итоге, для того, чтобы быть уверенным, что документ будет прочтен, его нужно представлять в трех или четырех кодировках, что очень неудобно.
Для того чтобы решить эти и некоторые другие проблемы, был создан стандарт Unicode. Unicode присваивает уникальный код любому символу, независимо от платформы, независимо от программы, независимо от языка. Символам кириллицы Unicode присваивает коды в диапазоне от #x400
до #x4ff
. Таблица кодов для кириллицы может быть найдена в формате PDF на Web-сайте Unicode:
http://www.unicode.org/charts/PDF/U0400.pdf.
Использование Unicode
Для описания символов сотен языков всего мира, а также других символьных обозначений (например, математических символов) Unicode позволяет использовать три формы кодирования — UTF-8, UTF-16 и UTF-32.
В UTF-8 символы разных диапазонов кодируются последовательностями, состоящими из разного количества байт в соответствии со следующими правилами.
□ Символы с кодами в интервале #x0
– #x7F
кодируются одним байтом, первый бит которого равен нулю.
□ Для остальных символов число байт определяется количеством ведущих единиц первого байта последовательности.
□ Два первые бита каждого последующего байта равны единице и нулю соответственно.
□ Все остальные биты используются для кодирования символа.
В табл. 1.2 для каждого интервала символов показано количество байт, нужных для кодирования символа, форма кодирования и количество бит, доступных для кода.
Читать дальшеИнтервал:
Закладка: