Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

БрСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ web-страниц

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ВыраТСния XPath часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… XML. ΠžΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌΠ°Ρ Π² ΡΡ‚ΠΎΠΉ Π³Π»Π°Π²Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° примСряСтся ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° послС выполнСния Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, описанной Π² XML 1.0. Π’Π°ΠΊ, Ссли, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ <, Ρ‚ΠΎ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π΅Π³ΠΎ нСльзя Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ просто ΠΊΠ°ΠΊ <. ВмСсто этого, согласно ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ XML 1.0, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠ°ΡΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, записав ΠΊΠ°ΠΊ <. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

БрСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ web-страниц (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ агСнтство ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ ГосударствСнноС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ срСднСго ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ образования Π₯акасский политСхничСский ΠΊΠΎΠ»Π»Π΅Π΄ΠΆ

ВнСаудиторная Ρ€Π°Π±ΠΎΡ‚Π°

ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅: «Π Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ систСмы ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ»

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»: студСнт Π³Ρ€. АИБ-41

Π£Ρ€Π²Π°Π½Ρ†Π΅Π² А.Π’.

Абакан, 2009

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Java-Π°ΠΏΠΏΠ»Π΅Ρ‚Π°. БрСдства создания Java-Π°ΠΏΠΏΠ»Π΅Ρ‚ΠΎΠ²

АпплСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π² ΡΠ΅Π±Π΅ элСмСнты слоТного графичСского ΠΎΠΊΠ½Π° с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ использования ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ями Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅Ρ‚ями. Π’ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΠΈ, ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π½Ρ‹ΠΌ графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Microsoft Windows ΠΈΠ»ΠΈ X11, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности нСзависимо ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ.

АпплСты ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для написания ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€Π°Ρ… Web, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΡ… использованиС языка Java, — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Netscape Navigator 2.0. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свои собствСнныС Π°ΠΏΠΏΠ»Π΅Ρ‚Ρ‹, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ класс Applet ΠΈ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ класс Π½Π° Web-страницС. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π°ΠΏΠΏΠ»Π΅Ρ‚ «Hello World», ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π°ΠΏΠΏΠ»Π΅Ρ‚Ρƒ, «ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π½Π° Java» .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. АпплСт «Hello World» .

import java.applet.*;

import java.awt.*;

public class HelloWorldApplet extends Applet {

public void init () {

resize (250,250);

}

public void paint (Graphics g) {

g.drawString («Hello world!», 25,25);

}

}

АпплСт «Hello World» Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ класс Applet, Π° ΡΡ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, доступныС классу Applet, доступны ΠΈ Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ этого класса. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, взяв Π΄Π²Π° ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² — init ΠΈ paint, — ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°Π»ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. Рассмотрим HTML-ΠΊΠΎΠ΄ для Web-страницы, которая содСрТит Π°ΠΏΠΏΠ»Π΅Ρ‚ «Hello World» .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. Web-страница «Hello World» .

WIDTH=250 HEIGHT=250>

Π‘Ρ‚Π°Π΄ΠΈΠΈ выполнСния Π°ΠΏΠΏΠ»Π΅Ρ‚Π° Когда Java-совмСстимый Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€ Web Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ класс Applet, сначала ΠΎΠ½ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ для Π°ΠΏΠΏΠ»Π΅Ρ‚Π° ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π—Π°Ρ‚Π΅ΠΌ выполняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ init. (Π’ΠΎΠΎΠ±Ρ‰Π΅, программисты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ init, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ рСсурсы ΠΈΠ· ΡΠ΅Ρ‚ΠΈ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.) ПослС этого Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ start. Если Ρ‡Π°ΡΡ‚ΡŒ Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€Π°, содСрТащСго Π°ΠΏΠΏΠ»Π΅Ρ‚, Π²ΠΈΠ΄ΠΈΠΌΠ° (Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈ ΡΠ»ΡƒΡ‡Π°Π΅Ρ‚ся, ΠΊΠΎΠ³Π΄Π° Π°ΠΏΠΏΠ»Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ), вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ paint. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ со ΡΡ‚Ρ€Π°Π½ΠΈΡ†Ρ‹, содСрТащСй Π°ΠΏΠΏΠ»Π΅Ρ‚, Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ stop. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ возвращаСтся Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Ρƒ с Π°ΠΏΠΏΠ»Π΅Ρ‚ΠΎΠΌ, ΠΌΠ΅Ρ‚ΠΎΠ΄ start, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ paint, вызываСтся снова. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°ΠΏΠΏΠ»Π΅Ρ‚Π° Π² ΡΠ»ΡƒΡ‡Π°Π΅, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ‚ страницу ΠΈ Π·Π°Ρ‚Π΅ΠΌ возвращаСтся Π½Π° Π½Π΅Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. АпплСт, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠΉ обращСния ΠΊ ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅.

import java.applet.*;

import java.awt.*;

public class Count extends Applet {

int InitCount=0;

int StartCount=0;

int StopCount=0;

int PaintCount=0;

public void init () {

resize (250,75);

InitCount = InitCount + 1;}

public void start () {

StartCount = StartCount + 1;}

public void stop () {

StopCount = StopCount + 1;}

public void paint (Graphics g) {

PaintCount++;

String Output = new String (

" Inits: «+InitCount+

" Starts: «+StartCount+

" Stops: «+StopCount+

" Paints: «+PaintCount);

g.drawString (Output, 25,25); } }

Одна ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ популярности World Wide Web — Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊ ΡΠ²ΠΎΠΈΠΌ Web-страницам изобраТСния ΠΈ Π·Π²ΡƒΠΊ, просто Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π² ΠΊΠΎΠ΄ страницы ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ графичСских ΠΈ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ хотят ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ИспользованиС языка Java Π΄Π°Π΅Ρ‚ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ простой ΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ способ. HTML — язык описания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°; Java — Π΄ΠΎΠ±Ρ€ΠΎΡ‚Π½Ρ‹ΠΉ язык программирования. Π’Π°ΡˆΠΈ Java-Π°ΠΏΠΏΠ»Π΅Ρ‚Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния ΠΊΠ°ΠΊ графичСскиС ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ спрайты Π² ΠΈΠ³Ρ€Π΅ Π°Ρ€ΠΊΠ°Π΄Π½ΠΎΠ³ΠΎ стиля. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Java-Π°ΠΏΠΏΠ»Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΈΠ· ΡΠ΅Ρ‚ΠΈ Ρ„Π°ΠΉΠ» с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π·Π²ΡƒΠΊΠΎΠΌ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΡ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. АпплСт для Web.

import java.applet.*;

import java.awt.*;

import java.net.*;

public class WebApplet extends Applet {

private Image myImage;

private AudioClip mySound;

private URL ImageURL;

private URL SoundURL;

public void init () {

resize (250,250);

try {

// привязываСм URL ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ

ImageURL = new

URL («http://www.vmedia.com/vvc/onlcomp/java/chapter5/images/sample.gif»);

SoundURL = new URL («http://www.vmedia.com/vvc/onlcomp/

java/chapter5/sounds/sample.au");}

// слСдим Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ URL

catch (MalformedURLException e) {}

// Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

myImage = getImage (ImageURL);

// Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π·Π²ΡƒΠΊ

mySound = getAudioClip (SoundURL);}

public void start () {

// запускаСм ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π·Π²ΡƒΠΊΠ°

mySound.loop ();}

public void stop () {

// останавливаСм ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π·Π²ΡƒΠΊΠ°

mySound.stop ();}

public void paint (Graphics g) {

// Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

g.drawImage (myImage, 0,0,this);

}

}

ИспользованиС ActiveX ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° web-страницах ВСхнология ActiveX базируСтся Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Microsoft COM (Component Object Model — модСль ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сСрвисы Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. COM прСдставляСт собой ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ распрСдСлСнных вычислСний, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΡΡ Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π½Π° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΈ возмоТности прилоТСниям ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ своСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ сСрвисами). ВСхнология COM позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния, Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π½ΠΎ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ… классов, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ тСкстС ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π°Π΄Ρ€Π΅ΡΠ½ΠΎΠΌ пространствС ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса, эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² Π°Π΄Ρ€Π΅ΡΠ½Ρ‹Ρ… пространствах Ρ€Π°Π·Π½Ρ‹Ρ… процСссов ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ….

Π’ Π½Π°ΡΡ‚оящСС врСмя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° спСцификаций COM, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Microsoft ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… большоС количСство интСрфСйсов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

Β· OLE-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ — составныС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, содСрТащиС Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ связанныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π­Ρ‚Π° спСцификация описываСт ΠΏΡ€Π°Π²ΠΈΠ»Π° создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² для Ρ‚Π°ΠΊΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с «Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ ΠΌΠ΅ΡΡ‚Ρƒ». ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ OLEContainer Delphi ΠΈ C++Builder создан с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ этой спСцификации (этой Ρ‚Π΅ΠΌΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ посвящСна ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… статСй Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°).

Β· OLE Automation. Π­Ρ‚Π° спСцификация описываСт, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сСрвСр ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптов ΠΈΠ»ΠΈ макросов. Π­Ρ‚Π° спСцификация Ρ‚Π°ΠΊΠΆΠ΅ поддСрТиваСтся Delphi ΠΈ C++Builder (ΠΎΠ± ΡΡ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°).

Β· Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ элСмСнты ActiveX, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Automation (ΠΎ Π½ΠΈΡ…-Ρ‚ΠΎ ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅).

ИспользованиС COM, ΠΈ, Π² Ρ‡Π°ΡΡ‚ности, Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ActiveX, позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, собираСмых ΠΈΠ· Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² — элСмСнтов управлСния ActiveX, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΎΡ‚ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ C++Builder ΠΈΠ»ΠΈ Delphi Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VCL-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ такая «ΡΠ±ΠΎΡ€ΠΊΠ°» Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написаны ΠΊΠ°ΠΊ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ — лишь Π±Ρ‹ срСдство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ называСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ).

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния ActiveX ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, содСрТащиС исполняСмый ΠΊΠΎΠ΄. Как Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… прилоТСниях ΠΊΠ°ΠΊ встроСнныС элСмСнты управлСния, поэтому ΠΎΠ½ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ свойствами, событиями ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, доступными посрСдством Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты Π² ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния. Помимо этого, элСмСнты управлСния ActiveX Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ web-Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€ΠΎΠ² с Ρ†Π΅Π»ΡŒΡŽ придания ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для отобраТСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹ΠΌ Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€ΠΎΠΌ.

Как любой COM-сСрвСр, элСмСнт управлСния ActiveX ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ GUID ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ зарСгистрирован Π² Ρ€Π΅Π΅ΡΡ‚Ρ€Π΅. На ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ этой записи ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ осущСствлСн поиск мСстополоТСния Ρ„Π°ΠΉΠ»Π° с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ *.ocx, содСрТащСго Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, создав элСмСнт управлСния ActiveX, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅ΠΉ Вас Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ этот элСмСнт Π² ΡΠ²ΠΎΠΈ прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, написанныС Π½Π° Visual Basic, PowerBuilder, Delphi, C++Builder ΠΈ Π΄Ρ€.), ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π² web-Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€Π΅ Π² ΡΠΎΡΡ‚Π°Π²Π΅ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ с Π’Π°ΡˆΠ΅Π³ΠΎ web-сСрвСра HTML-страницы, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΡΠΎΡΡ‚Π°Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² MS Office, ΠΏΡ€ΠΈ этом Π’Ρ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ исходный тСкст этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

БпСцификация ActiveX прСдставляСт собой Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ описаниС стандартных интСрфСйсов), с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты управлСния. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ тСкущая вСрсия этой спСцификации ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° web-Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ элСмСнтов ActiveX с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… web-сСрвСров с ΠΈΡ… Π°Π²Ρ‚оматичСской рСгистрациСй.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ActiveX:

web страница Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ WYSIWYG срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ web-страниц Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Ρ‚ΠΈΠΏΠ° WYSIWYG Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ страницы, послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° автоматичСски ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠΎΠ΄ ΠΊ ΡΡ‚ΠΎΠΉ страницС, Π²ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Microsoft FrontPage

Microsoft FrontPage, входящий Π² ΠΏΠ°ΠΊΠ΅Ρ‚ Microsoft Office, являСтся классичСским WYSIWYG-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ, присутствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΊΠΎΠ΄Π°.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΈ Microsoft Word, Ρ‡Ρ‚ΠΎ нисколько Π½Π΅ ΡƒΠ΄ΠΈΠ²Π»ΡΠ΅Ρ‚ — унификация внСшнСго Π²ΠΈΠ΄Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ быстрСС ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ основныС возмоТности FrontPage.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ имССтся Ρ‚Ρ€ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ: Normal, HTML ΠΈ Preview. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Normal Π²Π΅Π±-страница прСдставляСт собой ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ» с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ рСдактирования всСх элСмСнтов — ΠΎΡ‚ Ρ‚Скста Π΄ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ.

Macromedia Dreamweaver MX 2004

Macromedia Dreamweaver MX 2004 позволяСт ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ ΠΎΡ‚ ΡΡ‚ΠΎΠΉ HTML-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. И Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, возмоТности Macromedia Dreamweaver MX 2004 Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‚. ПослС установки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ просят Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ внСшний Π²ΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отличаСтся Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ Π²Π΅Π±-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ «Code» интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ подстроСн ΠΏΠΎΠ΄ Π½ΡƒΠΆΠ΄Ρ‹ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, Π° ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ «Design» — соотвСтствСнно, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, всСгда имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ доступСн Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ — рабочая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ дСлится Π½Π° Π΄Π²Π΅ части.

Macromedia HomeSite

Macromedia HomeSite, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… распространСнных срСдств рСдактирования HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² срСди ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ страницы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ВмСстС с Ρ‚Π΅ΠΌ, HomeSite позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ сам процСсс создания ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

ВСхнология COM. ВозмоТности Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

COM (Π°Π½Π³Π». Component Object Model — ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ МодСль ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²; произносится ΠΊΠ°ΠΊ [ΠΊΠΎΠΌ]) — это тСхнологичСский стандарт ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… распрСдСлённых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ВСхнология Π²ΠΎΠΏΠ»ΠΎΡ‰Π°Π΅Ρ‚ Π² ΡΠ΅Π±Π΅ ΠΈΠ΄Π΅ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. ВСхнология COM Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎ-нСзависимой, Π½ΠΎ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΠ»Π°ΡΡŒ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах сСмСйства Windows. Π’ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… вСрсиях Windows COM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎ. На ΠΎΡΠ½ΠΎΠ²Π΅ COM Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΎ создано мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… стандартов: OLE Automation, ActiveX, DCOM, COM+.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ понятиСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ тСхнология COM, являСтся COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, построСнныС Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ COM, фактичСски Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ся Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π°Π±ΠΎΡ€ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (GUID) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ взаимодСйствуСт с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· COM-интСрфСйсы — Π½Π°Π±ΠΎΡ€Ρ‹ абстрактных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ стандартный интСрфСйс «IUnknown», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ.

Windows API прСдоставляСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC ΠΈ, особСнно, ATL/WTL ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ATL ΠΎΡ‚ ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ Π΄ΠΎ ΡΠΈΡ… ΠΏΠΎΡ€ остаётся самым популярным срСдством создания COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Но, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ, COM-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° остаётся Π΅Ρ‰Ρ‘ довольно слоТным Π΄Π΅Π»ΠΎΠΌ, программистам приходится Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с COM (особСнно это Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° C++). ВпослСдствии (Π² Ρ‚Схнологиях COM+ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ.NET) ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»Π°ΡΡŒ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π’ ΡΠΎΡΡ‚Π°Π²Π΅ Windows 2000 Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° тСхнология COM+, которая Ρ€Π°ΡΡˆΠΈΡ€ΡΠ»Π° возмоТности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², прСдоставляя ΠΈΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ услуги, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²;

доступ ΠΊ ΠΊΠΎΠ½Ρ‚Сксту, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполняСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ASP, ΠΌΠΎΠ³ΡƒΡ‚ с ΡΡ‚ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Ρ‚ΠΎΠΉ страницы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ).

COM+ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ прилоТСния COM+, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ администрированиС ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ — основныС направлСния ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ COM+. НСкоторыС ΠΈΠ΄Π΅ΠΈ, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² ΠΎΡΠ½ΠΎΠ²Ρƒ COM+, Π±Ρ‹Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Microsoft.NET.

Π’ 2002 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Microsoft.NET, которая Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠΉ дСнь объявлСна ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠΉ основой для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ Windows. По ΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π².NET Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ COM ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.NET, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. По ΡΠ»ΠΎΠ²Π°ΠΌ прСдставитСлСй ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚, COM (Ρ‚ΠΎΡ‡Π½Π΅Π΅, COM+) ΠΈ.NET ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΠΈ тСхнологиями.

ВСхнология CORBA. ВозмоТности Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

CORBA — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ развитая Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠΉ дСнь ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ тСхнология распрСдСлСнного программирования (http://www.corba.org/). CORBA ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π’Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ распрСдСлСнныС Π² ΠΏΡ€ΠΎΡΡ‚ранствС Π‘Π΅Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘ ΠΈ Java), Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Linux ΠΈ Windows NT), просто опрСдСляя интСрфСйсы Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ вызывая ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоят Π’Π°ΡˆΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ CORBA разрабатываСтся ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΠΌ Π½Π° ΠΏΠ»Π°Π½Π΅Ρ‚Π΅ консорциумом OMG ΠΈ Π΅ΡΡ‚ΡŒ достаточно ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ стандарта для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ ΡΠ·Ρ‹ΠΊΠΎΠ² (Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ исходными тСкстами (http://www.opensource.org/), Π½Π°ΠΏΡ€. http://www.openorb.org/ (Java), ORBit (C)). CORBA ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ основой для Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ программирования.

CORBA Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ простой язык описания интСрфСйсов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — IDL (Interface Definition Language), Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒ описания интСрфСйсов ΠΎΡ‚ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ±Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² CORBA ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ прилоТСния. Π’Π°ΠΊΠΆΠ΅ слСдуСт ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ любой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. МоТно Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², располоТСнных Π² ΡΡ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (Π½Π°ΠΏΡ€. Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ (thread)), Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° ΡΡ‚ΠΎΠΌ ΠΆΠ΅ хостС Π² Π‘Π΅Ρ‚ΠΈ, Π½Π° Π»ΡŽΠ±ΠΎΠΌ хостС ΠΈΠ»ΠΈ устройствС Π² Π‘Π΅Ρ‚ΠΈ (Π½Π°ΠΏΡ€. Π² ΡΠΎΡ‚ΠΎΠ²ΠΎΠΌ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅). Π’ΠΎΠΎΠ±Ρ‰Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ описаниС Π΅Π³ΠΎ Π½Π° IDL ΠΈ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ссылку Π½Π° Π½Π΅Π³ΠΎ.

ВСхнология CORBA (Common Object Request Broker Architecture), разрабатываСмая OMG (Object Managment Group) с 1990;Π³ΠΎ Π³ΠΎΠ΄Π°, позволяСт Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², находящихся Π² ΡΠ΅Ρ‚ΠΈ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ всС ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° основная структура CORBA 2.0 ORB.

Dynamic Invocation Interface (DII): позволяСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ сСрвСра ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы. IDL Stubs: опрСдСляСт, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹Π·ΠΎΠ² сСрвСра. ORB Interface: ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΊΠ°ΠΊ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊ ΠΈ Π΄Π»Ρ сСрвСра сСрвисы. IDL Skeleton: обСспСчиваСт статичСскиС интСрфСйсы для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Dynamic Skeleton Inerface: ΠΎΠ±Ρ‰ΠΈΠ΅ интСрфСйсы для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², нСзависимо ΠΎΡ‚ ΠΈΡ… Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² IDL Skeleton. Object Adapter: осущСствляСт ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ ORB.

К ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ достоинствам CORBA ΠΌΠΎΠΆΠ½ΠΎ отнСсти ΠΌΠ΅ΠΆΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ ΠΈ ΠΌΠ΅ΠΆΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ. Π₯отя CORBA-сСрвисы ΠΈ ΠΎΡ‚нСсСны ΠΊ Π΄ΠΎΡΡ‚оинствам Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ CORBA, ΠΈΡ… Π² Ρ€Π°Π²Π½ΠΎΠΉ стСпСни ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ отнСсти ΠΈ ΠΊ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠ°ΠΌ CORBA, Π²Π²ΠΈΠ΄Ρƒ практичСски ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ отсутствия ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ, для создания распрСдСлСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² CORBA Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

Β· ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ распрСдСлСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹;

Β· ΠžΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ интСрфСйсы ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² этих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ IDL;

Β· Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹);

Β· ВСстированиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ срСдС;

Β· Π Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎ Π½ΡƒΠΆΠ½Ρ‹ΠΌ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ Π² Π‘Π΅Ρ‚ΠΈ.

ОписаниС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ содСрТания XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ схСм DTD

XML Schema ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ³Π°Ρ‚ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру для XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ ограничСния, присущиС DTD. XML Schema Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ DTD. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ листинга производят ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ сравнСниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ прСдставлСния элСмСнтов. Листинг 1 ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Листинг 2 дСмонстрируСт объявлСниС этих Π΄Π²ΡƒΡ… элСмСнтов Π² ΡΠΈΠ½Ρ‚аксисС DTD, Π° Листинг 3 ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ синтаксис XML Schema. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ синтаксис Π² Π›ΠΈΡΡ‚ΠΈΠ½Π³Π΅ 3 совпадаСт с ΡΠΈΠ½Ρ‚аксисом XML. ΠŸΡ€ΠΈ использовании XML Schema элСмСнт InvoiceNo являСтся ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ, Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ ProductID состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ ΠΎΡ‚ A Π΄ΠΎ Z, сопровоТдаСмой ΡˆΠ΅ΡΡ‚ΡŒΡŽ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ.

Листинг 1: Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° 123 456 789 J123456 Листинг

2: Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ DTD, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ элСмСнты ΠΈΠ· Π›ΠΈΡΡ‚ΠΈΠ½Π³Π° 1

Листинг 3: Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ XML Schema, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ элСмСнты ΠΈΠ· Π›ΠΈΡΡ‚ΠΈΠ½Π³Π°

Листинг 4: БобствСнныС ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ пространства ΠΈΠΌΠ΅Π½

Π’ XML Schema ΠΈΠ· Π›ΠΈΡΡ‚ΠΈΠ½Π³Π° 4 имя targetNamespace прСдставлСно ΠΊΠ°ΠΊ http://www.SampleStore.com/Accountt ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΈΠΌΠ΅Π½Π° InvoiceNo, ProductID, ΠΈ ProductCode. ИмСна schema, element, simpleType, pattern, string, ΠΈ positive-integer ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ пространству ΠΈΠΌΠ΅Π½ http://www.w3.org/1999/XMLSchema, сокращСнному Π΄ΠΎ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ xsd с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ объявлСния xmlns. Π’ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ΅ xsd Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ особСнного; ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любоС имя. Для удобства ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Ρ‹ Π΄Π°Π»Π΅Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ xsd для обращСния ΠΊ ΠΏΡ€ΠΎΡΡ‚ранству ΠΈΠΌΠ΅Π½ http://www.w3.org/1999/XMLSchema ΠΈ ΠΎΠΏΡƒΡΠΊΠ°Π΅ΠΌ характСристику xsd Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΊΠΎΠ΄Π°.

Π’ ΡΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ targetNamespace Ρ‚Π°ΠΊΠΆΠ΅ оказываСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… пространств ΠΈΠΌΠ΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ имя ProductCode использовано ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠΌΠ΅Π½. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ элСмСнты, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ слоТный Ρ‚ΠΈΠΏ Π’ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты. Π’ DTD Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π’ XML Schema вмСсто этого опрСдСляСтся элСмСнт, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, ΠΈ ΡΡ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ объявлСния Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Π‘ΠΌ. TΠ°Π±Π»ΠΈΡ†Ρƒ 1 для простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

Π’Π°Π±Π»ΠΈΡ†Π° 1: Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ слоТных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² DTD ΠΈ XML Schema.

XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

Cool Guy

DTD

XML Schema

Π₯отя ΠΊΠΎΠ΄ XML Π² TΠ°Π±Π»ΠΈΡ†Π΅ 1 соотвСтствуСт Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΈ DTD ΠΈ XML Schema, ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π΅ΡΡ‚ΡŒ большоС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅. Π’ DTD всС элСмСнты Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ XML Schema Π² ΡΡ‚ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ позволяСт Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Title ΠΈ Author Π² ΠΊΠΎΠ½Ρ‚СкстС элСмСнта Book. Для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ дублирования эффСкта объявлСний DTD Π² XML Schema элСмСнты Title ΠΈ Author Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, ΠΊΠ°ΠΊ Π² ЛистингС 9. Атрибут ref элСмСнта element позволяСт Π’Π°ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌ элСмСнтам. Листинг 9: Π‘Π»ΠΎΠΆΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… простых Ρ‚ΠΈΠΏΠΎΠ²

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π’Π°Π±Π»ΠΈΡ†Ρ‹ 1 ΠΈ Листинга 9 BookType являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для опрСдСлСния Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΡΡ‚ΠΎΠ³ΠΎ, Листинг 10 опрСдСляСт BookType локально Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π΅ Book ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² Π’Π°Π±Π»ΠΈΡ†Π΅ 1 соотвСтствуСт всСм Ρ‚Ρ€Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌ схСмы Π² Π’Π°Π±Π»ΠΈΡ†Π΅ 1, ЛистингС 9 ΠΈ ЛистингС 10.

Листинг 10: Π‘ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ BookType ΠΊΠ°ΠΊ локального Ρ‚ΠΈΠΏΠ°

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ элСмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ схСм DTD

НакладываниС слоТных условий Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹

XML Schema прСдоставляСт Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ для задания условий, Π½Π°Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… Π½Π° ΠΌΠΎΠ΄Π΅Π»ΡŒ содСрТания элСмСнтов, Ρ‡Π΅ΠΌ DTD. На ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, ΠΊΠ°ΠΊ Π² DTD, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ с ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ элСмСнтов (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ, нуля ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ (?), нуля ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ (*), ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ (+) элСмСнтов ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π°. Π’ XML Schema Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ограничСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ minOccurs ΠΈ maxOccurs элСмСнта element, Π° Ρ‚Π°ΠΊΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнтов choice, group, ΠΈ all.

Листинг 11: Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Ρ‚ΠΈΠΏΡ‹ элСмСнтов

Π’ ЛистингС 11 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½, Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ…, Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π΅ Book. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ minOccurs ΠΈ maxOccurs Π±ΡƒΠ΄Π΅Ρ‚ 1 для элСмСнта element. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ choice позволяСт появится Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΡΠ²ΠΎΠΈΡ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов. Π”Ρ€ΡƒΠ³ΠΎΠΉ элСмСнт, all, Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ всС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ вовсС, ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² Π»ΡŽΠ±ΠΎΠΌ порядкС. Листинг 12 Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΎΠ±ΡΠ·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΈ Title ΠΈ Author ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² Π»ΡŽΠ±ΠΎΠΌ порядкС Π² Book ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π²ΠΎΠΎΠ±Ρ‰Π΅. Π’Π°ΠΊΠΈΠ΅ ограничСния Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ для выраТСния Π² DTD. Листинг 12: Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ для элСмСнта Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ всС Ρ‚ΠΈΠΏΡ‹

ΠœΡ‹ ΠΎΡ…Π²Π°Ρ‚ΠΈΠ»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ понятия, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для опрСдСлСния элСмСнтов Π² XML Schema, Π΄Π°Π² прСдставлСниС ΠΎ Π΅Π³ΠΎ возмоТностях с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простых ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Но ΠΈΠΌΠ΅Π΅Ρ‚ся ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ²:

XML Schema Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ наслСдования Ρ‚ΠΈΠΏΠΎΠ², Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ структуры. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ faset, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ подмноТСства Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ‚ΠΈΠΏ ProductCode Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° pattern. ΠŸΠΎΠ΄Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ объявлСния элСмСнтов ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ.

НСкоторыС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. НапримСр, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ InvoiceType (Ρ‚ΠΈΠΏ Π½ΠΎΠΌΠ΅Ρ€Π° счСта-Ρ„Π°ΠΊΡ‚ΡƒΡ€Ρ‹) Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΡ‹, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ InvoiceType. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ контСкстС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‰Π΅Π½ Π½ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏ Ρ‚ΠΈΠΏΠ° ProductCode.

Объявляя элСмСнт ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ абстрактным, XML Schema обСспСчиваСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ‹.

Для удобства, Π³Ρ€ΡƒΠΏΠΏΡ‹ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈ ΠΏΠΎΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ‹. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ обращСния ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ.

XML Schema ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ элСмСнта — appInfo, documentation ΠΈ annotation — для аннотирования схСм ΠΊΠ°ΠΊ для Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ (documentation), Ρ‚Π°ΠΊ ΠΈ Π΄Π»Ρ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (appInfo).

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

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ элСмСнта

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π² DTD опрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСскриптора! ELEMENT, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ указываСтся Π½Π°Π·Π²Π°Π½ΠΈΠ΅ элСмСнта ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΅Π³ΠΎ содСрТимого.

НапримСр, для элСмСнта ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:

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

Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ элСмСнта ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ сначала Π½Π°Π·Π²Π°Π½ΠΈΠ΅ элСмСнта (flower), Π° Π·Π°Ρ‚Π΅ΠΌ Π΅Π³ΠΎ модСль содСрТимого — опрСдСляСм, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС содСрТимоС элСмСнта flower Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° PCDATA (Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ parseable character data — любая информация, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€). БущСствуСт Π΅Ρ‰Π΅ Π΄Π²Π΅ инструкции, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏ содСрТимого: EMPTY, ANY. ΠŸΠ΅Ρ€Π²Π°Ρ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ элСмСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ пустым (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,), вторая — Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ содСрТимоС элСмСнта ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ся.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² задаСтся Π² Π²ΠΈΠ΄Π΅ списка Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми Π½Π°Π·Π²Π°Π½ΠΈΠΉ элСмСнтов. ΠŸΡ€ΠΈ этом для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ этих элСмСнтов ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ символы +,*, ?:

Π’ ΡΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ указываСтся, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ элСмСнта Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ элСмСнты title, author ΠΈ table-of-contents, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ элСмСнт title являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ лишь ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹, элСмСнт author ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ нСсколько Ρ€Π°Π·, Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ table-of-contents являСтся ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚. Π΅. ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Π’ Ρ‚ΠΎΠΌ случаС, Ссли сущСствуСт нСсколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² содСрТимого опрСдСляСмого элСмСнта, ΠΈΡ… ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ символа «|» :

Π‘ΠΈΠΌΠ²ΠΎΠ» * Π² ΡΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ опрСдСляСмая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… элСмСнтов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½Π° нСсколько Ρ€Π°Π· ΠΈΠ»ΠΈ ΠΆΠ΅ совсСм Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ XMLΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

Marks avenue

12−12−12

46−23−62

[email protected]

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ схСм DTD

Π’ XMLΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… DTD опрСдСляСт Π½Π°Π±ΠΎΡ€ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтах, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…. Бинтаксис DTD вСсьма своСобразСн ΠΈ ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ усилия ΠΏΡ€ΠΈ создании Ρ‚Π°ΠΊΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ DTD являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ использованиС SGML, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ DTD для любого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎ ΡΡ‚ΠΎΠ»ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ распространСния ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, HTML). Как ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, Π² XML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DTD Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ — Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, созданныС Π±Π΅Π· этих ΠΏΡ€Π°Π²ΠΈΠ», Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ссли ΠΎΠ½ΠΈ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ основным трСбованиям синтаксиса XML. Однако ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° Ρ‚ΠΈΠΏΠ°ΠΌΠΈ элСмСнтов ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π² ΡΡ‚ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²ΠΎΠ·Π»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Π°Π²Ρ‚ΠΎΡ€Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π”ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° нашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ языка Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½Π°, Π΅Π³ΠΎ смоТСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹, ΠΈ Π΄Π»Ρ этого ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π° Π½Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹.

Π’ DTD для XML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΡ€Π°Π²ΠΈΠ»: ΠΏΡ€Π°Π²ΠΈΠ»Π° для элСмСнтов ΠΈ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², описания ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ (ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ), описаниС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ВсС ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ основныС конструкции языка — элСмСнты, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ константы внСшниС Ρ„Π°ΠΉΠ»Ρ‹ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DTD Π² Π½Π°ΡˆΠ΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π²ΠΎ Π²Π½Π΅ΡˆΠ½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΏΡ€ΠΈ описании DTD просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ссылку Π½Π° ΡΡ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΆΠ΅ нСпосрСдствСнно Π²Π½ΡƒΡ‚Ρ€ΠΈ самого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ указываСтся имя Ρ„Π°ΠΉΠ»Π°, содСрТащСго DTDописания:

…Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° DTDΠ΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:…

Π’ Ρ‚ΠΎΠΌ случаС, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΠ΅ описания, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ сначала Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅, Ρ‚. Π΅. ΠΈΡ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° XMLпроцСссор Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΡ‰Π΅Ρ‚ DTD Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Если ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈ Π½Π΅ Π·Π°Π΄Π°Π½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ standalone ="yes", Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ внСшний Ρ„Π°ΠΉΠ» ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, находящиСся Π² Π½Π΅ΠΌ, Π±ΡƒΠ΄ΡƒΡ‚ считаны ΠΎΡ‚Ρ‚ΡƒΠ΄Π°. Если ΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ standalone ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «yes», Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… DTD описаний Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²

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

ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹:

id ID #REQUIRED

about CDATA #IMPLIED

type (actual | review | teach) 'actual' ''>

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для элСмСнта article ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°: id, about ΠΈ type, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ ID (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€), CDATA ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ соотвСтствСнно. ВсСго сущСствуСт ΡˆΠ΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°:

Β· CDATA — содСрТимым Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

Β· ID — опрСдСляСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ элСмСнта Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅

Β· IDREF (IDREFS) — ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅Ρ‚ (ΠΈΠ»ΠΈ нСсколько Ρ‚Π°ΠΊΠΈΡ… Π½Π°Π·Π²Π°Π½ΠΈΠΉ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС) ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΡ‚ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ элСмСнта

Β· ENTITY (ENTITIES) — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌΡ‚ (ΠΈΠ»ΠΈ списком Π½Π°Π·Π²Π°Π½ΠΈΠΉ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ENTITIES) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (макроопрСдСлСния), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅

Β· NMTOKEN (NMTOKENS) — содСрТимым элСмСнта ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ слово (Ρ‚.Π΅. этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ являСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ CDATA)

Β· Бписок допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ — опрСдСляСтся список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚.

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

Β· #REQUIRED — опрСдСляСт ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ Π²ΠΎ Π²ΡΠ΅Ρ… элСмСнтах Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°

Β· #IMPLIED — Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ

Β· #FIXED «Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» — ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ само ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Π±ΠΎΡ€Π° Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π»ΡŽΠ±ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ

Β· Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — Π·Π°Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ)

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (entity) прСдставляСт собой опрСдСлСния, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ использовано Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ элСмСнты Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ макроопрСдСлСниями. Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ DTDΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ инструкции! ENTITY:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, просматривая Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ содСрТимоС области DTDΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эту ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈ ΠΏΡ€ΠΈ дальнСйшСм Ρ€Π°Π·Π±ΠΎΡ€Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС DTDΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Ρ‚ΠΎΠΌ мСстС, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅. Π’. Π΅. Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ &hello, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° ΡΡ‚Ρ€ΠΎΡ‡ΠΊΡƒ «ΠœΡ‹ Ρ€Π°Π΄Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Вас»

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС, Π²Π½ΡƒΡ‚Ρ€ΠΈ DTD ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ:

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ макроопрСдСлСния — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для опрСдСлСния строковой константы, с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ссылки Π½Π° Ρ‡Π°ΡΡ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, дСлая Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ампСрсанта &

