Тема Обработка документов xml лекция 10. Способы преобразования документов xml план icon

Тема Обработка документов xml лекция 10. Способы преобразования документов xml план




Скачати 296.71 Kb.
НазваТема Обработка документов xml лекция 10. Способы преобразования документов xml план
Дата25.10.2012
Розмір296.71 Kb.
ТипЛекция
1. /XML-Лекция 1. концепция Семантического Веб.doc
2. /XML-Лекция 10. XSL.doc
3. /XML-Лекция 11. Сортировка и фильтрация.doc
4. /XML-Лекция 12. Другие способы отображения XML документов.docx
5. /XML-Лекция 13. XLINK.doc
6. /XML-Лекция 14_RDF.doc
7. /XML-Лекция 15_OWL.doc
8. /XML-Лекция 1_Презентация.docx
9. /XML-Лекция 2. Основы XML.doc
10. /XML-Лекция 3. Создание XML-документов.doc
11. /XML-Лекция 4. Обработка XML в C#.docx
12. /XML-Лекция 5. Создание XML-документов в C#.docx
13. /XML-Лекция 6. Отображение XML-документов в помощью CSS.doc
14. /XML-Лекция 7. Атрибуты и пространства имен.doc
15. /XML-Лекция 8. Определение типа документа.doc
16. /XML-Лекция 9. Схемы XSD.doc
“семантический web и языки информационного обмена”
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план
Тема Обработка документов xml лекция 11. Фильтрация и сортировка данных xml план
Лекция 12. Другие способы отображения xml документов План Связывание xml данных с html страницей с помощью dso
Тема Связь xml документов Лекция 12. Создание ссылок на языке xlink
Стандарты rdf пример практического применения rdf
Языки онтологий Создание онтологий в редакторе Protégé-2000
Тема концепция семантического web
Тема Язык xml лекция Введение
Тема Основы xml лекция Создание и отображение xml-документа
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных
Лекция Создание xml-документов в. Net план Использование класса XmlWriter запись потоков данных Xml Использование dom в. Net Чтение xml-документа с помощью XmlNodeList
Тема Основы xml лекция Применение css для отображения xml-документа
Тема Основы xml лекция 7
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition)
Тема xml-схемы – описание структуры документа лекция Описание схемы документа средствами xsd (xml schema Definition language)


Тема 6. Обработка документов XML

Лекция 10. Способы преобразования документов XML

План

  1. Способы преобразования документов XML

  2. Основы использования XSL-таблиц стилей

  3. Использование одного шаблона XSL

  4. Использование нескольких шаблонов XSL


1. Способы преобразования документов XML

Поскольку в XML вы создаете свои собственные элементы, браузер не имеет встроенных средств, позволяющих определить, как их правильно отобразить.

Есть несколько способов сообщить браузеру как обрабатывать и отображать содержимое документа XML.

  • Таблица стилей. С помощью данного метода вы связываете таблицу стилей с XML-документом. Таблица стилей представляет собой отдельный файл, содержащий инструкции для форматирования индивидуальных XML-элементов. Вы можете использовать либо каскадную таблицу стилей (Cascading Style Sheet - CSS), которая также применяется для HTML-страниц, либо расширяемую таблицу в формате языка стилевых таблиц (Extensible Stylesheet Language - XSL), обладающую более широкими возможностями, нежели CSS, и разработанную специально для XML-документов.

  • Связывание данных. Этот метод требует создания HTML-страницы, связывания с ней XML-документа и установления взаимодействий стандартных HTML-элементов на странице, таких как SPAN или TABLE, с элементами XML. В дальнейшем HTML-элементы автоматически отображают информацию из связанных с ними XML-элементов.

  • Написание сценария. В этом методе вы создаете HTML-страницу, связываете ее с XML-документом и имеете доступ к отдельным XML-элементам с помощью специально написанного кода сценария (JavaScript, VBScript, PHP). Браузер воспринимает XML-документ как объектную модель документа (Document Object Model - DOM), состоящую из большого набора объектов, свойств и команд. Написанный код позволяет осуществлять доступ, отображение и манипулирование XML-элементами.

2. Основы использования XSL-таблиц стилей

Расширяемый язык таблиц стилей XSL (Extensible Stylesheet Language) – технология, предназначенная для обработки документов XML.

Подобно таблице каскадных стилей (CSS), XSL-таблица стилей связывается с XML-документом и сообщает браузеру, как отображать данные XML. Это позволяет открывать XML-документ непосредственно в браузере без посредничества HTML-страницы.

