XSL

XSL (e X tensible S tylesheet L anguage) - сімейство рекомендацій консорціуму W3C, що описує мови перетворення і візуалізації XML -документів. Складається з трьох частин:

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

1. Основні відмінності від CSS

  • CSS і XSL - принципово різні технології. Їх області застосування перетинаються лише частково.
  • CSS-форматування HTML-документа застосовується браузером на клієнтській стороні, а XSL-перетворення виконується, як правило, на сервері, потім його результат відправляється в браузер клієнта.
  • Мовою, лежачим в основі XSL, є XML, а це означає, що XSL більш гнучкий, універсальний, і у розробників з'являється можливість використання засобів контролю за коректністю складання таких стильових списків (використовуючи DTD або схеми даних).

2. Сімейство XSL

2.1. XSL-трансформація

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

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

  type  =  "Text / xsl"  href  =  "My-style.xsl"  ?> 

2.2. XSLT

Мова XSLT складається з трьох з половиною десятків інструкцій, всі вони мають загальний вигляд:

 <Префікс: ім'я-інструкції  [  атрибут =  "Значення"  [  атрибут =  "Значення"  ]  ]  >   >  , 

де префикс - зазвичай "xsl", але можуть використовуватися й інші.

XSLT-документ завжди є спроможним (або валідним) XML-документом і має таку структуру:

  version  =  "1.0"  ?>   version  =  "1.0"  xmlns: xsl  =  "Http://www.w3.org/1999/XSL/Transform"  >   match  =  "/"  >     >     > 

xsl:stylesheet - кореневий елемент для будь-якого XSL-документа. У нього можуть бути вкладені теги верхнього рівня ( xsl:transform - застарілий синонім для xsl:stylesheet).

Найдоступнішим XSLT-процесором на даний момент для Microsoft Windows є MSXML (поставляється з браузером Internet Explorer, починаючи з версії 4.5), для систем на основі GNU - xsltproc.


2.3. XSL-FO

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

  version  =  "1.0"  encoding  =  "Iso-8859-1"  ?>   xmlns: fo  =  "Http://www.w3.org/1999/XSL/Format"  >   >   master-name  =  "My-page"  >   margin  =  "1in"  />   >   >   master-reference  =  "My-page"  >   flow-name  =  "Xsl-region-body"  >   >  Hello, world!   >   >   >   > 

3. Секрети майстерності

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

XML:

  version  =  "1.0"  ?>   type  =  "Text / xsl"  href  =  "For.xsl"  ?>   /> 

for.xsl:

  version  =  "1.0"  ?>   version  =  "1.0"  xmlns: xsl  =  "Http://www.w3.org/1999/XSL/Transform"  >   match  =  "Root"  >   >   >   name  =  "For"  >   name  =  "I"  select  =  "1"  />   name  =  "N"  select  =  "5"  />   >   >   >   >   name  =  "For"  >   name  =  "I"  />   name  =  "N"  />   select  =  "$ I"  />   test  =  "$ I <$ n"  >   >  ,   >   name  =  "For"  >   name  =  "I"  select  =  "$ I +1"  />   name  =  "N"  select  =  "$ N"  />   >   >   >   > 

Результат:

1, 2, 3, 4, 5


3.2. Угрупування і сортування років

XML:

  version  =  "1.0"  ?>   type  =  "Text / xsl"  href  =  "Years.xsl"  ?>   >   year  =  "2003"  />   year  =  "2001"  />   year  =  "2005"  />   year  =  "2005"  />   year  =  "2003"  />   year  =  "2006"  />   year  =  "2006"  />   year  =  "2006"  />   year  =  "2005"  />   year  =  "2001"  />   > 

years.xsl:

  version  =  "1.0"  ?>   version  =  "1.0"  xmlns: xsl  =  "Http://www.w3.org/1999/XSL/Transform"  >   name  =  "Years"  match  =  "/ Root / object"  use  =  "@ Year"  />   match  =  "Root"  priority  =  "-1"  >   >   >   select  =  "Object [generate-id () = generate-id (key ('years', @ year))]"  >   select  =  "@ Year"  order  =  "Descending"  />   select  =  "@ Year"  />   test  =  "Position ()! = Last ()"  >   >  ,   >   >   >   >   >   >   > 

Результат:

2006, 2005, 2003, 2001


Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
XSL-FO