Π’ XML сущСствуСт ΠΏΡΡ‚ΡŒ прСдустановлСнных Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… констант:

Β· &lt — символ «<»

Β· &gt — символ «>»

Β· &amp — символ «&»

Β· &apos — символ апострофа «'»

Β· &quot — символ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ «» «

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

ΠœΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡ€Π°Π²ΠΈΠ» — макроопрСдСлСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ области DTD ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ символом %, вставляСмым ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ макроса. ΠŸΡ€ΠΈ этом содСрТимоС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΎ нСпосрСдствСнно Π² Ρ‚Скст DTDΠΏΡ€Π°Π²ΠΈΠ»Π°. НапримСр, для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ записи:

ΠœΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для описания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Π’ ΡΡ‚ΠΎΠΌ случаС появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ опрСдСлСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов:

Випизация Π΄Π°Π½Π½Ρ‹Ρ…. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ часто ΠΏΡ€ΠΈ создании XMLэлСмСнта Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ трСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π΅Π³ΠΎ содСрТимого. Π’. Π΅. Ссли ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ элСмСнт 10.10.98, Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π² ΡΡ‚ΠΎΠΌ мСстС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ строка, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой Π΄Π°Ρ‚Ρƒ, Π° Π½Π΅ Ρ‡ΠΈΡΠ»ΠΎ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ элСмСнты, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² SQLзапросов. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π² ΡΡ‚ΠΎΠΌ случаС Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π½Π°Ρ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ… относится Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ соотвСтствия Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ SQL-запрос.

