- •Огляд сучасних Інтернет - технологій. Технологія asp.Net
- •Серверні елементи керування Label, TextBox, Button, Image, Table
- •Робота з xml
- •Файли перетворення документа
- •Файли визначення схеми документа
- •Клас XmlReader
- •Клас xPathDocument
- •Елемент управління xml
- •Створення простої сторінки, що використовує інформацію з бази даних
- •Елементи керування для відображення даних (repeater, datalist і datagrid)
- •Шаблони дизайну сторінок asp.Net
- •Зміст за замовчуванням
- •Програмне призначення головної сторінки
- •Вкладені майстер-сторінки
- •Послідовність подій
- •Створення структури переходів Web вузла
- •Елемент керування SiteMapPath
- •Програмне керування TreeView
- •Елемент керування Menu
Файли перетворення документа
Відомо, що для форматування HTML-файлів часто використовуються CSS (Cascading Stylesheets), хоча це необов'язково, оскільки браузери співвідносять зі всіма тегами певний зовнішній вигляд. Елемент <p> задає параграф, <B> - Напівжирний шрифт; браузер знає, як їх показувати.
Оскільки XML не використовує спочатку задані теги, їх значення може бути яким завгодно: <table> може означати таблицю HTML, а може і дерев'яний стіл. Тому браузери показують XML-документи "як є". Можна задати CSS-файли і для XML-документів, але це не рекомендується.
Для того щоб задати формат відображення XML-документів, використовуються таблиці стилів XSL. XSL - Розширювана мова стилів (Extensible Stylesheet Language), він набагато більш багатий можливостями, ніж CSS. XSL - Більше, ніж просто таблиця стилів.
Один і той же файл XML можна пов'язати з різними таблицями XSL, У тому числі програмно.
XSL складається з трьох частин:
XSLT - Метод перетворення XML-документів.
XPath - Метод завдання частин і шляхів до елементів XML
XSL Formatting Object - Метод форматування XML-документів.
Найважливіша частина XSL - Це мова перетворень XSLT (XSL Transformation). Він застосовується для перетворення XSL-документів в інші типи документів або інші XSL-документи. Часто XSLT використовується для перетворення XSL-документа у формат HTML.
Для того щоб створити XSLT-документ, виберіть в діалозі створення файлу XSLT file. VS 2005 створює каркас таблиці стилів. Оскільки таблиця стилів сама по собі є XML-документом, вона починається з декларації XML:
<? xml version = "1.0" encoding = "utf-8"?>
Тег xsl: stylesheet задає початок таблиці стилів:
<xsl: stylesheet version = "1.0"
xmlns: xsl = "http://www.w3.org/1999/XSL/Transform">
</ xsl: stylesheet>
Якщо ви вивчали CSS, то знаєте, що для завдання стилів використовуються правила. Правило складається з селектора і опису стилю у фігурних дужках.
a
(
font-size: medium;
color: Fuchsia;
)
Це правило визначає стиль виведення гіперпосилань середнього розміру шрифтом фіолетовим кольором.
У XSL застосовуються шаблони. Для пов'язання шаблону з XML-елементом використовується атрибут відповідності.
Тег xsl: template задає початок шаблону. Атрибут шаблону match ="/"> зв'язує шаблон і кореневий елемент початкового XML-документа:
<xsl:template match="/">
</ xsl: template>
У цей тег вкладений шаблон HTML-файла. Коментар нагадує про те, що туди потрібно вставити XSL-елементи.
Створення файлів XSLT розглянемо на прикладі. Створіть у папці App_Data файл XML "Quotes.xml":
<? xml version = "1.0" encoding = "utf-8"?>
<! - цитати великих людей ->
<Quotes>
<Quote>
<Text>
Хотіли як краще, а вийшло як завжди. </ Text>
<Author> Віктор Черномирдін </ Author>
</ Quote>
<Quote>
<Text> Америка - континент, названий так тому, що його від -
крив Колумб. </ Text>
<Author> Жорж Елгозі </ Author>
</ Quote>
<Quote>
<Text> Я приходжу в сказ від однієї думки про те, скільки б
я всього дізнався, якщо б не ходив до школи. </ Text>
<Author> Джордж Бернард Шоу </ Author>
</ Quote>
<Quote>
<Text> Багато придумано для того, щоб не думати. </ Text>
<Author> Карел Чапек </ Author>
</ Quote>
<Quote>
<Text> Коли скажеш правду, все одно рано чи позно потрапиш -
ся. </ Text>
<Author> Оскар Уайльд </ Author>
</ Quote>
<Quote>
<Text> Бути йому президентом, якщо його до того часу не пове -
сят. </ Text>
<Author> Марк Твен </ Author>
</ Quote>
</ Quotes>
Щоб внести у вихідний потік XSLT-перетворення кожен XML-елемент, застосовується тег XSL xsl: for-each. Елемент : for-each визначає місце розташування елементів у XML-документі і повторює шаблон для кожного з них:
<xsl:for-each select="Quotes/Quote"> </ xsl: for-each>
Все, що знаходиться в шаблоні, буде виводитися стільки разів, скільки в початковому документі зустрінеться елемент Quote, Ув'язнений в тег Quotes.
Щоб внести у вихідний потік XSLT-перетворення значення XML-елемента, застосовується тег XSL xsl: value-of:
<xsl:value-of select="Text"/>
<hr/>
Дані можна відсортувати за допомогою тега xsl: sort, Який повинен знаходитися усередині елементу xsl: for-each:
<xsl:sort select="Author" />
XSL може застосовувати умови для показу і форматування інформації залежно від значень елементів. "Умовний оператор" має вигляд <xsl:choose>, В який вкладені елементи <xsl:when> і, можливо, <xsl:otherwise>. Умова задається в елементі <xsl:when> за допомогою парамерта test:
<xsl:choose>
<xsl:when test="Author='Марк Твен'">
<img src="http://www.tvkultura.ru/p/q_14406.jpg"> </ img>
</ xsl: when>
Остаточний вид файлу трансформації:
<? xml version = "1.0" encoding = "utf-8"?>
<xsl: stylesheet xmlns: xsl = "http://www.w3.org/1999/XSL/Transform"
version = "1.0">
<xsl:template match="/">
<html>
<body>
<h1 style = "background-color: RoyalBlue; color: white;
font-size: 24pt; text-align: center; letter-spacing: 1.0em ">
Відомі цитати
</ h1>
<table border="0">
<tr style = "font-size: 12pt; font-family: verdana;
font-weight: bold ">
<td style="text-align: center"> Цитата </ td>
<td style="text-align: center"> Автор </ td>
</ tr>
<xsl:for-each select="Quotes/Quote">
<xsl:sort select="Author" />
<tr style="font-size: 10pt; font-family: verdana">
<td>
<xsl:value-of select="Text"/> </ td>
<td>
<xsl:choose>
<xsl:when test="Author='Марк Твен'">
<img src="http://www.tvkultura.ru/ p/q_14406.jpg"> </ img>
</ xsl: when>
<xsl:otherwise>
<i> <xsl:value-of select="Author"/> </ i>
</ xsl: otherwise>
</ xsl: choose>
</ td>
</ tr>
</ xsl: for-each>
</ table>
</ body>
</ html>
</ xsl: template>
</ xsl: stylesheet>
Якщо хочете побачити результат перетворення документа в браузері, включіть після XML-декларації оголошення
<? xml-stylesheet type = "text / xsl" href = "XSLTFile.xsl"?>,
або виберіть у меню XML пункт "Show XML Output" і визначте файл перетворення.
Той же самий XML-документ можна перетворити за допомогою іншого XSL-файла:
<? xml version = "1.0" encoding = "utf-8"?>
<xsl: stylesheet version = "1.0"
xmlns: xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h1 style = "background-color: Brown; color: white;
font-size: 24pt; text-align: center; letter-spacing: 1.0em ">
Майстер афоризму
</ h1>
<xsl:for-each select="Quotes/Quote">
<xsl:value-of select="Text"/>
<br/>
<xsl:value-of select="Author"/>
<hr width="70%"/> </ xsl: for-each>
</ body>
</ html>
</ xsl: template>
</ xsl: stylesheet>
В результаті будуть виводитися цитати, розділені горизонтальною лінією.
