<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=XSL</id>
	<title>XSL - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=XSL"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=XSL&amp;action=history"/>
	<updated>2026-07-16T05:21:42Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=XSL&amp;diff=39321&amp;oldid=prev</id>
		<title>imported&gt;Alex NB OT: унификация языковых шаблонов</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=XSL&amp;diff=39321&amp;oldid=prev"/>
		<updated>2025-11-15T11:10:23Z</updated>

		<summary type="html">&lt;p&gt;унификация языковых шаблонов&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Технологический стандарт}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;XSL&amp;#039;&amp;#039;&amp;#039; (e&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;tensible &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;tylesheet &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage) — семейство рекомендаций [[W3C|консорциума W3C]], описывающее языки преобразования и визуализации [[XML]]-документов. Состоит из трех частей:&lt;br /&gt;
&lt;br /&gt;
* XSL Transformations ([[XSLT]]) — язык преобразования XML-документов.&lt;br /&gt;
* XSL Formatting Objects ([[XSL-FO]]) — [[язык разметки]] типографских макетов и иных предпечатных материалов.&lt;br /&gt;
* [[XPath]] — язык путей и выражений, используемый в том числе и в XSLT для доступа к отдельным частям XML-документа.&lt;br /&gt;
&lt;br /&gt;
== Основные отличия от [[CSS]] ==&lt;br /&gt;
* [[CSS]] и XSL — принципиально разные технологии. Их области применения пересекаются лишь частично.&lt;br /&gt;
* CSS-форматирование HTML-документа применяется браузером на клиентской стороне, а XSL-преобразование может выполняться как в браузере, так и на сервере.&lt;br /&gt;
* Языком, лежащим в основе XSL, является [[XML]], а это означает, что XSL более гибок, универсален, и у разработчиков появляется возможность использования средств контроля за корректностью составления таких стилевых списков (используя [[DTD]] или схемы данных).&lt;br /&gt;
&lt;br /&gt;
== Семейство XSL ==&lt;br /&gt;
&lt;br /&gt;
=== XSL-трансформация ===&lt;br /&gt;
&lt;br /&gt;
С помощью XSL можно трансформировать [[XML]]-документ в любой вид, будь то [[HTML]], [[WML]], [[RTF]], [[PDF]], [[SQL]] или даже [[SWF]] (flash-запускаемый модуль), а также XSL. XSL несёт в себе информацию о том, как будет оформлен документ, где и как должны располагаться данные.&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы обработать XML-документ c помощью XSL, необходимо в XML-документе написать следующую инструкцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;my-style.xsl&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== XSLT ===&lt;br /&gt;
{{main|XSLT}}&lt;br /&gt;
&lt;br /&gt;
Язык [[XSLT]] состоит из 35 инструкций, все они имеют общий вид:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;префикс:имя-инструкции [атрибут=&amp;quot;значение&amp;quot; [атрибут=&amp;quot;значение&amp;quot;]]&amp;gt;&lt;br /&gt;
&amp;lt;/префикс:имя-инструкции&amp;gt;,&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;code&amp;gt;префикс&amp;lt;/code&amp;gt; — обычно «xsl», но могут использоваться и другие.&lt;br /&gt;
&lt;br /&gt;
XSLT-документ всегда является состоятельным (&amp;#039;&amp;#039;или валидным&amp;#039;&amp;#039;) XML-документом и имеет следующую структуру:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;!-- набор инструкций --&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
 	&amp;lt;!-- ... --&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xsl:stylesheet&amp;lt;/code&amp;gt; — корневой элемент для любого XSL-документа. В него могут быть вложены теги верхнего уровня (&amp;lt;code&amp;gt;xsl:transform&amp;lt;/code&amp;gt; — устаревший синоним для &amp;lt;code&amp;gt;xsl:stylesheet&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Самым доступным XSLT-процессором на данный момент для [[Microsoft Windows]] является [[MSXML]] (поставляется с браузером [[Internet Explorer]], начиная с версии 4.5), для систем на основе [[GNU]] — xsltproc.&lt;br /&gt;
&lt;br /&gt;
=== XSL-FO ===&lt;br /&gt;
{{main|XSL-FO}}&lt;br /&gt;
&lt;br /&gt;
Пример [[XSL-FO]] документа (взят из [http://www.renderx.com/tutorial.html XSL Formatting Objects Tutorial]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;iso-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;fo:root xmlns:fo=&amp;quot;http://www.w3.org/1999/XSL/Format&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;fo:layout-master-set&amp;gt;&lt;br /&gt;
     &amp;lt;fo:simple-page-master master-name=&amp;quot;my-page&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;fo:region-body margin=&amp;quot;1in&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/fo:simple-page-master&amp;gt;&lt;br /&gt;
   &amp;lt;/fo:layout-master-set&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;fo:page-sequence master-reference=&amp;quot;my-page&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;fo:flow flow-name=&amp;quot;xsl-region-body&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;fo:block&amp;gt;Hello, world!&amp;lt;/fo:block&amp;gt;&lt;br /&gt;
     &amp;lt;/fo:flow&amp;gt;&lt;br /&gt;
   &amp;lt;/fo:page-sequence&amp;gt;&lt;br /&gt;
 &amp;lt;/fo:root&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
=== Рекурсивный цикл ===&lt;br /&gt;
&lt;br /&gt;
XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;for.xsl&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;root/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
for.xsl:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;root&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;HTML&amp;gt;&lt;br /&gt;
			&amp;lt;BODY&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:call-template name=&amp;quot;for&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;i&amp;quot; select=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;n&amp;quot; select=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
			&amp;lt;/BODY&amp;gt;&lt;br /&gt;
		&amp;lt;/HTML&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:template name=&amp;quot;for&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;i&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;n&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:value-of select=&amp;quot;$i&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;$i &amp;amp;lt; $n&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:text&amp;gt;, &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:call-template name=&amp;quot;for&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:with-param name=&amp;quot;i&amp;quot; select=&amp;quot;$i+1&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:with-param name=&amp;quot;n&amp;quot; select=&amp;quot;$n&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Результат:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1, 2, 3, 4, 5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Группировка и сортировка значений ===&lt;br /&gt;
&lt;br /&gt;
XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;years.xsl&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;root&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2003&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2001&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2005&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2005&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2003&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2006&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2006&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2006&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2005&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;object year=&amp;quot;2001&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/root&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
years.xsl:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:key name=&amp;quot;years&amp;quot; match=&amp;quot;/root/object&amp;quot; use=&amp;quot;@year&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;root&amp;quot; priority=&amp;quot;-1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;HTML&amp;gt;&lt;br /&gt;
			&amp;lt;BODY&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:for-each select=&amp;quot;object[generate-id()=generate-id(key(&amp;#039;years&amp;#039;,@year))]&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:sort select=&amp;quot;@year&amp;quot; order=&amp;quot;descending&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;@year&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:if test=&amp;quot;position()!=last()&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt;, &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
			&amp;lt;/BODY&amp;gt;&lt;br /&gt;
		&amp;lt;/HTML&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Результат:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2006, 2005, 2003, 2001&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[W3C]]&lt;br /&gt;
* [[XML]]&lt;br /&gt;
* [[HTML]]&lt;br /&gt;
* [[CSS]]&lt;br /&gt;
* [[XSLT]]&lt;br /&gt;
* [[XPath]]&lt;br /&gt;
* [[XSL-FO]]&lt;br /&gt;
* [[EXSLT]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://www.w3.org/Style/XSL/ Официальная страница XSL] {{ref|en}}&lt;br /&gt;
* [http://data2type.de/index.php/xml-xslt-xslfo Tutorials for XSL-FO and XSLT] {{ref|de}}&lt;br /&gt;
&lt;br /&gt;
{{XSL}}&lt;br /&gt;
{{Языки таблиц стилей}}&lt;br /&gt;
{{Стандарты W3C}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Языки разметки]]&lt;br /&gt;
[[Категория:Языки стилей]]&lt;br /&gt;
[[Категория:Стандарты W3C]]&lt;br /&gt;
[[Категория:Стандарты на основе XML]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Alex NB OT</name></author>
	</entry>
</feed>