Если Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ XML-процСссор, Ρ‚ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданного для этого Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° элСмСнта, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ DTDΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ пСрСдаст Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° клиСнтскому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ смоТСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ содСрТимоС элСмСнта Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ DTDΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:

Π—Π°Π΄Π°Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ LONG ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² Π΅Π³ΠΎ ΠΊΠ°ΠΊ FIXED, ΠΌΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ Ρ‚Π΅ΠΌ самым ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ содСрТимого Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ соотвСтствиС Ρ‚ΠΈΠΏΠ° этого содСрТимого ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² DTDΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ XMLΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСсколько элСмСнтов с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…:

32.5

true

34 Ρ€. 28 ΠΊ…

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ создания элСмСнтов Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ этом нисколько Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ. ВсС нСобходимая для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… информация Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ элСмСнтов Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° DTD. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ DTD прСдоставляСт Π½Π°ΠΌ вСсьма ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ осущСствлСния контроля Π·Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΡ‹ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. На ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠΉ дСнь, практичСски всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ DTD-ΠΏΡ€Π°Π²ΠΈΠ»Π°. Однако это Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ коррСктности Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π’ Π½Π°ΡΡ‚оящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² W3 консорциумС находится Π½Π° Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹ΠΉ стандарт языка описания структуры Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ схСмами Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π» посвящСн Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌΠΈ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ ΡΡƒΡ‰Π½ΠΎΡΡ‚Π΅ΠΉ Π² DTD

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ† размСщСния, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… сущностями. ВсС сущности ΠΈΠΌΠ΅ΡŽΡ‚ содСрТаниС (ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ внСшний Π½Π°Π±ΠΎΡ€ DTD) ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½Ρƒ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, которая слуТит стартовой Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ для XML процСссора ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Бсылка Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» относится ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ символу ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° ISO/IEC 10 646, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ символу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ нСпосрСдствСнно с ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ся устройств Π²Π²ΠΎΠ΄Π°.]