Но CSS и XSL — это принципиально разные технологии. CSS-форматирование применяется к HTML-документу браузером на клиентской стороне, а XSL-преобразование выполняется, как правило, на сервере, после чего результат отправляется браузеру клиента. XSL базируется на XML, благодаря чему XSL более гибок и универсален. У разработчиков имеется возможность использовать средства контроля за корректностью составления стилевых списков (используя схемы XML).

Вы можете выбрать только те данные XML, которые хотите отобразить, представить эти данные в любом порядке, свободно модифицировать или добавлять информацию.

С помощью XSL можно преобразовать XML-документ в формат HTML, WML, RTF, PDF, SQL, SWF, а так же в другой XML и XSL документ. XSL указывает, как будет оформлен документ, где и каким образом должны размещаться данные.

Спецификация XSL состоит из трех частей:

  • XSLT (XSL Transformations), язык для преобразования XML;

  • XPath - язык путей и выражений, используемый в XSLT для доступа к отдельным частям XML-документа;

  • XSL-FO (XSL Formatting Objects), язык для верстки XML.


Язык преобразований XSLT — это одна из реализаций XML и полноценный язык программирования. Все элементы XML, объявленные в языке XSLT, относятся к пространству имен

http://www.w3.org/1999/XSL/Transform.

Обычно они записываются с префиксом xsl. Если принят этот префикс, то корневой элемент документе XSLT— таблицы стилей— будет называться xsl:stylesheet у которого есть один обязательный атрибут version, указывающий версию языка.

Существуют два основных шага для отображения XML-документа при использовании XSL-таблицы стилей.

  1. Создание файла XSL-таблицы стилей. XSL-таблица представляет собой корректно сформированный XML-документ, который отвечает правилам XSL. Подобно любому XML-документу, XSL-таблица стилей содержит простой текст, и ее можно создать с помощью текстового редактора. Можно, конечно, использовать XML-редактор.

  2. Связывание XSL-таблицы стилей с XML-документом. Вы можете связать XSL-таблицу стилей с XML-документом, включив в документ инструкцию по обработке xml-stylesheet, которая имеет следующую обобщенную форму записи:











Здесь simple.xsl представляет собой заключенный в кавычки URL, указывающий местонахождение файла таблицы стилей. Вы можете использовать полный URL, например:





или неполный (относительный) URL, который задает местонахождение файла относительно расположения XML-документа, содержащего инструкцию по обработке xml-stylesheet, например:





Так же таблицу стилей можно записывать не в отдельный файл, а в преобразуемый документ XML. Для этого в элементе xsl:stylesheet предусмотрен атрибут-идентификатор id, на который можно ссылаться обычным образом из инструкции по обработке xml-stylesheet.










xmlns:xsl="http://www.w3.org/1999/XSL/Transform">








3. Использование одного шаблона XSL

3.1 Вывод одного элемента XML

В отличие от CSS, содержащей правила, XSL-таблица стилей включает один или несколько шаблонов, каждый из которых содержит информацию для отображения в определенной ветви элементов XML-документа.

Рассмотрим создание простой XSL-таблицы стилей, которая включает только один шаблон, содержащий информацию для отображения всего документа.


Пример 1. Файл ex1.xml








Hello, Word!




Таблица стилей находится в файле ex1.xsl





xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">








<xsl:value-of select="head" />








Каждая XSL-таблица стилей должна иметь элемент xsl:stylesheet, представленный ниже.



xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">



Элемент xsl:stylesheet служит не только хранилищем других элементов, но также идентифицирует документ как XSL-таблицу стилей. Этот элемент является одним из XSL-элементов специального назначения, используемых в таблице стилей. Все XSL-элементы принадлежат пространству имен xsl.

Элемент xsl:stylesheet XSL-таблицы стилей должен содержать один или несколько шаблонов элементов. В нашем примере элемент содержит только один шаблон, который имеет следующую форму:






<xsl:value-of select="head" />





Браузер использует шаблон для отображения определенной ветви элементов в XML-документе, с которым вы связываете таблицу стилей. Атрибут match шаблона указывает на определенную ветвь. Значение атрибута match носит название образца (pattern). Образец в нашем примере ("note") представляет элемент "note" XML-документа.


Для отображения всего XML-документа используется шаблон с атрибутом match, который имеет значение "/" (пустой):





Этот шаблон содержит инструкции для отображения всего XML-документа.

Каждая XSL-таблица стилей должна содержать один и только один шаблон с атрибутом match, который имеет значение "/". Вы можете включить один или несколько дополнительных шаблонов с инструкциями для отображения определенных подчиненных ветвей в структуре XML-документа; каждая из них должна иметь образец, отвечающий определенной ветви.


