1 / 53

Язык преобразования XSLT

Язык преобразования XSLT. Презентацию подготовила Шигаева Алена, гр.950б. Язык XSLT.

Download Presentation

Язык преобразования XSLT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Язык преобразования XSLT Презентацию подготовила Шигаева Алена, гр.950б

  2. Язык XSLT Это расширяемый язык таблиц стилей.Язык XSL фактически состоит из двух частей: языка преобразований и языка форматирования. Язык, предназначенный для выполнения преобразований, позволяет конвертировать структуры документов в различные формы (например, PDF,WML,HTML или иные типы схем), в то время как язык форматирования используется для оформления и определения стилей документов различными способами. Обе части языка XSL могут функционировать совершенно независимо одна от другой, поэтому их можно рассматривать в качестве независимых языков разметки.

  3. Применение таблиц стилей XSLТ в XML-документах. Язык XSLT применяется для обработки документов, внесения изменений и необходимых дополнений в разметку. Его можно применять для преобразования XML-кода в отформатированный HTML-код. Язык XSLT обеспечивает доступ к содержимому XML-документов, а также применяется для создания новых документов на их основе. Для выполнения XSLT-преобразований используется два документа: преобразуемый документ и таблица стилей, определяющая само преобразование. В данном случае речь идет об XML-документах.

  4. Пример:

  5. Таблицы стилей XSL Ниже показан примерный вид таблицы стилей. В данном случае содержимое файла преобразуется в HTML-код:

  6. Выполнение преобразования Документ можно преобразовать тремя способами: • С помощью сервера – серверная программа, например JAVA или JAVA SERVER PAGE, применяет таблицу стилей для автоматического преобразования документа и представления его клиенту. • С помощью клиента – клиентская программа, например браузер, выполняет преобразование путем чтения таблиц стилей, указанной с помощью инструкции по обработке <?xml-stylesheet?>. • С помощью отдельной программы – некоторые программы, обычно основанные на JAVA, предназначены для выполнения XSLT-преобразования.

  7. 1) Выполнение преобразований с помощью сервера:

  8. Результат выполнения jslt-преобразования Выполненного с помощью сервера Tomcat:

  9. 2) Применение браузеров для преобразования XML-документов:

  10. Результат преобразования:

  11. 3)Применение специальных программ Для создания программы воспользуемся классом TransformerFactory для формирования нового объекта из этого класса.

  12. Методы класса TransformerFactory МЕТОД • Protected TransformerFactory() • Abstract Source getAssociatedStylesheet(Source source, String media, String title, String charset) • Abstract object getAttribute (String name) • Abstract ErrorListenergetErrorListener() • Abstract boolean getFeature (String name) • Abstract URIResolvergetURIResilver() • Static TransformerFactory newInstance() • Abstract Templates newTemplates (Source source) • Abstract Transformer new Transformer() ОПИСАНИЕ • Заданный по умолчанию конструктор • Получает спецификации таблиц стилей • Возвращает определенные атрибуты • Возвращает обработчик ошибочного события для TransformerFactory • Возвращает значение свойства • Получает объект, используемый по умолчанию в процессе преобразования для разрешения URI-ссылок • Получает новый объект TransformerFactory • Обрабатывает Source в объекте Templates • Создает новый объект TransFormer, который использует источник для преобразований

  13. МЕТОД • AbstractTransformer newTransformer(Source source) • Abstract void setAttribute (String name, Object value) • Abstract void setErrorListener (ErrorListener listener) • Abstract void setURIResolver (URIResolver resolver) ОПИСАНИЕ • Создает новый объект TransFormer, который применяет Source для выполнения преобразований • Устанавливает определенные атрибуты • Устанавливает слушатель событий, связанных с ошибками JAVA • Устанавливает объект, применяемый по умолчанию во время преобразования для разрешения URI-ссылок

  14. Методы класса javax.xml.transform.Transformer МЕТОД • Protected Transformer() • Abstract void clearParameters() • Abstract ErrorListenergetErrorListener() • Abstract Properties getOutputProperties() • Abstract String getOutputProperty (String name) • Abstract Object getParameter(String name) • Abstract URIResolvergetURIResolver() • Abstract void setErrorListener (ErrorListener listener) • Abstract void setOutputProperties (Properties oformat) • Abstract void SetOutputProperty (String name, String value) ОПИСАНИЕ • Заданный по умолчанию конструктор • Очищает все параметры, установленные с помощью setParameter • Возвращает обработчик сообщения об ошибке • Возвращает копию выводимых свойств • Возвращает значение выводимого свойства • Возвращает параметр, с помощью setParameter либо setParameters • Возвращает объект, используемый для разрешения URI-ссылки • Устанавливает слушатель событий, связанных с ошибками JAVA • Устанавливает выводимые свойства • Устанавливает выводимое свойство

  15. МЕТОД • Abstract void setParameter (String name, Object value) • Abstract void setURIResolver (URIResolver resolver) • Abstract void transform (Source xmlSource, Result outputTarget ОПИСАНИЕ • Устанавливает параметр • Устанавливает объект, применяемый для разрешения Uri-ссылки • Выполняет преобразование

  16. Пример Для выполнения преобразования воспользуемся методом transform объекта TransFormer, передавая ему преобразованный XML-документ:

  17. Создание таблиц стилей XSLT В процессе XSLT-преобразований в качестве вводных данных используется дерево документа, в результате обработки которого формируется дерево результатов. В этом случае документы представляют собой деревья, построенные на основе узлов. Язык XSLT распознает семь типов XSLT-узлов. Эти узлы представлены в следующем списке,где также указан порядок их обработки XSLT-процессорами: • Корень документа – начало документа; • Атрибут - данный узел включает значение атрибута наравне с объектными ссылками, которые могут расширяться, и пропусками, которые могут удаляться; • Комментарий – данный узел включает текст комментария без знаков <!– и -->; • Элемент – этот узел содержит все символьные данные элемента, включая символьные данные любого дочернего элемента; • Пространство имен – данный узел содержит URIпространства имен; • Инструкция по обработке – этот узел включает текст инструкции по обработке, куда не входят символы <? и ?>; • Текст – данный текст содержит текст узла.

  18. Для определения обрабатываемого узла XSLT предлагает различные способы, обеспечивающие установку соответствия с узлами или их выбора. Для начала разработаем небольшой пример, заменяющий корневой узел HTML-страницей.

  19. Таким образом начинает создаваться таблица стилей XSLT. Для обработки определенных узлов XML-документа XSLT использует шаблоны. В следующем примере требуется заменить корневой узел новым HTML-документом. Начнем с создания шаблона с помощью элемента <xsl:template>:

  20. При установлении соответствия с корневым узлом к нему применяется шаблон. В этом случае корневой узел заменяется HTML-документом, который непосредственным образом используется в качестве содержимого элемента <xsl:template>:

  21. Вот и все, что требуется выполнить в данной ситуации. С помощью элемента <xsl:template> в таблице стилей устанавливается правило. Когда XSL-процессор просматривает документ, в качестве первого узла выбирается корневой узел. Данное правило устанавливает соответствие с корневым узлом, поэтому XSL-процессор заменяет его HTML-документом. Результат:

  22. Элемент xsl:apply-templates Шаблон описанный в предыдущем разделе, применяется только по отношению к корневому узлу. Выполняется тривиальное действие по замене полного XML-документа HTML-документом. Можно также применять шаблоны по отношению к дочерним элементам узла, с которым установлено соответствие. В этих целях применяется элемент <xsl:apply-templates>. Например, рассмотрим случай, когда элемент <PLANETS> можно заменить элементом <HTML>:

  23. Чтобы удостовериться, что дочерние элементы корректно преобразованы воспользуемся элементом <xsl:apply-templates>следующим образом:

  24. Теперь можно применить шаблоны для дочерних узлов:

  25. Например, если требуется заменить текст из элемента <NAME> в каждом элементе <PLANET> в результирующем документе, используется следующий код:

  26. Получение значений узлов с помощью xsl:value-of В данном примере выбирается название каждой из планет, включаемое в результирующий документ. Для получения названия каждой планеты применяется элемент <xsl:value-of> из шаблона, выбранного в элементе <PLANET>. Элемент <NAME> выделяется с помощью атрибута select:

  27. Обработка нескольких выделенных областей с помощью xsl:for-each Атрибут select выделяет только первый узел, соответствующий данному критерию. Но как быть, если требуется установить соответствие с несколькими узлами? Ответ: для выполнения цикла по всем возможным соответствиям можно воспользоваться элементом <xsl:for-each>:

  28. Определение шаблонов для атрибута match Атрибуту match элемента <xsl:template> присущ специфический синтаксис; еще в большей степени сказанное справедливо в отношении атрибута select элементов <xsl:apply-templates>, <xsl:value-of>, <xsl:copy-of>, <xsl:for-each> и <xsl:sort>. • Начнем с match: Установка соответствия с корневым узлом

  29. Установка соответствия с элементами Установка соответствия с дочерними элементами Установка соответствия с потомками элементов Установка соответствия с атрибутами

  30. Теперь select: Атрибут select использует выражения XPath .Основы XPath : чтобы указать узел или набор узлов в Xpath, применяется путь локализации. Путь локализации, в свою очередь, состоит из одного или большего числа шагов локализации, которые разделяются / или //. Если путь локализации начинается с /, он называется абсолютным путем локализации, поскольку начинается от корневого узла; иначе, путь локализации является относительным, начинаясь от текущего узла, именуемого контекстным узлом. Шаг локализации состоит из оси, узла тестирования и нуля или других предикатов. Оси XPath

  31. Узлы тестирования Xpath Предикаты XPath

  32. Заданные по умолчанию XSLT-правила Самое важное заданное по умолчанию правило применяется по отношению к элементам и может выражаться следующим образом: Это правило просто гарантирует то, что каждый элемент, от корневого и далее, обрабатывается с помощью <xsl:apply-templates/> в том случае, если не применяется никакое другое правило. Если же применить другое правило, это приведет к отмене соответствующего заданного по умолчанию правила. Заданное по умолчанию правило для текста может выражаться следующим образом: Аналогичное заданное по умолчанию правило применяется по отношению к атрибутам,

  33. Которые добавляются к результирующему документу с помощью заданного по умолчанию правила, например: По умолчанию инструкции по обработке не включаются в результирующий документ, поэтому соответствующее заданное по умолчанию правило можно выразить следующим образом: Аналогичное утверждение справедливо и для комментариев, для которых заданное по умолчанию правило можно выразить так: Если не применяются никакие правила, все анализируемые символьные данные из вводного документа включаются в результирующий документ. Ниже показано, какой имеет вид таблица стилей XSLT, где не используются явно определенные правила: Результат:

  34. Изменение структуры документа на основе вводных данных Создание шаблонов атрибутов

  35. Результирующий документ: Создание новых элементов

  36. Создание новых атрибутов В случае, когда необходимо контролировать выбор названий элементов и содержимого, применяется элемент <xsl:attribute>. Пример:

  37. Генерирование комментариев с помощью xsl:comment

  38. Получаем следующий результат: Генерирование текста с помощью xsl:text С помощью этого элемента можно создавать текстовые узлы, которые позволяют выполнить замену целых элементов текстом «на лету». Одно из преимуществ элемента заключается в сохранении пропусков.

  39. Пример:

  40. Копирование узлов Элемент <xsl : copy> можно применять для копирования узлов, причем можно указывать отдельные копируемые части. Заданное по умолчанию правило для элементов состоит в том, что копируется только текст элемента. Но правило можно изменить, если воспользоваться элементом <xsl : copy> , который копирует целые элементы, текстовые узлы, атрибуты, инструкции по обработке и т.д. Рассмотрим соответствующий пример:

  41. Сортировка элементов Элемент <xsl : sort> используется для выполнения сортировки наборов узлов. Этот элемент используется внутри <xsl : apply-templates>, а атрибут select этого элемента применяется для указания объекта сортировки. Пример, в котором показано, как отсортировать планеты с учетом их плотности:

  42. Применение xsl:if С помощью элемента <xsl : if> можно выбирать варианты на базе вводного документа. Чтобы воспользоваться этим элементом, просто присвоить его атрибуту test выражение, оценивающее булевское значение. Пример: перечисляем планеты и в конце горизонтальная линия.

  43. Результат:

More Related