Бсылка Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»

[66]

CharRef

:=

'&#' [0−9]+ ';'

| '&#x' [0−9a-fA-F]+ ';'

[WFC: Допустимый символ]

Бсылка Π½Π° ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ

[67]

Reference

:=

EntityRef | CharRef

[68]

EntityRef

:=

'&' Name ';'

[WFC: ДСкларированная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ]

[VC: ДСкларированная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ]

[WFC: Разобранная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ]

[WFC: ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ рСкурсии]

[69]

PEReference

:=

'%' Name ';'

[VC: ДСкларированная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ]

[WFC: ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ рСкурсии]

[WFC: Π’ DTD]

ДСкларация сущности

[70]

EntityDecl

:=

GEDecl | PEDecl

[71]

GEDecl

:=

'S Name S EntityDef S? '>'

[72]

PEDecl

:=

'S '%' S Name S PEDef S? '>'

[73]

EntityDef

:=

EntityValue | (ExternalID NDataDecl?)

[74]

PEDef

:=

EntityValue | ExternalID

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ сущности

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Если ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ EntityValue, Ρ‚ΠΎ ΠΎΠ½Π° называСтся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ. Для этой сущности отсутствуСт Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ физичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π½Π΅Π΅ содСрТаниС опрСдСляСтся Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² строковом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ сущности для создания ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠ³ΠΎ тСкста Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСкоторая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ссылок Π½Π° ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ».

