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

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

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

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° (рис. 3.8) Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

<Π° xmlns="urn:a"><b:b xmlns:b="urn:b"/></a>

Рис. 3.8. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с ΡƒΠ·Π»Π°ΠΌΠΈ пространств ΠΈΠΌΠ΅Π½

Π£Π·Π»Ρ‹ инструкций ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

КаТдой инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ соотвСтствуСт свой ΡƒΠ·Π΅Π». Π’ Π΄Π΅Ρ€Π΅Π²ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΡƒΠ·Π»Ρ‹ инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (DTD). ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ дСкларация XML Π½Π΅ являСтся инструкциСй ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Π΅ΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡƒΠ·Π΅Π» Π² Π΄Π΅Ρ€Π΅Π²Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ являСтся имя Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ прилоТСния инструкции. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ всСгда Π½ΡƒΠ»Π΅Π²ΠΎΠ΅.

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ являСтся Π΅Π΅ содСрТаниС β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, которая начинаСтся послС ΠΈΠΌΠ΅Π½ΠΈ прилоТСния ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π° Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈ заканчиваСтся ΠΏΠ΅Ρ€Π΅Π΄ символами "?>", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ. Напомним, Ρ‡Ρ‚ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ тСкстовый ΡƒΠ·Π΅Π».

Π£Π·Π΅Π» инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ помСчаСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ прилоТСния, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Π² символы "<?" ΠΈ "?>". Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ части изобраТСния ΡƒΠ·Π»Π° пространства ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ содСрТимоС инструкции.

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

Π£Π·Π΅Π» инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ <?xsql quit?> ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (рис. 3.9):

Рис. 3.9. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

Π£Π·Π΅Π» коммСнтария

Π£Π·Π΅Π» коммСнтария соотвСтствуСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (DTD). Π£Π·Π»Ρ‹ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½; ΠΈΡ… строковым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся тСкст коммСнтария β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов послС "<!--" ΠΈ Π΄ΠΎ "-->". Π’ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠ·Π»Ρ‹ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒΡΡ символами "<!-- -->". Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΏΡ€ΠΈ нСобходимости Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ тСкст коммСнтария.

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

Π£Π·Π΅Π» коммСнтария <!-- To do... --> ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (рис. 3.10):

Рис. 3.10. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° коммСнтария

Бводная Ρ‚Π°Π±Π»ΠΈΡ†Π° характСристик ΡƒΠ·Π»ΠΎΠ²

Для удобства использования ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ свСсти Π² ΠΎΠ΄Π½Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ (Ρ‚Π°Π±Π». 3.1) Ρ‚Π°ΠΊΠΈΠ΅ характСристики ΡƒΠ·Π»ΠΎΠ², ΠΊΠ°ΠΊ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, локальная Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΈ, пространство ΠΈΠΌΠ΅Π½ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.


Π’Π°Π±Π»ΠΈΡ†Π° 3.1. Π₯арактСристики Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΡƒΠ·Π»ΠΎΠ²

Π’ΠΈΠΏ ΡƒΠ·Π»Π° Π₯арактСристики Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ имя Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΡƒΠ·Π»Ρ‹ Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΈ ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ тСкстовых ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² НСт Π£Π·Π»Ρ‹ элСмСнтов, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², инструкций ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ НСт Π£Π·Π΅Π» элСмСнта ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ тСкстовых ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² Имя элСмСнта ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ элСмСнта Π£Π·Π»Ρ‹ элСмСнтов, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², инструкций ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, тСкстовыС ΡƒΠ·Π»Ρ‹ ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» ΠΈΠ»ΠΈ ΡƒΠ·Π΅Π» элСмСнта Π£Π·Π΅Π» Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° НСт Π£Π·Π΅Π» элСмСнта ВСкстовый ΡƒΠ·Π΅Π» Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ НСт НСт Π£Π·Π΅Π» элСмСнта Π£Π·Π΅Π» пространства ΠΈΠΌΠ΅Π½ URI пространства ΠΈΠΌΠ΅Π½ ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ пространства ΠΈΠΌΠ΅Π½ НулСвоС НСт Π£Π·Π΅Π» элСмСнта Π£Π·Π΅Π» инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ инструкции Имя Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ прилоТСния НулСвоС НСт ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» ΠΈΠ»ΠΈ ΡƒΠ·Π΅Π» элСмСнта Π£Π·Π΅Π» коммСнтария ВСкст коммСнтария НСт НСт ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» ΠΈΠ»ΠΈ ΡƒΠ·Π΅Π» элСмСнта

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

МодСль XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, описанная Π²Ρ‹ΡˆΠ΅, являСтся Π²ΠΏΠΎΠ»Π½Π΅ достаточной для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ структурой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ содСрТит. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, эта модСль ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ограничСния, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:

β–‘ НС учитываСтся информация, содСрТащаяся Π² Π±Π»ΠΎΠΊΠ΅ DTD. Как слСдствиС, Π² XSLT Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ опрСдСлСниями сущностСй, элСмСнтов, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

