ΠΡΠ·ΠΎΠ² document(node-set, node-set)
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ document ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π²Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ·Π»ΠΎΠ², ΡΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
β‘ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ·Π»ΠΎΠ² ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ Π²ΠΈΠ΄;
β‘ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ² ΡΠΈΠΏΠ° document(string, node-set);
β‘ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ.
ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, document(node-set, node-set) ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π· document(string, node-set) ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ document(node-set) ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π· document(string). Π Π°Π·Π½ΠΈΡΠ° Π»ΠΈΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±Π°Π·ΠΎΠ²ΡΠΉ URI Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½.
ΠΡΡΠ³ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ XSLT
Π€ΡΠ½ΠΊΡΠΈΡ current
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄:
node-set current()
Π€ΡΠ½ΠΊΡΠΈΡ current Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, ΡΠΎΡΡΠΎΡΡΠ΅Π΅ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ·Π»Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ·Π΅Π» ΠΈ ΡΠ·Π΅Π» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΊΠ°ΠΊ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ: Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ, ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ·Π΅Π» ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΠ·Π»ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ item ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΠ° source, ΡΠ°Π²Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ·Π»Π°. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΏΡΡΡ Π²ΡΠ±ΠΎΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ item[ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ], Π³Π΄Π΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ°Π²Π΅Π½ΡΡΠ²Π° Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ. ΠΠΎ ΠΊΠ°ΠΊ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅? ΠΡΠ΅Π΄ΠΈΠΊΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° item, Π·Π½Π°ΡΠΈΡ, Π²ΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ Π²ΡΠ±ΠΎΡΠΊΠΈ ΡΠΈΠΏΠ° @source ΠΈΠ»ΠΈ ./@source ΠΈΠ»ΠΈ self::item/@source Π±ΡΠ΄ΡΡ ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ·Π΅Π» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ·Π΅Π» ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ β Π½Π΅ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ Π² ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠ·Π»Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ current:
item[@source=current()/@source]
ΠΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ±Π΅ΡΠ΅Ρ Π²ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ item ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ·Π»Π°, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° source ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ Π½Π΅Π³ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ unparsed-entity-uri
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
string unparsed-entity-uri(string)
Π€ΡΠ½ΠΊΡΠΈΡ unparsed-entity-uri Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅ΡΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΎΠΉ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ, ΠΈΠΌΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
ΠΡΠΈΠΌΠ΅ΡΠΠΏΠΈΡΡΠ²Π°Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ XML, ΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ.
ΠΠΈΡΡΠΈΠ½Π³ 8.67. ΠΡ ΠΎΠ΄ΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ<!DOCTYPE menu [
<!ELEMENT menu (menuitem*)>
<!ELEMENT menuitem EMPTY>
<!ATTLIST menuitem
image ENTITY #REQUIRED
title CDATA #REQUIRED
href CDATA #REQUIRED>
<!NOTATION gif SYSTEM "gif-viewer.exe">
<!NOTATION jpg SYSTEM "jpg-viewer.exe">
<!ENTITY news SYSTEM "news.gif" NDATA gif>
<!ENTITY products SYSTEM "prod.jpg" NDATA jpg>
<!ENTITY support SYSTEM "support.gif" NDATA gif>
]>
<menu>
<menuitem image="news" title="News" href="news.htm"/>
<menuitem image="products" title="Products" href="prods.htm"/>
<menuitem image="support" title="Support" href="support.htm"/>
</menu>
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠ½ΠΊΡΠ°ΠΌ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ unparsed- entity-uri. ΠΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° image, Π²Π΅Π΄Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ Π°ΡΡΠΈΠ±ΡΡ Π·Π°Π΄Π°Π΅Ρ ΠΈΠΌΡ Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² HTML Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄.
ΠΠΈΡΡΠΈΠ½Π³ 8.68. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ ΡΡΠ½ΠΊΡΠΈΡ unparsed-entity-uri<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
indent="yes"/>
<xsl:template match="menu">
<table>
<xsl:apply-templates select="menuitem"/>
</table>
</xsl:template>
<xsl:template match="menuitem">
<tr>
<td>
<A alt="{@title}" href="{@href}">
<img src="{unparsed-entity-uri(@image)}"/>
</A>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π»ΠΈΡΡΠΈΠ½Π³Π΅.
ΠΠΈΡΡΠΈΠ½Π³ 8.69. ΠΡΡ ΠΎΠ΄ΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ<table>
<tr>
<td>
<A alt="News" href="news.htm">
<img src="file:/C:/XML/news.gif"/>
</A>
</td>
</tr>
<tr>
<td>
<A alt="Products" href="prods.htm">
<img src="file:/C:/XML/prod.jpg"/>
</A>
</td>
</tr>
<tr>
<td>
<A alt="Support" href="support.htm">
<img src="file:/Π‘:/XML/support.gif"/>
</A>
</td>
</tr>
</table>
ΠΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎ unparsed-entity-uri β ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ. ΠΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΠΎΡΠ°ΡΠΈΠΉ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ, Π² XSLT Π½Π΅Ρ. Π‘ΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈ Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π² XSLT ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°.
Π€ΡΠ½ΠΊΡΠΈΡ generate-id
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
string generate-id(node-set?)
Π€ΡΠ½ΠΊΡΠΈΡ generate-id Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΡΠ·Π»Π°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΅ΠΉ Π² Π²ΠΈΠ΄Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΡΠ΅Π½, ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·Π»Π°. ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΡΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ.
Π€ΡΠ½ΠΊΡΠΈΡ generate-id ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
β‘ Π€ΡΠ½ΠΊΡΠΈΡ generate-id Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠ·Π»ΠΎΠ² ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΈ Π΄Π²Π° ΡΠ·Π»Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ generate-id Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ·Π»Π°, Π° Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠ·Π»ΠΎΠ² generate-id ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ ΡΠ°Π·Π½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ.
β‘ ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΠΈΡΡ ΠΈ Π±ΡΠΊΠ² ASCII ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π±ΡΠΊΠ²ΠΎΠΉ, ΡΠΎ Π΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ XML-ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π°ΡΡΠΈΠ±ΡΡΠ°, ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ID-Π°ΡΡΠΈΠ±ΡΡΠ° ΠΈΠ»ΠΈ Π² Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π³Π΄Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π° XML.
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ³ΠΎΠ²Π°ΡΠΈΠ²Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ Π½ΠΈΠΆΠ΅.
β‘ ΠΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΈ ΡΠ°Π·Π½ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ Π² ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ X ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Y ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΄Π»Ρ ΡΠ·Π»Π° Z Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° D ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ I, ΡΠΎ Π²ΠΎ Π²ΡΠΎΡΠ½ΠΈΠΊ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ X ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Y Ρ ΡΠ΅ΠΌ ΠΆΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ D ΠΌΠΎΠΆΠ΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ·Π»Π° Z ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΉ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ I ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ.
β‘ Π€ΠΎΡΠΌΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ generate-id.
β‘ ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΡΠΎ Π΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² Π±Π»ΠΎΠΊΠ΅ DTD ΠΊΠ°ΠΊ ID.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ²Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π² Π²ΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅, ΡΡΠ½ΠΊΡΠΈΡ generate-id ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ Π·Π°Π΄Π°ΡΠΈ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ Π² Π³Π»Π°Π²Π΅ 11.
ΠΡΠΈΠΌΠ΅ΡΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π² Π½Π°ΡΠΈΡ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ°: ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ item Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ id.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠΈΡΡΠΈΠ½Π³ 8.70. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>