ВнутрСнняя ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ являСтся Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Π½ΠΎΠΉ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ сущности:

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ сущности

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Если ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ, это внСшняя ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, дСкларируСмая ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:]

ДСкларация внСшнСй сущности

[75]

ExternalID

:=

'SYSTEM' S SystemLiteral

| 'PUBLIC' S PubidLiteral S SystemLiteral

[76]

NDataDecl

:=

S 'NDATA' S Name

[VC: ДСкларированная нотация]

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° XML процСссором сущностСй ΠΈ ΡΡΡ‹Π»ΠΎΠΊ

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

Бсылка Π² ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠΌ. Бсылка Π² Π»ΡŽΠ±ΠΎΠΌ мСстС элСмСнта Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ тэгами. БоотвСтствуСт Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΌΡƒ (nonterminal) ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ.

Бсылка Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

Бсылка Π»ΠΈΠ±ΠΎ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ тэга, Π»ΠΈΠ±ΠΎ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°. БоотвСтствуСт Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΌΡƒ AttValue.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

Π­Ρ‚ΠΎ Π½Π΅ ΡΡΡ‹Π»ΠΊΠ°, Π° Π»Π΅ΠΊΡΠ΅ΠΌΠ° Ρ‚ΠΈΠΏΠ° Name. ВыступаСт Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ с Ρ‚ΠΈΠΏΠΎΠΌ ENTITY, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° ΠΈΠ· Π»Π΅ΠΊΡΠ΅ΠΌ, пСрСчислСнных Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π» Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ с Ρ‚ΠΈΠΏΠΎΠΌ ENTITIES.