β–‘ НС ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ синтаксичСскиС особСнности входящСго XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. НапримСр: использовались Π»ΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ; Π±Ρ‹Π»Π° Π»ΠΈ опрСдСлСнная строка Π·Π°Π΄Π°Π½Π° ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ просто тСкстом, Π±Ρ‹Π» Π»ΠΈ тСкст Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² сСкции CDATA ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

β–‘ Если Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ элСмСнта Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² DTD со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ нСльзя Ρ‚ΠΎΡ‡Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, присутствовал Π»ΠΈ ΠΎΠ½ физичСски Π²ΠΎ входящСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

β–‘ НС учитываСтся, Π±Ρ‹Π» Π»ΠΈ пустой элСмСнт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ <b></b> ΠΈΠ»ΠΈ <b/>.

Одним словом, прСдлоТСнная Π²Ρ‹ΡˆΠ΅ модСль Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая Π½Π΅ Π²Π°ΠΆΠ½Π° с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния структуры Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΠΎΠΌΠΈΠΌΠΎ структуры Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ΅Π½ ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ вмСсто &#160; Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ &nbsp;). К соТалСнию, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ XSLT для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ вслСдствиС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ самой ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

Π£Π·Π»Ρ‹ Π΄Π΅Ρ€Π΅Π²Π° XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° находятся Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся порядком просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Π°Π½Π³Π». document order). Π­Ρ‚ΠΎΡ‚ порядок Π²Π°ΠΆΠ΅Π½ для вычислСния XPath-вырэТСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ мноТСствами ΡƒΠ·Π»ΠΎΠ². НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эти мноТСства Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ порядка, ΠΏΡ€ΠΈ вычислСнии Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΡƒΠ·Π»Ρ‹ Π² Π½ΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² прямом ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ оси Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° β€” это порядок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт появлСнию Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа тСкстовой записи ΡƒΠ·Π»Π°. НапримСр, для элСмСнтов это Π±ΡƒΠ΄Π΅Ρ‚ порядок появлСния Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π³ΠΎΠ².

Π‘ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎ порядок просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ:

β–‘ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ Π² порядкС просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°;

β–‘ ΡƒΠ·Π»Ρ‹ элСмСнтов ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‚ своим Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΡƒΠ·Π»Π°ΠΌ, ΡƒΠ·Π»Π°ΠΌ пространств ΠΈΠΌΠ΅Π½ ΠΈ ΡƒΠ·Π»Π°ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²;

β–‘ ΡƒΠ·Π»Ρ‹ пространств ΠΈΠΌΠ΅Π½ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΠ·Π»Π°ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²;

β–‘ ΡƒΠ·Π»Ρ‹ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΡƒΠ·Π»Π°ΠΌ своСго элСмСнта;

β–‘ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΡ… появлСния Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅.

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ порядком просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° называСтся порядок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² точности ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ порядку просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ порядок просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ прямым порядком ΠΈΠ»ΠΈ порядком Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

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

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ схСму Π΄Π΅Ρ€Π΅Π²Π° ΠΈ выясним порядок просмотра

ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

<!-- Start -->

<?Π°Ρ€Ρ€ open?>

<Π° level="0" xmlns:b="urn:b" xmlns="urn:a">

 alpha

 <b:bravo/><!-- To do... --><charlie/>

 delta

</a>

<?app close?>

Π”Π΅Ρ€Π΅Π²ΠΎ этого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 3.11. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ просмотра Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

β–‘ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π»;

β–‘ ΡƒΠ·Π΅Π» коммСнтария <!-- start -->;

β–‘ ΡƒΠ·Π΅Π» инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ <?app open?>;

β–‘ ΡƒΠ·Π΅Π» элСмСнта a;

β–‘ ΡƒΠ·Π΅Π» пространства ΠΈΠΌΠ΅Π½ "urn:Π°";

β–‘ ΡƒΠ·Π΅Π» пространства ΠΈΠΌΠ΅Π½ "urn:b";

β–‘ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ level;

β–‘ Ρ‚Скстовый ΡƒΠ·Π΅Π» "alpha";

β–‘ ΡƒΠ·Π΅Π» элСмСнта b:bravo;

β–‘ ΡƒΠ·Π΅Π» пространства ΠΈΠΌΠ΅Π½ "urn:Π°";

β–‘ ΡƒΠ·Π΅Π» пространства ΠΈΠΌΠ΅Π½ "urn:b";

β–‘ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ с тСкстом "To do ...";

β–‘ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ charlie;

β–‘ ΡƒΠ·Π΅Π» пространства ΠΈΠΌΠ΅Π½ "urn:Π°";

β–‘ ΡƒΠ·Π΅Π» пространства ΠΈΠΌΠ΅Π½ "urn:b";

β–‘ Ρ‚Скстовый ΡƒΠ·Π΅Π» "delta";

β–‘ ΡƒΠ·Π΅Π» инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ <?Π°Ρ€Ρ€ close?>.

Рис. 3.11. Π‘Ρ…Π΅ΠΌΠ° Π΄Π΅Ρ€Π΅Π²Π° XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

БоотвСтствСнно, ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ порядок просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с инструкции ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ <?app close?> ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ элСмСнтом.

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