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

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

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

                  SDDecl? S? '?>'

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ VersionInfo опрСдСляСт синтаксис псСвдоатрибута version:

[24] VersionInfo ::= S? 'version' Eq

                     ("'" VersionNum "'"

                     | "" VersionNum "")

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ вСрсии Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· латинских Π±ΡƒΠΊΠ² ΠΈ Ρ†ΠΈΡ„Ρ€, Π° Ρ‚Π°ΠΊΠΆΠ΅ символов "_", ".", ":" ΠΈ "-":

[26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠ΅ΠΉ EncodingDecl, которая синтаксичСски ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° VersionInfo:

[80] EncodingDecl ::= S? 'encoding' Eq

                      ("'" EncName "'"

                      | '"' EncName '"')

Имя ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, EncName, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· латинских Π±ΡƒΠΊΠ², Ρ†ΠΈΡ„Ρ€ ΠΈ символов ".", "_" ΠΈ "-", ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ символом названия ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ всСгда Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π±ΡƒΠΊΠ²Π°:

[81] EncName [A-Za-z] ([A-Za-z0-9.-] | '-')*

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ извСстно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ этот Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибки ΠΈ нСсоотвСтствия. Π’ спСцификации рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ названия ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π½Ρ‹Π΅ IANA (Internet Assigned Numbers Authority β€” ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚ присвоСнных ΠΊΠΎΠ΄ΠΎΠ² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚). ΠšΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² русском языкС, Π² списках IANA присваиваСтся ΠΎΠΊΠΎΠ»ΠΎ дСсятка ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π‘Π°ΠΌΡ‹ΠΌΠΈ распространСнными ΠΈΠ· Π½ΠΈΡ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

β–‘ Windows-1251;

β–‘ KOI8-R;

β–‘ Cp866;

β–‘ ISO-8859-5.

ВСхничСская рСкомСндация XML ΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ. Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° имя использованной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π΅ являСтся стандартным, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с прСфиксом "x-", Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

<?xml version="1.0" encoding="x-BK-CYR"?>

ΠŸΡΠ΅Π²Π΄ΠΎΠ°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ standalone соотвСтствуСт EBNF-ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ SDDecl:

[32] SDDecl ::= S 'standalone' Eq

                (("'" ('yes' | 'no') "'")

                | ( '"' ('yes' | 'no') '"' ) )

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ просто: псСвдоатрибут standalone ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ yes ΠΈΠ»ΠΈ no, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

Π‘Π΅ΠΊΡ†ΠΈΠΈ Π‘DATA

Π‘Π΅ΠΊΡ†ΠΈΠΈ CDATA Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ части Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСкст Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°. CDATA ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ "character data" β€” ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π‘Π΅ΠΊΡ†ΠΈΠΈ CDATA Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<![CDATA[содСрТимоС]]>

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ синтаксис Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² XML ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, часто Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ само содСрТимоС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ воспринято ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°. Π’ Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° этого ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, самым простым Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΡŒ сСкции CDATA.

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

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅

<slogan>ΠŸΠΎΠΊΡƒΠΏΠ°ΠΉΡ‚Π΅ Π½Π°ΡˆΠΈΡ… слонов!</slogan>

Π±ΡƒΠ΄Π΅Ρ‚ воспринят ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, достаточно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ

<![Π‘DАВА[<slogan>ΠŸΠΎΠΊΡƒΠΏΠ°ΠΉΡ‚Π΅ Π½Π°ΡˆΠΈΡ… слонов!</slogan>]]>

Вакая конструкция ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ воспринята ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использованиС символов "<" ΠΈ "&":

<![CDATA[ if ( а < b && b < с ) {...} ]]>

Π‘Π΅ΠΊΡ†ΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ довольно простыми ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ:

[18] CDSect  ::= CDStart CData CDEnd

[19] CDStart ::= '<![CDATA['

[20] CData   ::= Char* - (Char* ']]>' Char*))

[21] CDEnd   ::= ']]>'

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ сСкции ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ CData, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π»ΡŽΠ±Ρ‹Ρ… символов, Π² Ρ‚ΠΎΠΌ числС "<" ΠΈ "&", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°. ЕдинствСнноС, Ρ‡Π΅Π³ΠΎ сСкции CDATA Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ "]]>", которая Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (comments)

XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<!-- тСкст коммСнтария -->

ВСкст коммСнтария ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π»ΡŽΠ±Ρ‹Ρ… символов, ΠΊΡ€ΠΎΠΌΠ΅ Π΄Π²ΡƒΡ… минусов

подряд ("--"). ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ символом "-" .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ коммСнтария:

...

<!-- product title="Π‘Π»ΠΎΠ½">

 ΠŸΠΎΠΊΡƒΠΏΠ°ΠΉΡ‚Π΅ Π½Π°ΡˆΠΈΡ… слонов!