Корневой образец ("/") представляет весь документ.

Пример шаблонов для отображения книжного каталога:

Пример 2

Файл Inventoty.xml (фрагмент).



Имя файла: Inventory.xml -->







The Adventures of Huckleberry Finn

Mark Twain

mass market paperback

298

$5.49





Leaves of Grass

Walt Whitman

hardcover

462

$7.75





The Legend of Sleepy Hollow

Washington Irving

mass market paperback

980

$2.95






Пример. 2.1. Отображение всего содержимого документа

Файл Inventory0.xsl
























В результате, на НTML странице будет выведено все содержимое.

Отображение одной книги:

Пример. 2.2.








<xsl:template match="INVENTORY">





<xsl:value-of select="BOOK"/>










То же самое будет, если указать
























Выведенное содержимое не отформатировано. Для форматирования вывода содержимого XML можно применять разметку HTML.

Рассмотрим применение HTML разметки.

Пример 3. Файл ex2.xml с описанием книги:







Moby-Dick



Herman

Melville



hardcover

724

$9.95



В файле ex2.xsl находится таблица стилей







Book Description



Author:

<xsl:value-of select="BOOK/AUTHOR"/>


Title:

="BOOK/TITLE"/>


Price:

="BOOK/PRICE"/>


Binding type:

="BOOK/BINDING"/>


Number of pages:

<xsl:value-of select="BOOK/PAGES"/>





Шаблон содержит два вида XML-элементов.

  1. XML-элементы, представляющие HTML-разметку:

Book Description



отображает заголовок второго уровня

Author:

который отображает блок текста, набранного курсивом (Author:),




создает пустую строку.

Все эти XML-элементы являются корректно сформированными и представляют стандартные HTML-элементы. Браузер просто копирует каждый HTML-элемент непосредственно на выход HTML, который воспринимает и отображает их.

2 XSL-элементы. Примеры XSL-элементов из рассматриваемой таблицы стилей являются элементами xsl:value-of, например:

select="BOOK/AUTHOR"/>

Браузер отличает XML-элемент от элемента, представляющего HTML, поскольку первый имеет в качестве префикса описание пространства имен xsl:. XSL-элементы в шаблоне не копируются на выход HTML. Они лишь содержат инструкции по выбору и модификации данных XML, либо используются для выполнения других задач.

XSL-элемент value-of добавляет текстовое содержимое XML-элемента – а также любых его дочерних элементов в выходной модуль HTML, который воспринимается и отображается браузером. Вы указываете определенный XML-элемент заданием образца, который присваиваете атрибуту select XSL-элемента value-of. В рассмотренном выше примере элемента value-of атрибуту select присвоен образец "BOOK/AUTHOR", что приводит к выводу текстового содержимого элемента AUTHOR XML-документа.

Обратите внимание, что XML-элемент в образце задается с помощью оператора пути (в данном случае BOOK/AUTHOR), который определяет местонахождение элемента в иерархии XML-документа.

Главный момент, на который здесь следует обратить внимание, состоит в том, что оператор пути в значении атрибута select относится к текущему элементу. Каждый контекст внутри XSL-таблицы стилей относится к текущему элементу. Поскольку рассматриваемый пример шаблона относится к корневому элементу всего документа (посредством установки атрибута match="/"), текущим "элементом" для данного шаблона является корневой элемент документа.

Если вы опустите атрибут select для XSL-элемента value-of, элемент будет осуществлять вывод текстового содержимого плюс текстовое содержимое всех дочерних элементов в текущий элемент. (В нашем примере, поскольку текущим является корневой элемент, пропуск атрибута select приведет к выводу всех символьных данных в XML-документ.)

Целью представленного в рассматриваемом примере шаблона элементов является отображение текста названия для каждого из дочерних XML-элементов в документе (AUTHOR, TITLE, PRICE, BINDING и PAGES) плюс текстового содержимого каждого элемента. Обратите внимание, что порядок элементов value-of в шаблоне определяет порядок, в котором браузер отображает эти элементы. То есть, элементы отображаются в том порядке, в котором они указаны в шаблоне.


В браузере будет выведено:

Book Description


Author: Herman Melville

Title: Moby-Dick

Price: $9.95

Binding type: hardcover

Number of pages: 724


Аналогичная таблица стилей для документа INVENTORY.XML:









Book Description



Author:




Title:




Price:




Binding type:




Number of pages:








Отображение графических файлов

Рисунок можно отобразить с помощью тега HTML

