XSL

XSL

XSL (eXtensible Stylesheet Language) — семейство рекомендаций консорциума W3C, описывающее языки преобразования и визуализации XML-документов. Состоит из трех частей:

  • XSL Transformations (XSLT) — язык преобразований XML-документов.
  • XSL Formatting Objects (XSL-FO) — язык разметки типографских макетов и иных предпечатных материалов.
  • XPath — язык путей и выражений, используемый в XSLT для доступа к отдельным частям XML-документа.

Содержание

Основные отличия от CSS

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

Семейство XSL

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

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

Для того, чтобы обработать XML документ c помощью XSL, необходимо в XML документе написать следующую инструкцию:

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

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).

Самым доступным XSLT-процессором на данный момент для Microsoft Windows является MSXML (поставляется с браузером Internet Explorer, начиная с версии 4.5), для систем на основе GNU — xsltproc.

XSL-FO

Пример XSL-FO документа (взят из XSL Formatting Objects Tutorial):

 <?xml version="1.0" encoding="iso-8859-1"?>
 
 <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <fo:layout-master-set>
     <fo:simple-page-master master-name="my-page">
       <fo:region-body margin="1in"/>
     </fo:simple-page-master>
   </fo:layout-master-set>
 
   <fo:page-sequence master-reference="my-page">
     <fo:flow flow-name="xsl-region-body">
       <fo:block>Hello, world!</fo:block>
     </fo:flow>
   </fo:page-sequence>
 </fo:root>

Секреты мастерства

Рекурсивный цикл

XML:

 <?xml version="1.0"?>
 <?xml-stylesheet type="text/xsl" href="for.xsl"?>
 <root/>

for.xsl:

 <?xml version="1.0"?>
 
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:template match="root">
        <HTML>
           <BODY>
                <xsl:call-template name="for">
                    <xsl:with-param name="i" select="1"/>
                    <xsl:with-param name="n" select="5"/>
                </xsl:call-template>
           </BODY>
        </HTML>
     </xsl:template>
 
     <xsl:template name="for">
        <xsl:param name="i"/>
        <xsl:param name="n"/>
        <xsl:value-of select="$i"/>
        <xsl:if test="$i &lt; $n">
           <xsl:text>, </xsl:text>
           <xsl:call-template name="for">
                <xsl:with-param name="i" select="$i+1"/>
                <xsl:with-param name="n" select="$n"/>
           </xsl:call-template>
        </xsl:if>
    </xsl:template>
 </xsl:stylesheet>

Результат:

1, 2, 3, 4, 5

Группировка и сортировка годов

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

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "XSL" в других словарях:

  • XSL — (Extensible Stylesheet Language) ist eine in XML notierte Familie von Transformationssprachen zur Definition von Layouts für XML Dokumente. Die XSL Subsprache XSLT wird außerdem zur Übersetzung/Transformation eines XML Formats in ein anderes XML… …   Deutsch Wikipedia

  • XSL-FO — (Extensible Stylesheet Language – Formatting Objects) ist eine XML Anwendung, die beschreibt, wie Text, Bilder, Linien und andere grafische Elemente auf einer Seite angeordnet werden. Mit Hilfe von XSL FO ist es möglich, qualitativ hochwertige… …   Deutsch Wikipedia

  • XSL:FO — XSL FO (Extensible Stylesheet Language – Formatting Objects) ist eine XML Anwendung, die beschreibt, wie Text, Bilder, Linien und andere grafische Elemente auf einer Seite angeordnet werden. Mit Hilfe von XSL FO ist es möglich, qualitativ… …   Deutsch Wikipedia

  • Xsl-fo — (eXtensible Stylesheet Language Formatting Objects) dans la recommandation XSL du W3C est le vocabulaire qui décrit les mises en forme de documents XML quel que soit le support : écran, papier, audio, etc. XSL FO s adresse principalement aux …   Wikipédia en Français

  • XSL-FO — (англ. eXtensible Stylesheet Language Formatting Objects объекты форматирования языка таблиц стилей для XML) рекомендованный Консорциумом Всемирной паутины язык разметки типографских макетов и иных предпечатных материалов. XSL FO является… …   Википедия

  • XSL-FO — (eXtensible Stylesheet Language Formatting Objects) dans la recommandation XSL du W3C est le vocabulaire qui décrit les mises en forme de documents XML quel que soit le support : écran, papier, audio, etc. XSL FO s adresse principalement aux …   Wikipédia en Français

  • XSL — er i IT terminologi en forkortelse for Extensible Style Language, og er en specifikation (udviklet af World Wide Web Consortiet) til layout styring i HTML og XML sider. XSL fungerer nogenlunde på samme måde som CSS ved at adskille sideindhold og… …   Danske encyklopædi

  • XSL — kalba statusas T sritis informatika apibrėžtis ↑Stilių aprašo kalbų šeima, skirta ↑XML kalba rašomų failų stiliams ir transformacijoms į kitų formatų dokumentus aprašyti. XML dokumente turinys ir jo pateikimas yra griežtai atskirti (gairėse nėra… …   Enciklopedinis kompiuterijos žodynas

  • XSL — (siglas de Extensible Stylesheet Language, expresión inglesa traducible como lenguaje extensible de hojas de estilo ) es una familia de lenguajes basados en el estándar XML que permite describir cómo la información contenida en un documento XML… …   Enciclopedia Universal

  • XSL —   [Abk. für Extensible Stylesheet Language], XML …   Universal-Lexikon


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»