Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Трэвис Б. -> "XML и SOAP: программирование для серверов BizTalk. Новейшие технологии" -> 48

XML и SOAP: программирование для серверов BizTalk. Новейшие технологии - Трэвис Б.

Трэвис Б. XML и SOAP: программирование для серверов BizTalk. Новейшие технологии — Русская Редакция, 2001. — 496 c.
ISBN5-750Z-0129-5
Скачать (прямая ссылка): xmlprogrammdlyaserverov2001.pdf
Предыдущая << 1 .. 42 43 44 45 46 47 < 48 > 49 50 51 52 53 54 .. 157 >> Следующая


: Псрія.ііі дочерний элемент внутри weather— <tenip>26</temp- .

Его должен обработать ящичек с отверстием в виде ромба. Этот ящичек соответствует правилам строках 12--14.

4 Огкрынаюипш тэгHTML <LI> (элемент списка) и

текстовая строка їїі Jypa¦> не содержат префикса пространства имен поэтому они сразу направляются поток вывода.

Теперь ящичек видит тэг <xsl:apply-templates/> и, как в случае с элементом wea-Ыг, передает содержимое элемента temp (т. е. другим правилам для обработки. Ящичек с отверстием в виде кольца просто ожидает данных. Он обрабатывает текст, получаемый от других ящичков. Правила его работы приведены в строках 20-22. Единственный элемент сразу посылает все входящие текстовые

данные (на входе может быть только текстовый элемент) в поток вывода, обозначенный черным кружком.

После обработки текста возобновляется выполнение правила «temp», которое выводит йкрьпяншшш тэг . і і После полной обработки элемента temperature управление передается обратно правилу обработки корневого элемента weather, уже ожидает обработки очередной дочерний элемент.

Следуюшш дочерний элемент — wind — обрабатывается аналогично ГЛАВА 6 XSL

(продолжение)

13 После обработки всех дочерних элементов элемента weather

выполнение правила -'.va'appiy-k-mplaics-^ завершается, и

следующие за ним команды. В данном случае иWгодится горизонтальная 'іерта-ражтйтедй с ломшхі.зіі директивы <HR/>. На этом обработка завершается.

Отдельного внимания заслуживает тэг HTML в строке 9, который рисует горизонтальную разделительную черту. Табл. стилей XSI.. должна быть правильным XML-документом, т. е. должна следовать правилам оформления докучен гон (см. главу 4). Cooit,е гсттуюппш тэг HTML имеет вид <HR>; вспомним, однако, что это пустой элемент. Чтобы быть правильным в смысле XML. он должен сопровождаться закрывающим тэгом; поэтому он и имеет вид

Рекурсия

Замечу, что при наличии тэга <xsI:apply-templates/> после разбора ящичком содержимого очередного элемента результат подается на вход всех имеющихся їщшчкоімїраїшл, включая ящичек, только что выполнивший разбор. В качестве примера разберем небольшую XSL-программу Ge пенс, xsl (листинг 6-2).

Листинг 6-2. Таблица стилей XSL Generic.xsl для представления любого документа XML в иерархическом виде.

Generic.xsl 1

2 -x'il.stvlcuhuci:

3 ve:"=,.".jv:" 1. u:

4 xml. space="default"

5

6

7 <xsi: template match="nooe()"> S

9

10

11 <xsl:apply-templa±es/>

12 [конец

13 </DIV>

14 </xsl:template>

15 124

Часть S fipKMfttiSKiteXML в -злактронной кемшрции

15

17 J>ript.y <xsl:

18 -aSI: ValUS-йГ 5Cli:C L-" . ",'"']

19 </xsl:te^plate^

20 21

22 <xsl va.%e-cf select-". "/>'

?3 </xsl: template^

I

25 </x3l::-ty;esha;!.'<

В таблице стилей, IlplllitMe-Iiioii в этом листинге, нет названий элементов и атрибутов. Все они обрабатываются анонимно в порядке их появления документе. Для создания иерархического представления документа нужен механизм, ік»ші>лиюіціт выяснить имя и тип каждого узла, что и сделано в таблице стилей. Вот документ XML -SUI ! 2.xml. который мы будем обрабатывать (листинг

Листинг 6-3. Документ XML, предназначенный для обработки.

8*0112. ml

<?хш1 vfersion=" 1.0" encoding.= "windows-1251 "?:• <weafier zipcode="8G112"> штат

<C:Urrent>

<condition name="temp">32</condition> <condition name="wini chill 20</conditlon> <condition n I і:!*мі,и 7

<conditiori name="dewpoint">l6</condiLion> «condition name="relative humidity">51%</condition> ¦«condition name="vis і B U ity"; 10 KM</conditiop>

MM

<condition

«condition name='sjn-5et">16:5l MST</condition> </currert> <forecast

'¦day date="2000-03-22Т1Ь:03:28-07:00" high="46" low="21"

sky="Переменная обла н-ос~э"/> <day

Jyy= "Переменная i^1 ' !¦ ІШ S XSL

125

<day aate="2000-03-24T15:03:28-07:00" Iiigh=rfSr' low="19"

sky="Переменная облачность"/» <day сзіе= '200С--03-25"^:03:2Є-07:00" bic^'SS"

5ку="!1ерем'енная облачность"/» <day date= '2000-03-26T15:03:28-07:00 ' high="49" low="20' Зку="Переченнан облачность"/'» «/forecast» Vweat he г»

В табл. 6-2 шаг за шагом описана обработка документа из листинга 6-3 с помощью таблицы стилей из листинга 6-2.

Табл. 6-2. Обработка XML-документа 80122.xml с использованием шаблона

Generic .xsl.

Строка Описание

Правило match—-пойЫ выберет практически все ни ііфесуюіііііе нас узлы, и грежде всего у"їлу-з~їменты.

В первой строке правила match (строка 8 таблицы с і плен і стоит элемент <D1V>. Этот тэг HTML создает маркированный список. уровень элементов которого описывается отступами; мы сфор-матируем в этом виде список элементов документа. Поскольку у нет пространства имен то этот элемент с

его атрибутами будет просто передан в поток вывода. Атрибут CSS STYLE Tm* <0№"-' задает левое поле элемента списка.

9 У строки символов [начало тоже нет префикса пространства имен .v.!/.1. поэтому она тоже просто отправляется в поток вывода. Функция KBf з атрибуте sehet элемента <ш:у;ь::іе-о:іу> позволяет получить название обрабатываемого узла (точно так же с помощью шаблона можно получить его значение). После названия элемента выводится символ
Предыдущая << 1 .. 42 43 44 45 46 47 < 48 > 49 50 51 52 53 54 .. 157 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100