</product-->

...

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ коммСнтария называСтся Π² XML Comment ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

[15] Comment ::= '<!--' ((Char - '-') | ('-' (Char- '-')))* '-->'

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ((Char - '-') | ('-' (Char - '-')))* ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ содСрТимоС коммСнтария Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Π·Π½Π°ΠΊ "-" ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π²Π° Ρ‚Π°ΠΊΠΈΡ… Π·Π½Π°ΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½

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

Π—Π° врСмя сущСствования XML Π±Ρ‹Π»Π° создана Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° для большого числа Π·Π°Π΄Π°Ρ‡. На Ρ‚Π°ΠΊΠΈΡ… Web-сайтах, ΠΊΠ°ΠΊ http://www.xml.org, http://www.schema.net ΠΈ http://www.ebxml.org ΠΌΠΎΠΆΠ½ΠΎ с большой Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π°ΠΉΡ‚ΠΈ опрСдСлСния структуры Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ количСства ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… областСй. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΡƒΠΆΠ΅ созданныС схСмы ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ этап ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ модСлирования Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Часто случаСтся, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ логичСскиС схСмы Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π° элСмСнтов Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… смыслах. Π­Ρ‚ΠΎ Π½Π΅ являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ссли Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° схСма. Но ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… схСм β€” Π±ΡƒΠ΄Π΅Ρ‚ попросту Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ элСмСнт относится ΠΊ ΠΊΠ°ΠΊΠΎΠΉ схСмС, ΠΈ, Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΊΠ°ΠΊΠΈΠ΅ схСмы Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² XML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ пространства ΠΈΠΌΠ΅Π½ (Π°Π½Π³Π». namespaces).

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ схСмы Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… ставится Π² соотвСтствиС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ рСсурса (URI). Π”Π²Π΅ схСмы Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ тоТдСствСнными Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΡ… ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ, поэтому Π½ΡƒΠΆΠ½ΠΎ остороТно Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ URI для создаваСмой схСмы Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ΠžΡ‡Π΅Π½ΡŒ часто Π² качСствС URI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ URL Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Web-сайтов. Π­Ρ‚ΠΎ совсСм Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ адрСсу Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, просто Ρ‚Π°ΠΊΠΎΠΉ способ практичСски Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” вряд Π»ΠΈ ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ адрСс Ρ‡ΡƒΠΆΠΎΠ³ΠΎ сСрвСра Π² качСствС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° своСй схСмы.

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

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ языка XSLT, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ посвящСна эта ΠΊΠ½ΠΈΠ³Π°, ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

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

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ схСмС ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ элСмСнт Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ прСфиксов. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡΡ‹ пространств ΠΈΠΌΠ΅Π½ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ xmlns, ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

<прСфикс:элСмСнт xmlns:прСфикс="URI">

 ...

</прСфикс:элСмСнт>

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

Π’ XSLT Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прСфикс xsl, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ задаСтся, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<xsl:stylesheet

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

 version="1.0">

 ...

</xsl:stylesheet>

ΠŸΡ€ΠΈ этом Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ прСфикс. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ:

<www:stylesheet

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

 version="1.0">

 ...

</www:stylesheet>

ΠŸΡ€Π΅Ρ„ΠΈΠΊΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ элСмСнтС, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π΅Π³ΠΎ собствСнном ΠΈΠΌΠ΅Π½ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΈΠΌΠ΅Π½Π°Ρ… всСх элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π½Π΅Π³ΠΎ.

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

<!-- Π—Π΄Π΅ΡΡŒ Π΅Ρ‰Π΅ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСфикс aaa -->

<aaa:element xmlns:aaa="http://www.aaa.com">

 <!-- Π—Π΄Π΅ΡΡŒ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСфикс aaa -->

 <Π°Π°Π°:anotherelement/>

 ...

</aaa:element>

<!-- А здСсь снова нСльзя -->

ΠŸΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ элСмСнтов Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ схСмС опрСдСляСтся Π½Π΅ прСфиксами, Π° Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ поставлСны этим прСфиксам Π² соотвСтствиС. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π° элСмСнта с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ прСфиксами, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌΠΈ ΠΎΠ΄Π½ΠΎΠΉ схСмС.

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

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅

<xslt:stylesheet

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

 version="1.0">

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

 ...

</xslt:stylesheet>

элСмСнты stylesheet ΠΈ template ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прСфиксы, Π½ΠΎ, нСсмотря Π½Π° это, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ схСмС.

Π’ ΠΎΠ΄Π½ΠΎΠΌ элСмСнтС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ нСсколько прСфиксов пространств ΠΈΠΌΠ΅Π½. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈ использовании мноТСства прСфиксов, всС ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ элСмСнтС, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ всСму Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ.

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

<aaa:element