1.2.4 XML стандарты
Когда мы будем говорить о преобразованиях, мы будем работать с двумя стандартами: XSLT и XPath. XSLT определяет ряд основ, используемых для описания преобразований документа, тогда как XPath определяет синтаксис для описания положений в XML-документах. Когда мы будем писать преобразования, мы будем использовать XSLT, чтобы сказать процессору, что сделать, а XPath — чтобы сказать процессору, к чему применить это действие. Оба стандарта доступны на сайте W3C, посетите http://www.w3.org/TR/xslt и http://www.w3.org/TR/xpath, чтобы получить больше информации.
Конечно, есть и другие стандарты, связанные с XML. Коротко обсудим их здесь с коротким упоминнанием о том, как они относятся к нашей работе с XSLT и XPath.
1.2.4.1 XML 1.0
XML 1.0 — это фундамент, на котором всё построено. Смотрите http://www.w3.org/TR/REC-xml.
1.2.4.2 Расширяемый язык преобразований (XSL)
Этот стандарт, также называемый Преобразующей Объекты спецификацией (Formatting Objects specification) или XSL-FO, имеет дело с интерпретацией XML-элементов. Хотя большинство людей думают об интерпретации как о преобразовании для браузера или распечатываемой страницы, разработчики используют спецификацию, чтобы представлять XML-элементы как шрифт Брайля или аудио-файлы. (Как уже говорилось, главный рынок этой технологии — создание высококачественных выходных данных.) На момент написания этой книги, XSL-FO была кандидатом на рекомендацию W3C. пара наших примеров из этой книги используют formatting objects и интерпретатор XSL-FO для преобразования XML в PDF от Apache (FOP). Посетите http://xmlgraphics.apache.org/fop/ для получаения информации о FOP. Информацию об XSL можно найти здесь: http://www.w3.org/TR/xsl/.
1.2.4.3 XML-схемы (XML Schemas)
В примерах выше, у нас был краткий бриф XML-схемы. Первая часть спецификации имеет дело со структурой документа; это включаетв себя XML-элементы, которые могут определять, что может появиться в XML-документе. Вы используете эти элементы, чтобы описать, какие элементы могут быть помещены внутрь других, сколько раз каждый элемент может встречаться, атрибуты этих элементов и другеи особенности. Вторая часть спецификации определяет основные типы данных, используемых в XML-схемах и правила для получаения новых типов данных из существующих.
Обе части доступны: http://www.w3.org/TR/xmlschema-1/ и http://www.w3.org/TR/xmlschema-2/. Хорошее введение в XML-схемы и примеры есть по адресу http://www.w3.org/TR/xmlschema-0/.
1.2.4.4 The Simple API for XML (SAX)
API SAX определяет события и интерфейсы, используемые, чтобы взаимодействовать с парсером SAX. SAX и DOM — наиболее общепринятые API, используемые для работы с XML-документами. Посетите http://www.megginson.com/SAX/, чтобы ознакомиться со спецификацией.
1.2.4.5 Document Object Model (DOM) Level 1
DOM, как мы обсуждали ранее, — это API для документов. Оно определяет набор интерфейсов и методов, используемых, чтобы рассматривать XML-документ как древовидную структуру. XSLT и XPath используют похожий древовидный облик XML-документа. Подробнее можно посмотреть на странице http://www.w3.org/TR/REC-DOM-Level-1.
1.2.4.6 Document Object Model (DOM) Level 2
Стандарт DOM Level 2 построен на стандарте DOM Level 1. Он добавляет несколько новых особенностей:
- Поддерживает HTML, обеспечивая DOM-вид HTML-документов.
- CSS-приложения
- События документа
- Методы обхода дерева
- Ряд методов выборки
- Представление DOM-дерева, в котором представление отделено от самого DOM.
Новые особенность DOM Level 2 влияют на нашу работу непосредственно. Если вы прочтёте спецификацию, вы увидите, что такие особенности как представление, интерфейс таблиц стилей, обход дерева, обеспечивает возможности, используемые XSLT-процессором. Несмотря на то, что будущие XSLT-процессоры будут основаны на XML-парсерах, предоставляющих указанные функции, это не повлияет на приемы разработки, описываемые в книге. Полная спецификация расположена на странице http://www.w3.org/TR/DOM-Level-2.
1.2.4.7 Пространства имён XML
Как мы упоминали ранее, пространства имён обеспечивают возможность избегать конфликтов между именами, когда два XML-елемента имеют одинаковое имя. Больше информации на странице http://www.w3.org/TR/REC-xml-names.
1.2.4.8 Привязка таблиц стилей к XML-документу.
Можно сослаться на XSLT-преобразование в XML-документе. Эта спецификация использует обрабатываемые инструкции для определение одного или более преобразований, которые должны быть использованы для трансформации XML-документа. Вы можете определить различные стили для использования с различными браузерами. Вот начало XML-документа с привязанными преобразованиями:
<?xml-stylesheet href="docbook/html/docbook.xsl" type="text/xsl"?>
<?xml-stylesheet href="docbook/wap/docbook.xsl" type="text/xsl" media="wap"?>
В этом примере первое преобразование используется по умолчанию, потому что у него нет атрибута media. Второе преобразование будет использовано в том случае, когда поле User-Agent из HTTP-заголовка будет содержать строку «wap», определяющую, что документ запрашивается WAP-браузером. Преимущество этого метода состоит в том, что вы можете определять несколько разных преобразований в определённом документе и иметь отдельные преобразования, чтобы генерировать нужные результаты для различных браузеров или их типов.
Недостаток этой техники — это то, что мы фактически определяем инструкции отображения в XML-документе, чего мы предпочли бы избегать.
Если вы используете Microsoft Internet Explorer 5.0 или выше, вы можете установить XSLT-процессор так, что открывание XML-документа в вашем браузере, будет заставлять его преобразовываться и отображаться автоматически. Для подробностей о том, как устанавливать и настраивать это приложение, посетите страницу http://www.microsoft.com/xml. В предыдущем примере, если бы мы открыли XML-документ, который начинается с указанных строк, браузер преобразовал бы XML-документ согласно правилам, определённым в docbook/html/docbook.xsl и отрисовал бы результат как если бы это были HTML-страницы.
1.2.4.9 Масштабируемая векторная графика (Scalable Vector Graphics, SVG)
Спецификация SVG определяет XML-лексикон для векторной графики. Описываемый чем-то вроде PostScript в угловых скобках, он позволяет вам определять изображения, который могут быть масштабированы до лбого размера или разрешения. Подробнее на странице http://www.w3.org/TR/SVG/.
1.2.4.10 Канонический XML версии 1.0
Иногда необходимо сравнение двух XML-документов (в случае цифровой подписи XML-документа, например). Канонический XML определяет точную форму для XML, что делает сравнение двух документов лёгким. Полностью вы можете посмотреть спецификацию на странице See http://www.w3.org/TR/xml-c14n.
1.2.4.11 Цифровые подписи XML
Совместными усилиями W3C и Internet Engineering Task Force (IETF), цифровая XML-подпись предоставляет механизм для хранения цифровых подписей в XML-документе. XML-документ предоставляет обёртку для хранения, отправки и восттановления цифровых подписей для цифровых ресурсов любого вида. Последний проект спецификации вы может найти на странице http://www.w3.org/TR/xmldsig-core.
1.2.4.12 XML Pointer Language (XPointer) версии 1.0
XPointer предоставляет средства для распознавания фрагментов web-ресурсов. Он использует XPath для определения фрагментов. Подробнее смотрите http://www.w3.org/TR/xptr.
1.2.4.13 Язык XML-ссылок (XLink)
XLink определяет XML-словарь для связи с другими ресурсами в рамках XML-документа. Он поддерживает однонаправленные ссылки, которые мы знаем по HTML также хорошо, как и более сложные ссылки. Смотрите http://www.w3.org/TR/xlink/.
Tags: xml/xsl