Пример 4. Отображение описания книги и рисунка

В файле My_Book.xml находится описание одной книги




File Name: My_book.xml -->





<IMG SRC='QA.jpg' />

Коротун Т.М.

Коваль Г.И.

Основы инженерии качества программных систем

Киев, Академпериодика

670

2007



Определяется ядро знаний в области инженерии качества программных систем.

Рассматриваются процессы жизненного цикла, связанные с обеспечением качества –

процессы верификации, валидации, тестирования, измерения, управления риском,

обеспечения гарантии качества, управления качеством и др.






В файле My_Book.xsl находится соответствующая таблица стилей











Book Description



<IMG SRC='QA.jpg' ALIGN='LEFT' />



Author:




Title:




Publisher:




Количество страниц:




Год издания:




Аннотация:









В Internet Explorer эта страница отображается следующим образом:




3.2 Отображение переменного количества элементов

Применение шаблона с элементом xsl:value-of и атрибутом select позволяет вывести только один из элементов.

В случае, если документ содержит несколько элементов BOOK, необходимо использовать элемент for-each.


Рассмотрим известный нам пример, книжный каталог:





The Adventures of Huckleberry Finn



Mark

Twain



mass market paperback


298

$5.49






The Adventures of Tom Sawyer



Mark

Twain



mass market paperback


205

$4.75






The Ambassadors



Henry

James



mass market paperback


305

$5.95






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


xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" >





Book Description



Author:




Title:




Price:




Binding type:




Number of pages:







Этот шаблон использует методику, описанную в предыдущем разделе. Образец элементов, присваиваемых каждому атрибуту select начинается с указания корневого элемента (например, "INVENTORY/BOOK/AUTHOR").

Каждый образец, однако, соответствует трем различным элементам. Например, "INVENTORY/BOOK/AUTHOR" соответствует элементу AUTHOR для всех трех элементов BOOK. В подобной ситуации браузер использует только первый из соответствующих элементов. Таким образом, таблица стилей отобразит содержимое только первого элемента BOOK.


Чтобы отобразить все отвечающие образцу элементы, следует использовать XSL-элемент for-each, который вызывает повторный вывод для каждого из содержащихся в XML-файле элементов.

Например, таблица стилей Inventory01.xsl:










Book Inventory



<xsl:for-each select="INVENTORY/BOOK">

Title:




Author:




Binding type:




Number of pages:




Price:










и соответствующий документ XML:




Имя файла: Inventory.xml -->







The Adventures of Huckleberry Finn



Mark

Twain



mass market paperback


298

$5.49






The Adventures of Tom Sawyer



Mark

Twain



mass market paperback


205

$4.75






The Ambassadors



Henry

James



mass market paperback


305

$5.95






The Awakening



Kate

Chopin



mass market paperback


195

$4.95






A Connecticut Yankee in King Arthur's Court



Mark

Twain



mass market paperback


385

$5.49







Шаблон в таблице стилей в этом примере содержит следующий элемент for-each:

="INVENTORY/BOOK">

Title:




Author:




Binding type:




Number of pages:




Price:






Элемент for-each выполняет две основные задачи:

  • осуществляет вывод блока элементов, содержащихся внутри элемента for-each, повторяя его для каждого XML-элемента в документе, отвечающего образцу, присвоенному атрибуту select элемента for-each. В данном примере цикл выполняется по одному разу для каждого элемента BOOK, найденного в элементе INVENTORY;

  • внутри элемента for-each задает текущий элемент, устанавливаемый атрибутом select элемента for-each (/INVENTORY/BOOK в нашем примере указывает на элемент BOOK внутри элемента INVENTORY, входящего в корневой элемент документа).


Пример 5. Отображение элементов XML в таблице HTML. Применяется элемент for-each.


Обображаются не все дочерние элементы!

В файле rozklad.xml содержится документ XML



пример отображается в браузерах -->







08.30

09.35

Англійська мова

Пожидаєва





09.45

10.50

Менеджмент безпеки ІС

Шилін





11.00

12.05

Менеджмент безпеки

Шилін





12.15

13.20

Семантичний веб

Коротун






В файле rozklad.xsl таблица стилей.











Розклад занять





























Time From Subject Teacher











В этом шаблоне вывод делается в таблицу HTML. Обратите внимание, что элемент

не выводится.

4. Использование нескольких шаблонов


Другой способ отображения повторяющихся XML-элементов состоит в создании отдельного шаблона для каждого элемента с последующим вызовом этого шаблона с использованием XSL-элемента apply-templates. Например:











The Adventures of Huckleberry Finn

Mark Twain

mass market paperback

298

$5.49





Leaves of Grass

Walt Whitman

hardcover

462

$7.75





The Legend of Sleepy Hollow

Washington Irving

mass market paperback

980

$2.95



.................




Таблица стилей Inventory02.xsl" имеет вид:






match="/">

Book Inventory



select="INVENTORY/BOOK" />





Title:




Author:




Binding type:




Number of pages:




Price:








Эта таблица стилей содержит два шаблона. Один шаблон содержит инструкции для отображения всего документа (). Другой шаблон содержит инструкции для отображения элемента BOOK (). Сначала браузер обрабатывает шаблон, соответствующий корневой части элемента:



Book Inventory







XSL-элемент apply-templates сообщает браузеру, что для каждого элемента BOOK внутри корневого элемента INVENTORY он должен обрабатывать шаблон, отвечающий элементу BOOK – т. е. шаблон, для атрибута match которого установлено значение "BOOK". Таблица стилей включает следующий шаблон, отвечающий элементу BOOK:




Title:




Author:




Binding type:




Number of pages:




Price:






Примечание. Если вы не укажете атрибут select для элемента apply-templates, браузер обрабатывает шаблон для каждого дочернего элемента текущего элемента. В рассматриваемом примере элемента apply-templates единственным дочерним элементом для текущего элемента (корневая часть документа) является элемент INVENTORY, который не имеет соответствующего шаблона. Таким образом, если вы опустите атрибут select, никакие данные не будут выведены.

Браузер обрабатывает шаблон BOOK один раз для каждого элемента BOOK, отображая всю информацию о книгах, имеющуюся в документе.

Еще пример: Отображение содержимого почтового ящика

В файле mailbox.xml находится документ XML










Проверка почтового ящика



user2@myhp.edu

user3@myhp.edu

user1@myhp.edu

Test











Это письмо не является спамом



user2@myhp.edu

user4@myhp.edu

Интересное предложение










В файле mailbox.xsl находится таблица стилей:





xmlns:xsl="http://www.w3.org/1999/XSL/Transform">






Почтовый ящик



<xsl:apply-templates/>






















































From:



To:

,



Subject:
CC
Notify















Схожі:

Тема Обработка документов xml лекция 10. Способы преобразования документов xml план iconПрактическая работа №11. Тема: Автоматизация создания однотипных документов с разными реквизитами. Слияние документов Word и Excel
Цель: Научиться создавать и редактировать сложные связанные документы, получить практические навыки в формировании комплектов однотипных...
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план iconІнформації про предметну область. Вивчаються основні технології, пов’язані з аналізом І трансформацією xml-документів (xslt та xpath, sax, dom та TrAX), описом структури документів (dtd та xmlschema). Розглядаються також специфікації xlink та xpointer
Вивчення курсу передбачає виконання практичного Інтернет-проекту, основними цілями якого є розробка інформаційної системи з підтримкою...
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план icon1. Оформление документов, отчетов
Автоматизированная система перекладывает ра­боту по выписке документов на «плечи» компьютера, работа требует времени в де-сятки раз...
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план iconМежгосударственный стандарт единая система конструкторской документации основные положения виды и комплектность конструкторских документов гост 102-68 ипк издательство стандартов
Настоящий стандарт устанавливает виды и комплектность конструкторских документов на изделия всех отраслей промышленности
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план iconСопротивление крестьянства советскому режиму: 1920–1930-е годы
Архиве Министерства Внутренних Дел Молдавской сср и Службы Информации и Безопасности, касающихся 1937-1938 гг. [3]. И еще один сборник...
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план iconПлан работы Профбюро факультета компьютерных наук
Участие в оформлении документов по предоставлению одноразовой материальной помощи
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план iconІнформаційна картка про інноваційну розробку
Назва розробки. Інтегрована система підтримки процесу дистанційного навчання xml education system framework (xesf)
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план iconСемантичний Веб І мови інформаційного обміну
Підготувати документ xml для опису свого завдання. Документ повинен мати не менше трьох рівнів вкладеності І атрибути
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план iconПоложення про метрологїчну службу Мїнїстерства охорони здоров’я України для организации проверки первичных материалов и документов по выполнению диссертационной работы на соискание ученой степени канд мед наук (доктора мед наук)
Ф. И. О. по теме: «наименование темы» организовать для проверки первичных материалов и документов по выполнению диссертационной работы,...
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план iconПрактикум по компьютерной технологии, стр. 113 156. итература: Последовательность выполнения работы
...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи