XSLT — страница 20 из 124

/TITLE>

     The Planets Table

NameMassRadiusDay

Элемент

Если вы импортируете таблицу стилей с шаблоном, например, для элемента

, и затем определите свой собственный элемент
, импортируемая версия будет перекрыта. Как можно получить доступ к перекрытой версии? Этому служит элемент
.

В XSLT 1.0 у этого элемента нет атрибутов и нет содержимого. В рабочем проекте XSLT 1.1 элемент

может обрабатывать параметры, поэтому он может содержать ноль или более элементов
(подробнее о параметрах см. главу 9).

В качестве примера я модифицирую только что рассмотренный нами пример

. В этом случае я добавлю еще один столбец в генерируемую в этом примере (листинг 2.12) HTML-таблицу, названную DATA, путем перекрытия шаблона
в
rules.xsl
новым шаблоном
из
planets.xsl
. Новый шаблон просто добавляет в таблицу новый столбец и затем применяет старый шаблон
к оставшимся данным. Доступ к старому шаблону осуществляется при помощи
.

Листинг 2.12. Использование

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

</code></pre></p><p><pre><code>     The Planets Table</code></pre></p><p><pre><code>

     The Planets Table

DateNameMassRadiusDay


4/1/2002

А вот как выглядит новая версия

rules.xsl
(листинг 2.13).

Листинг 2.13. Новая версия rules.xsl

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

Результаты можно видеть на рис. 2.4. Я создал один шаблон при помощи другого, что является ближайшим аналогом в XSLT для наследования из объектно-ориентированной парадигмы.

Рис. 2.4. Использование


В рабочем проекте XSLT 1.1 с элементом

можно использовать параметры таблицы стилей, что означает, что вы можете использовать элементы
в качестве содержимого
. Подробное обсуждение параметров и элемента
приводится в главе 9.

Преобразование документов XML при помощи Internet Explorer

В нашем обзоре таблиц стилей есть еще одна тема для обсуждения: как использовать таблицы стилей в Internet Explorer. Как мы видели в главе 1, для считывания документов XML и XSL можно использовать JavaScript, и осуществлять преобразование при помощи разборщика MSXML3. (Дополнительная информация по этой теме приведена в главе 10. Документацию по Internet Explorer можно также прочитать по адресу http://msdn.microsoft.com/xml/XSLGuide/.)

Однако, если вам нужно открыть XML-документ непосредственно в Internet Explorer при навигации (например, набрав URI в адресной строке), в использовании элементов

и
вы полагаетесь на браузер, а это означает, что для IE версии 5.5 и более ранних необходимо провести ряд изменений. 

INTERNET EXPLORER 6.0 И ПОЛУЧЕНИЕ И УСТАНОВКА РАЗБОРЩИКА MSXML

Обратите внимание: IE 6.0 только что вышел, когда книга готовилась к печати, и он поддерживает полный синтаксис XSLT (за исключением того, что вы все еще должны использовать тип «text/xsl» для таблиц стилей, как в , вместо «text/xml»). Если вы используете IE 5.5 или более ранних версий, вы также можете загрузить и установить последнюю версию разборщика MSXML прямо от Microsoft вместо предыдущей версии, используемой Internet Explorer. Если это сделать, вам не нужно будет проводить изменения, перечисленные в этом разделе. Дополнительную информацию можно получить по адресу http://msdn.microsoft.com/ xml/general/xmlparser.asp. Загрузить разборщик сейчас можно по адресу http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/000/541/msdncompositedoc.xml. (Учтите, однако, что Microsoft, кажется, реорганизует свой web-узел примерно каждые пятнадцать минут.) Если вы работаете с IE 5.5 или более ранней версии, я настоятельно рекомендую вам загрузить MSXML, чтобы вам не пришлось изменять все ваши таблицы стилей XSLT для их использования в IE, или обновить браузер до версии 6.0 или более поздней.

Для IE версии 5.5 или более ранней необходимо внести изменения и в

planets.xml
, и в
planets.xsl
. Для того чтобы использовать
planets.xml
в IE, необходимо преобразовать атрибут
type
в инструкции обработки
из «text/xml» в «text/xsl» (листинг 2.14).

Листинг 2.14. Версия planets.xml для Internet Explorer

Mercury.0553

58.65

1516

983

43.4

Venus