Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
answers_1.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
912.38 Кб
Скачать

Xsl. Основные понятия и конструкции языка. Xslt преобразование

http://www.citforum.ru/internet/xmlxslt/xmlxslt.shtml

http://en.wikipedia.org/wiki/XSLT_elements

http://en.wikipedia.org/wiki/XSLT

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

XSLT имеет множество различных применений, в основном в области web-программирования и генерации отчётов. Одной из задач, решаемых языком XSLT, является отделение данных от их представления, как часть общей парадигмы MVC (англ. Model-view-controller). Другой стандартной задачей является преобразование XML-документов из одной XML-схемы в другую.

Консорциум W3 определяет три составные части языка XSL (eXtensible Stylesheet Language — Расширяемый Язык Стилей): XSLT, XPath (язык путей и выражений, используемый в XSLT для доступа к отдельным частям XML-документа) и XSL-FO (eXtensible Markup Language Formatting Objects — язык разметки типографских макетов и иных предпечатных материалов.

XSL — трансформация

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

Самой доступной XSL-T машиной на данный момент для Microsoft Windows является MSXML (поставляется с Internet Explorer начиная с версии 4.5 и выше); для систем на основе GNU — xsltproc. Для того, чтобы обработать XML документ c помощью XSL, необходимо в XML документе написать следующую инструкцию:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="my-style.xsl"?>

<root>

< !-- ... -- >

</root>

Под Linux:

$ xsltproc -o result.html my-style.xsl document.xml

XSLT

Язык XSLT состоит из трёх с половиной десятков инструкций, все они имеют общий вид:

<пространство-имен:имя-инструкции [атрибут="значение" [атрибут="значение"]]>

</пространство-имён:имя-инструкции>,

где пространство-имен обычно «xsl», но могут использоваться и другие.

XSLT документ всегда является состоятельным(или валидным) XML документом и имеет следующую структуру:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

< !-- набор инструкций -- >

</xsl:template>

< !-- ... -- >

</xsl:stylesheet>

xsl:stylesheet — является корневым элементом для любого XSL документа. В него могут быть вложены теги верхнего уровня. (xsl:transform — устаревший синоним для xsl:stylesheet)

XML:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="years.xsl"?>

<root>

<object year="2003"/>

<object year="2001"/>

<object year="2005"/>

<object year="2005"/>

<object year="2003"/>

<object year="2006"/>

<object year="2006"/>

<object year="2006"/>

<object year="2005"/>

<object year="2001"/>

</root>

years.xsl:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:key name="years" match="/root/object" use="@year" />

<xsl:template match="root" priority="-1">

<HTML>

<BODY>

<xsl:for-each select="object[generate-id()=generate-id(key('years',@year))]">

<xsl:sort select="@year" order="descending"/>

<xsl:value-of select="@year" />

<xsl:if test="position()!=last()">

<xsl:text>, </xsl:text>

</xsl:if>

</xsl:for-each>

</BODY>

</HTML>

</xsl:template>

</xsl:stylesheet>

Результат:

2006, 2005, 2003, 2001

<script>

document.writeln('<head>');

...

Свойства элементов документов это ссылка на корневой документ.

Attributes — список атрибутов объектов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]