Введення в XSLT

Малобюджетні сайти.

Просування веб-сайту.

Введення в XSLT. Перетворення на XML, HTML, XHTML, RTF

Inside XSLT, S. Holsner

Припустимо, веб-сайт вашої компанії використовує засноване на XML програмне забезпечення компанії Commerce One, в якому для безпечної комунікації через Інтернет застосовується Java Message Service (JMS). Ваша діяльність була настільки успішною, що ви щойно поглинули свого конкурента. На жаль, для свого вузла в Інтернеті ваш колишній конкурент використовує інший, заснований на XML продукт, RosettaNet. Як вам тепер перетворити замовлення на купівлю xCBL Commerce One, написане на XML, на замовлення на купівлю RosettaNet, також написане на XML, але зовсім на іншому діалекті?

Зрозуміло, застосувати XSLT. Такі XML-XML перетворення стають дедалі більш поширеними. Все більше компаній застосовують JMS для безпечних комунікацій через Інтернет, і оскільки JMS виконується в Java, буде розумним зв'язати JMS із базовими на Java процесорами XSLT, такими як Xalan або Saxon.

Основне завдання XSLT полягає не просто у заміні одного елемента на інший, а й у повній реорганізації вмісту XML-документа. Наприклад, вам може знадобитися реорганізувати planets.xml у термінах щільності планет за допомогою XSLT для створення нового XML-документу:

Ми також розглянемо використання режимів XSLT для здійснення кількох перетворень із документом та зорієнтуємося, як застосовувати лише один із кількох відповідних шаблонів.

Здебільшого цього розділу досліджуються можливості елемента , з короткого огляду якого і почну.

З елементом елемент ми вперше познайомилися в розділі 2 і використовували його, головним чином,для завдання типу результуючого документа. Цей тип може задати, наприклад, чи буде процесор XSLT записувати інструкцію обробки XML, на початку документа, а також задати тип MIME (такий, як "text/xml" або "text/html") документів, що відправляються процесором XSLT з web- сервера браузеру. Крім того, якщо ви встановите вихідний тип HTML, більшість процесорів XSLT зможуть розпізнати, що не всім елементам HTML необхідні теги, що закривають або відкривають, і т.п.

У наступному списку наведено атрибути :

cdata-section-elements (необов'язковий). Задає імена тих елементів, вміст яких має виводитися як розділи CDATA. Приймає значення списку QName, розділеного символами-розділювачами;

encoding (необов'язковий). Вказує кодування символів. Встановлюється у рядкове значення;

indent (необов'язковий). Визначає, чи буде вихідний документ вирівняний із відображенням структури вкладеності. Встановлюється у yes або no;

media-type (необов'язковий). Визначає тип MIME виводу. Встановлюється у рядкове значення;

method (необов'язковий). Визначає формат виводу. Приймає значення "xml", "html", "text" або допустиме ім'я QName;

version (необов'язковий). Задає версію виводу. Приймає значення припустимого NMToken.

Найчастіше використовується атрибут метод, оскільки саме він визначає необхідний тип вихідного дерева. Офіційно методом виводуметод виводу за умовчанням є HTML, за умови, що виконуються всі три наступні умови:

кореневий вузол результуючого дерева має дочірній елемент;

у назві елемента документа результуючого дерева є частина "html" (у будь-якій комбінації верхнього і нижнього регістрів) і порожній URI простору імен;

всі текстові вузлиперед першим дочірнім елементом кореневого вузла містять лише символи-розділювачі.

Якщо виконуються всі ці умови, то за замовчуванням метод виведення встановлюється в HTML. В іншому випадку методом виводу за промовчанням є XML.

Тим не менш, не варто покладатися на установки методу виводу за умовчанням, краще явно надати цьому атрибуту значення. Три поширені значення атрибуту method - "html", "xml" і "text", і ми познайомимося з ними в наступних розділах.

Метод виведення: HTML

Для методу виведення HTMLметод виводу; HTML процесор XSLT повинен зробити певні дії. Наприклад, для цього атрибут version визначає версію HTML. Значення за промовчанням - 4.0.

Цей метод не повинен додавати завершальний тег для пустих елементів. (Для HTML 4.0 порожніми елементами є , , , , , , , , , , , і

.) Метод виведення HTML повинен розпізнавати назви елементів HTML незалежно від регістру.

Згідно W3C, метод виведення HTML не повинен приховувати вміст елементів або наступний, що використовує розділ CDATA:

повинен бути перетворений на:

Метод виведення HTML не повинен пригнічувати символи , а не ?>, а також підтримує окремі атрибути, як і HTML. Наприклад, тег

Для цього методу можна встановити атрибут media-type, значенням для якого є "text/html". Метод HTML не повинен прибирати символ &, який з'являється у значенні атрибута, якщо відразу за ним слідує фігурна дужка. Атрибут encoding задає кодування, що використовується. Якщо є елемент , цей метод виведення повинен додати елемент відразу ж після тега , визначаючи кодування символів:

The Mass Page

The Mass Page

XSLT

Ця книга покликана дати вамстільки присвяченого XSLT матеріалу, скільки може містити одна книга. У ній розглядається не тільки весь синтаксис XSLT, від основ до всіх спеціальних аспектів, але й докладно викладаються сучасні способи використання XSLT. Ви знайдете сотні практичних прикладів, таких як здійснення перетворень XSLT на Web-серверах, підключення до баз даних та використання браузерів для здійснення перетворень на льоту. Книга розрахована практично на всіх, хто хоче вивчати XSLT та використовувати його на практиці.

Зміст

Глава 11. Застосування XSLT для створення документів XSL-FOФорматування XSL Форматуючі об'єкти XSL-FO Форматуючі властивості XSL-FO Форматування документа XML Перетворення в XSL -FO за допомогою таблиці стилів XSLT Створення кореня документа: Створення схеми набору шаблонів: Створення шаблону сторінки: Створення областей Створення послідовностей сторінок: Створення об'єктів потоку: Створення вмісту рівня блоку: Створення таблиць Створення таблиць: Створення стовпців таблиці: Створення тіл таблиці: Створення рядків таблиці: Створення осередків таблиці:Глава 12 Документи XSL-FOСтворення списків XSL-FO Створення списку: Створення елементів списку: Створення міток елемента списку: Створення тіл елементів списку: Розміщення тексту за допомогою контейнерів блоків: Вбудовані форматуючі об'єкти Створення вбудованих областей: Обробка окремих символів : Створення номерів сторінок: Вставка графіки: Форматування перших рядків: Створення виносок: та Створення посилань: Створення колонок Послідовності сторінок та нумерація сторінокДодаток А. DTD XSLTФрагмент DTD для таблиць стилів XSLT

Додаток Б. Формуючі властивості XSL-FO