result-prefix="#default"/>
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΠ΅Π½ Π°, Π² Π²ΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΠ΅Π½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°
<xsl:namespace-alias
stylesheet-prefix="#default"
result-prefix="a"/>
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΠ΅Π½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π² Π²ΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΠ΅Π½ Π°.
ΠΡΠΈΠΌΠ΅Ρ ΠΠΈΡΡΠΈΠ½Π³ 8.17. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:a="urn:a"
xmlns="urn:b">
<xsl:namespace-alias
stylesheet-prefix="#default"
result-prefix="a"/>
<xsl:namespace-alias
stylesheet-prefix="a"
result-prefix="#default"/>
<xsl:template match="root">
<result>
<a:element/>
</result>
</xsl:template>
</xsl:stylesheet>
ΠΠΈΡΡΠΈΠ½Π³ 8.18. ΠΡΡ ΠΎΠ΄ΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ<result xmlns="urn:a" xmlns:a="urn:b">
<a:element/>
</result>
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Ρ URI "urn:Π°" ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ ΠΈΠΌΠ΅Π½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Ρ URI "urn:b" ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡ Π½Π° Π°.
Π ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ xsl:namespace-alias Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠΌ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½ Π²ΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.
ΠΡΠΈΠΌΠ΅ΡΠΡΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ a.xsl ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
<xsl:namespace-alias
stylesheet-prefix="x"
result-prefix="a"/>
Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ b.xsl β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
<xsl:namespace-alias
stylesheet-prefix="x"
result-prefix="b"/>
Π³Π΄Π΅ Π² ΠΎΠ±ΠΎΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ x ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ a ΠΈ b β ΡΠ°Π·Π½ΡΠ΅, ΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ a.xsl Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ b.xsl ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ xsl:namespace-alias, Π½Π°Π·Π½Π°ΡΠ°ΡΡΠΈΠ΅ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΠΌ ΠΈΠΌΠ΅Π½ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ. Π ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²Π° Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π²ΡΠ΅ ΠΆΠ΅ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ Π΄Π°Π½ΠΎ Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ.
Π‘ΠΎΠ²ΡΠ΅ΠΌ ΠΈΠ½Π°ΡΠ΅ ΠΎΠ±ΡΡΠΎΠΈΡ Π΄Π΅Π»ΠΎ Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΠΈΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ»Π°Π΄ΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ a.xsl Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ b.xsl, ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ x Π±ΡΠ΄Π΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΠ΅Π½ Π° ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΠ»ΡΡΠΈ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ ΡΠ°Π·Π±ΠΎΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΌΠΎΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ ΡΠ·ΡΠΊΠ° XSLT, ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΡΡ ΠΎΠ΄Π½Ρ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°ΡΠΊΡ.
ΠΠΈΡΡΠΈΠ½Π³ 8.19. ΠΡ ΠΎΠ΄ΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ<items>
<item source="a" name="A"/>
<item source="b" name="B"/>
<item source="a" name="C"/>
<item source="c" name="D"/>
<item source="b" name="E"/>
<item source="b" name="F"/>
<item source="c" name="G"/>
<item source="a" name="H"/>
</items>
ΠΡΡΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² item), ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΡ (Π°ΡΡΠΈΠ±ΡΡ name) ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ (Π°ΡΡΠΈΠ±ΡΡ source). Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π°.
ΠΠΈΡΡΠΈΠ½Π³ 8.20. Π’ΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ<sources>
<source name="a">
<item source="a" name="A"/>
<item source="a" name="C"/>
<item source="a" name="H"/>
</source>
<source name="b">
<item source="b" name="B"/>
<item source="b" name="E"/>
<item source="b" name="F"/>
</source>
<source name="c">
<item source="c" name="D"/>
<item source="c" name="G"/>
</source>
</sources>
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π½Π° ΠΏΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠ° Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ XSLT ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ "ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌ". ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ source, Π·Π½Π°ΡΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ "Π°", Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ±ΠΎΡΠΊΠΈ
/items/item[@source='a']
Π’ΠΎΠ³Π΄Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° item Π² Π΅Π³ΠΎ Π³ΡΡΠΏΠΏΡ Π²ΠΎΠΉΠ΄ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ±ΡΠ°Π½Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ
/items/item[@source=current()/@source]
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΊΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½Π΅:
<xsl:template match="item">
<source name="{@source}">
<xsl:copy-of select="/items/item[@source=current()/@source]"/>
</source>
</xsl:template>
ΠΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ, ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ item Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π³ΡΡΠΏΠΏΠ°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ°Ρ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ, β ΡΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π½ΠΎ Π² ΡΡΠ»ΠΎΠ²ΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎ Π³ΡΡΠΏΠΏΠ΅ Π½Π΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°. Π§ΡΠΎΠ±Ρ Π΄ΠΎΡΡΠΈΡΡ ΡΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΡΠΏΠΏΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ Π΅ΠΉ. ΠΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ°ΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΎΠΏΡΡΡ ΠΆΠ΅ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ: ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΌ Π² Π³ΡΡΠΏΠΏΠ΅ ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π΅ΠΌΡ Π½Π΅ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ item, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ. ΠΠ½Π°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π³ΡΡΠΏΠΏΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
preceding-sibling::item[@source-current()/@source]
Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΡΡΡΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.
Π‘ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΈΡΠΊΠΎΠΌΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄.
ΠΠΈΡΡΠΈΠ½Π³ 8.21. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="items">
<sources>
<xsl:apply-templates/>
</sources>
</xsl:template>
<xsl:template match="item">
<xsl:choose>
<xsl:when
test="preceding-sibling::item[@source=current()/@source]"/>
<xsl:otherwise>
<source name="{@source}">
<xsl:copy-of select="self::node()
|following-sibling::item[@source=current()/@source]"/>
</source>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
ΠΠ΅ΡΡΠΏΠΎΡΠ½ΠΎ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΠΌ, Π½ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ. Π‘Π°ΠΌΡΠΌ ΠΆΠ΅ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ Π² ΡΡΠΎΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ item ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² source.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ: Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ·Π»Ρ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠ°ΠΌ, ΠΏΡΠΈΡΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. Π₯ΠΎΡΠΎΡΠΎ, ΡΡΠΎ Π² Π½Π°ΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠ΅Π³ΠΎ Π²ΠΎΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² item, Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΠΎΠ΄Π½ΡΠ»ΠΈ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅ΡΡΠ΅Π·Π½Π°. ΠΠ½Π° ΡΠΎΡΡΠΎΠΈΡ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ·Π»ΠΎΠ² Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π² Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅.
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΌΡΡΠ»Π΅ ΡΡΠ°Π·Ρ "ΡΠ·Π΅Π» ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ". ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ·Π»Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΠΈΠ½Π°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π½Π΅ΠΊΠΈΠΉ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ Π² "ΠΈΡΡΠΈΠ½Ρ".
ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΈΠΏΠ° ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΌΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ? ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π·Π°Π΄Π°Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄ΡΠΈ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π²Π΅Π½ΡΡΠ²Π°ΠΌΠΈ β Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π² "ΠΈΡΡΠΈΠ½Ρ" ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ·Π»Π°, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠΈΠΉ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΠ°Π²Π΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΌΡΡΠ» ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΎΡΡΠΎΠΈΡ Π½Π΅ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π° ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ @source=current()/@source, Π° Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ @source ΠΈ current()/@source.
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠ»ΡΡΠ°Ρ, ΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π½Π΅ ΡΠ΅ ΡΠ·Π»Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΡΠΈΠ½Π½ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ A=B, ΡΠΊΠΎΡΠ΅Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ΅, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ A ΡΠ°Π²Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ B. ΠΠ½Π°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ·Π΅Π» Π±ΡΠ΄Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° A. Π Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΡΠ°Π½Π΅Π΅ Π²ΡΡΠΈΡΠ»ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² A, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΠΈΡΠΊΠ° ΡΠ·Π»ΠΎΠ² Π² Π΄Π΅ΡΠ΅Π²Π΅ ΡΠ²Π΅Π΄Π΅ΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ β ΡΠ·Π»ΠΎΠ² Π΄Π΅ΡΠ΅Π²Π°) ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΊΠ»ΡΡΠ΅ΠΉ (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ β Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ² A).
Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΡΠ½ΠΈΡΡ ΡΡΠΎ, Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ: ΠΌΡ ΠΈΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ item ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΠ° source, ΡΠ°Π²Π½ΡΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎΠΌ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠΌ ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² source, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΠ°Π½Π΅Π΅ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠ°Π±Π». 8.2.