Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ВСхнология XSLTΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 73

Автор АлСксСй Π’Π°Π»ΠΈΠΊΠΎΠ²

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сортировки ΠΈΠΌΠ΅Π½ ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΉ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Листинг 8.10. Входящий Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

<list>

 <person>

  <name>William</name>

  <surname>Gibson</surname>

 </person>

 <person>

  <name>William</name>

  <surname>Blake</surname>

 </person>

 <person>

  <name>John</name>

  <surname>Fowles</surname>

 </person>

</list>

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ этот список сначала ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ Π² ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎ фамилиям Π² Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΌ порядкС.

<xsl:template match="list">

 <xsl:copy>

  <xsl:for-each select="person">

   <xsl:sort select="name" order="descending"/>

   <xsl:sort select="surname"/>

   <xsl:copy-of select="."/>

  </xsl:for-each>

 </xsl:copy>

</xsl:template>

Листинг 8.12. Выходящий Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

<list>

 <person>

  <name>William</name>

  <surname>Blake</surname>

 </person>

 <person>

  <name>William</name>

  <surname>Gibson</surname>

 </person>

 <person>

  <name>John</name>

  <surname>Fowles</surname>

 </person>

</list>

К соТалСнию, сортировкой нСльзя ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ динамичСски. ВсС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ элСмСнта xsl:sort Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ фиксированными значСниями.

ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ пространств ΠΈΠΌΠ΅Π½

Π›ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΠΌ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния XSLT-прСобразования, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ сам Π±Ρ‹Ρ‚ΡŒ XSLT- ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π˜Π½Ρ‹ΠΌΠΈ словами, прСобразования ΠΌΠΎΠ³ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прСобразованиями. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях такая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, входящий XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Листинг 8.13. XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

<transform>

 <remove select="a"/>

 <replace select="b" with="B"/>

 <replace select="c" with="C"/>

</transform>

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ описываСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ· входящСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° элСмСнты Π°, Π° элСмСнты b ΠΈ c Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнтами B ΠΈ C соотвСтствСнно. Π’Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Листинг 8.14. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

<xsl:stylesheet

 version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


 <xsl:template match="a"/>


 <xsl:template match="b">

  <xsl:element name="B">

   <xsl:apply-templates/>

  </xsl:element>

 </xsl:template>


 <xsl:template match="c">

  <xsl:element name="C">

   <xsl:apply-templates/>

  </xsl:element>

 </xsl:template>


 <xsl:template match="@*|node()">

  <xsl:copy>

   <xsl:apply-templates select="@*|node()"/>

  </xsl:copy>

 </xsl:template>


</xsl:stylesheet>

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄, Π½Π΅ прСдставляСт особой слоТности. НапримСр, шаблон для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ элСмСнта replace ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

<xsl:template match="replace">

 <xsl:element name="xsl:template">

  <xsl:attribute name="match">

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

  </xsl:attribute>

  <xsl:element name="xsl:element">

   <xsl:attribute name="name">

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

   </xsl:attribute>

   <xsl:element name="xsl:apply-templates"/>

  </xsl:element>

 </xsl:element>

</xsl:template>

Π¨Π°Π±Π»ΠΎΠ½ этот выглядит ΠΎΡ‡Π΅Π½ΡŒ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ просто Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ создаваСмоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ создаСм элСмСнты Π² пространствС ΠΈΠΌΠ΅Π½ XSLT, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² шаблонС, ΠΎΠ½ΠΈ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡŒ Π±Ρ‹ Π½Π΅ ΠΊΠ°ΠΊ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, Π° ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ шаблон Π²ΠΈΠ΄Π°

<xsl:template match="replace">

 <xsl:template match="{@select}">

  <xsl:element name="{@with}">

   <xsl:apply-templates/>

  </xsl:element>

 </xsl:template>

</xsl:template>

Π±Ρ‹Π» Π±Ρ‹ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС инструкции ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ xsl:element ΠΈ xsl:attribute, Ρ‡Ρ‚ΠΎ сдСлало шаблон Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ ΠΈ малопонятным.

Если Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‚ΠΎ окаТСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты ΠΎΠ΄Π½ΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΠ»ΠΈΡΡŒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ пространству.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, XSLT прСдоставляСт Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Π·Π°Π΄Π°Ρ‡ΠΈ: пространству ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ псСвдоним ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ элСмСнта xsl:namespace-alias.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ xsl:namespace-alias

БинтаксичСская конструкция этого элСмСнта выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<xsl:namespace-alias

 stylesheet-prefiΡ…="прСфикс" | "#default"

 result-prefix="прСфикс" | "#default"/>

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ xsl:namespace-alias Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ пространству ΠΈΠΌΠ΅Π½ выходящСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° пространство ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈΠ½Π°Ρ‡Π΅ говоря β€” псСвдоним.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ result-prefix ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΌΡƒ пространству ΠΈΠΌΠ΅Π½ назначаСтся псСвдоним. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ stylesheet-prefix ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС Π΅Π³ΠΎ псСвдонима Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ. Оба Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° содСрТат прСфиксы пространств ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, СстСствСнно, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ прСобразования, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ пространство ΠΈΠΌΠ΅Π½ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… элСмСнтов Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡŒ процСссором ΠΊΠ°ΠΊ элСмСнты XSLT. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² выходящСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ эти элСмСнты всС ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π»ΠΈ пространству ΠΈΠΌΠ΅Π½ XSLT, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ псСвдоним этого пространства.

Листинг 8.15. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ псСвдонимы пространств ΠΈΠΌΠ΅Π½

<xsl:stylesheet

 version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 xmlns:axsl="http://www.w3.org/1999/XSL/Transform/Alias">


 <xsl:namespace-alias

  stylesheet-prefix="axsl"

  result-prefix="xsl"/>


 <xsl:template match="replace">

  <axsl:template match="{@select}">

   <axsl:element name="{@with}">

    <axsl:apply-templates/>

   </axsl:element>

  </axsl:template>

 </xsl:template>


 <xsl:template match="remove">

  <axsl:template match="{@select}"/>

 </xsl:template>


 <xsl:template match="transform">

  <axsl:stylesheet version="1.0">

   <xsl:apply-templates/>

   <axsl:template match="@*|node()">

    <axsl:copy>

     <axsl:apply-templates select="@*|node()"/>

    </axsl:copy>

   </axsl:template>

  </axsl:stylesheet>

 </xsl:template>

</xsl:stylesheet>

Π’ этом ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ элСмСнт xsl:namespace-alias ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всС элСмСнты, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ пространству ΠΈΠΌΠ΅Π½ с URI

http://www.w3.org/1999/XSL/Transform/Alias

Π² выходящСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ пространству ΠΈΠΌΠ΅Π½ с URI

http://www.w3.org/1999/XSL/Transform

Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ пространству ΠΈΠΌΠ΅Π½ XSLT.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ примСнСния этого прСобразования ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ ΠΈΠ· листинга 8.13 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.

Листинг 8.16. ВыходящСС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

<axsl:stylesheet

 version="1.0"

 xmlns:axsl="http://www.w3.org/1999/XSL/Transform"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


 <axsl:template match="a"/>


 <axsl:template match="b">

  <axsl:element name="B">

   <axsl:apply-templates/>

  </axsl:element>

 </axsl:template>


 <axsl:template match="c">

  <axsl:element name="C">

   <axsl:apply-templates/>

  </axsl:element>

 </axsl:template>


 <axsl:template match="@*|node()">

  <axsl:copy>

   <axsl:apply-templates select="@*|node()"/>

  </axsl:copy>

 </axsl:template>


</axsl:stylesheet>

Π’ этом сгСнСрированном ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ элСмСнты ΠΈΠΌΠ΅ΡŽΡ‚ прСфикс axsl, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ пространству ΠΈΠΌΠ΅Π½ XSLT.

Атрибуты stylesheet-prefix ΠΈ result-prefix элСмСнта xsl:namespace-alias ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ значСния "#default". ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°

<xsl:namespace-alias

 stylesheet-prefix="a"

 result-prefix="#default"/>

ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ элСмСнты, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ пространству ΠΈΠΌΠ΅Π½ Π°, Π² выходящСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ пространству ΠΈΠΌΠ΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°