Бсылка Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ сущности

Бсылка ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΠ»ΠΈ строкового значСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ сущности, находящихся Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ сущности. БоотвСтствуСт Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ EntityValue.

Бсылка Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΠΈΠ»ΠΈ внСшнСм Π½Π°Π±ΠΎΡ€Π΅ DTD, Π½Π΅ ΠΏΠΎΠΏΠ°Π²ΡˆΠ°Ρ Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ EntityValue, AttValue, PI, Comment, SystemLiteral, PubidLiteral, Π° Ρ‚Π°ΠΊΠΆΠ΅ содСрТимоС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ условной сСкции.

Π’Π°Π±Π»ΠΈΡ†Π° 2.

Π’ΠΈΠΏ сущности

Π‘ΠΈΠΌΠ²ΠΎΠ»

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

ВнутрСнняя общая

Π’Π½Π΅ΡˆΠ½ΡΡ разобранная общая

НСразобранная

Бсылка Π² ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠΌ

НС Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ‚ΡΡ

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ

Бсылка Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

НС Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ‚ΡΡ

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

НС Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ‚ΡΡ

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅

НС Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ‚ΡΡ

Бсылка Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ сущности

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ строка

ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ°Π΅Ρ‚ΡΡ

ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ°Π΅Ρ‚ΡΡ

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ

Бсылка Π² DTD

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½

ОписаниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ XML Path. ΠœΠ΅ΡΡ‚ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² XML

Π―Π·Ρ‹ΠΊ XPath являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½Ρ‹Π΅ синтаксис ΠΈ ΡΠ΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΡƒ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°, совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ XSL Transformations [XSLT] ΠΈ XPointer [XPointer]. Главная Π·Π°Π΄Π°Ρ‡Π° языка XPath — адрСсация частСй Π² XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ [XML]. Для достиТСния этой Ρ†Π΅Π»ΠΈ язык Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π΄Π΅Π»Π΅Π½ основными функциями для манипулирования строками, числами ΠΈ Π±ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ значСниями. Π’ XPath ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ синтаксис, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΠΎΠ³ΠΎ Π² XML, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰ΠΈΠΉ использованиС языка XPath ΠΏΡ€ΠΈ записи адрСсов URI ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² XML. XPath Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ Π²Π½Π΅ΡˆΠ½ΠΈΠΌ синтаксисом XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π° Ρ Π΅Π³ΠΎ абстрактной логичСской структурой. XPath ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Ρ‚Π°ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ использовался Π² URL для записи ΠΏΡƒΡ‚Π΅ΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ичСской структурС XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Π―Π·Ρ‹ΠΊ XPath спроСктирован Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ адрСсации ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ СстСствСнным Π½Π°Π±ΠΎΡ€ΠΎΠΌ элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для сравнСния (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, соотвСтствуСт Π»ΠΈ ΡƒΠ·Π΅Π» Π½Π΅ΠΊΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ). Π’Π°ΠΊΠΎΠΉ порядок использования языка XPath описываСтся Π² ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ XSLT.

XPath прСдставляСт XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠ·Π»ΠΎΠ². Π£Π·Π»Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ·Π»Ρ‹ элСмСнтов, ΡƒΠ·Π»Ρ‹ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΡƒΠ·Π»Ρ‹ тСкста. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΡƒΠ·Π»ΠΎΠ² Π² XPath опрСдСляСтся способ вычислСния строкового значСния. НСкоторыС Ρ‚ΠΈΠΏΡ‹ ΡƒΠ·Π»ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ имя. XPath ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ пространства ΠΈΠΌΠ΅Π½ XML [XML Names]. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, имя любого ΡƒΠ·Π»Π° Π² ΡΡ‚ΠΎΠΌ языкС образуСтся ΠΈΠ· Π΄Π²ΡƒΡ… частСй: локальной части ΠΈ URI Π½Π΅ΠΊΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ), такая комбинация называСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Π“Π»Π°Π²Π½ΠΎΠΉ синтаксичСской конструкциСй языка XPath являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π›ΡŽΠ±ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ соотвСтствуСт ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ Expr. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ выраТСния получаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, относящийся ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… основных Ρ‚ΠΈΠΏΠΎΠ²:

Β· Π½Π°Π±ΠΎΡ€ ΡƒΠ·Π»ΠΎΠ² (node-set) — нСупорядочСнный Π½Π°Π±ΠΎΡ€ ΡƒΠ·Π»ΠΎΠ² Π±Π΅Π· Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ²

Β· Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (boolean) — true ΠΈΠ»ΠΈ false

Β· число (number) — число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ

Β· строка (string) — ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ UCS символов

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ осущСствляСтся, ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°ΡΡΡŒ ΠΎΡ‚ Π½Π΅ΠΊΠΎΠ³ΠΎ контСкста. Π’ ΡΠΏΠ΅Ρ†ΠΈΡ„икациях XSLT ΠΈ XPointer указываСтся, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² XSLT ΠΈ XPointer, соотвСтствСнно, опрСдСляСтся контСкст для Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ XPath. ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ образуСтся ΠΈΠ·:

Β· ΡƒΠ·Π»Π° (ΡƒΠ·Π΅Π» контСкста, context node)

Β· ΠΏΠ°Ρ€Ρ‹ Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл (ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ‚СкстС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ контСкста)

Β· привязки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… контСкста (variable bindings)

Β· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Β· Π½Π°Π±ΠΎΡ€Π° Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΉ пространства ΠΈΠΌΠ΅Π½ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ видимости Π΄Π°Π½Π½ΠΎΠ³ΠΎ выраТСния

ПолоТСниС Π² ΠΊΠΎΠ½Ρ‚СкстС всСгда мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ контСкста.

Π‘Ρ…Π΅ΠΌΠ° привязки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… контСкста образуСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ отобраТСния мноТСства ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, относящийся ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ², допустимых для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π»ΠΈΠ±ΠΎ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡƒ Π² ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ образуСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ отобраТСния мноТСства Π½Π°Π·Π²Π°Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. КаТдая функция ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΡƒΠ»ΡŒ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ описываСтся основная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ XPath. Для любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния относятся ΠΊ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ основным Ρ‚ΠΈΠΏΠ°ΠΌ. И XSLT, ΠΈ XPointer Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ XPath, опрСдСляя Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Π°ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ основными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ — Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π² XSLT ΠΈ XPointer. Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ пространства ΠΈΠΌΠ΅Π½ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ отобраТСния мноТСства прСфиксов Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² URI пространств ΠΈΠΌΠ΅Π½.

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… контСкста, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ пространства ΠΈΠΌΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй выраТСния ΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° ΠΏΡ€ΠΎΡ‚яТСнии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ всСго выраТСния. Π£Π·Π΅Π» контСкста, Ρ€Π°Π·ΠΌΠ΅Ρ€ контСкста ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ‚СкстС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ частСй выраТСния, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ выраТСния Π² Ρ†Π΅Π»ΠΎΠΌ. НСкоторыС Ρ‚ΠΈΠΏΡ‹ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π» контСкста, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ контСкста ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ‚СкстС ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρ‹. Если описываСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‚ΠΎ Π²ΡΠ΅Π³Π΄Π° явно указываСтся, ΠΊΠΎΠ³Π΄Π° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ частСй выраТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡƒΠ·Π΅Π» контСкста, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ контСкста ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ‚СкстС. Если ΠΆΠ΅ ΠΎΠ± ΡƒΠ·Π»Π΅ контСкста, Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ контСкста ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚СкстС Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, считаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² Ρ…ΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ всСх ΠΏΠΎΠ΄Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

ВыраТСния XPath часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… XML. ΠžΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌΠ°Ρ Π² ΡΡ‚ΠΎΠΉ Π³Π»Π°Π²Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° примСряСтся ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° послС выполнСния Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, описанной Π² XML 1.0. Π’Π°ΠΊ, Ссли, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ <, Ρ‚ΠΎ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π΅Π³ΠΎ нСльзя Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ просто ΠΊΠ°ΠΊ <. ВмСсто этого, согласно ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ XML 1.0, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠ°ΡΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, записав ΠΊΠ°ΠΊ <. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ…, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ для записи Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² XML. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ символ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² ΡΡ‚ΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ ΠΈΠ½Ρ‚СрпрСтировался XML процСссором ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π΅Ρ† значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ссылку Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» («ΠΈΠ»ΠΈ '). Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ссли Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ XML Π±Ρ‹Π» Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ свободно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π”Ρ€ΡƒΠ³ΠΈΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ являСтся ΠΏΡƒΡ‚ΡŒ адрСсации (location path). ΠŸΡƒΡ‚ΡŒ адрСсации Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΠ΅ мноТСство ΡƒΠ·Π»ΠΎΠ², ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°ΡΡΡŒ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° контСкста. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ выраТСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ адрСсации, являСтся мноТСство ΡƒΠ·Π»ΠΎΠ², собранных согласно этому ΠΏΡƒΡ‚ΠΈ. ΠŸΡƒΡ‚ΡŒ адрСсации ΠΌΠΎΠΆΠ΅Ρ‚ рСкурсивно ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ выраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠ² ΡƒΠ·Π»ΠΎΠ². ΠŸΡƒΡ‚ΡŒ адрСсации соотвСтствуСт ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ LocationPath.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