Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Простые примеры





Рассмотрим простой пример XML-документа:

Пример 15.

<?xml version="1.0" encoding="windows-1251"?>

<Book>

<Title>Война и мир</Title>

<Author>Толстой Л.Н</Author>

<Pages>600</Pages>

<Type>роман</Type>

<Text Type=’text’>http://www.text.com/book1</Text>

</Book>

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

Для того, чтобы видеть только нужную информацию необходимо к XML-документу добавить шаблон преобразования – XSL-документ.  

Новый вид XML-документа, с добавлением ссылки на XSL- документ во второй строке:

<?xml version="1.0" encoding="windows-1251"?>

<?xml-stylesheet type='text/xsl' href='ex01.xsl'?>

<Book>

<Title>Война и мир</Title>

<Author>Толстой Л.Н</Author>

<Pages>600</Pages>

<Type>роман</Type>

<Text Type=’text’>http://www.text.com/book1</Text>

</Book>

Текст XSL-документа из файла ex01.xsl:

<?xml version="1.0" encoding="windows-1251"?>

<xsl:stylesheet version="1.0"

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

<xsl:template match="/">

<p><b><xsl:value-of select="Book/Title"/></b></p>

<p><i><xsl:value-of select="Book/Creator"/></i></p>

<p><xsl:value-of select="Book/Pages"/></p>

<p><xsl:value-of select="Book/Type"/></p>

<p><xsl:value-of select="Book/Identifier/@Type"/></p>

<p><xsl:value-of select="Book/Identifier"/></p>

</xsl:template>

</xsl:stylesheet>

Если открыть новый вариант XML-документа в браузере, то на экране осталась только необходимая информация, все теги XML-документа отображаться не будут. Результат, который получился на экране браузера, приведен ниже:

Порядок элементов value-of XSL-документа определяет порядок, в котором браузер отображает элементы XML-документа. При необходимости шаблон можно легко поменять, абсолютно не меняя основной XML- документ. Таким образом, XSL-таблица стилей сообщает браузеру, как отобразить XML-документ путем избирательного преобразования XML-элементов в блок HTML-разметки, который воспринимается и отображается браузером аналогично разметке, содержащейся на HTML-странице. Заметим, однако, что вам не обязательно включать в XSL-шаблон элементы, представляющие элементы HTML или BODY, которые являются стандартными составными частями HTML-страницы, поскольку браузер сам эффективно их формирует.  

Другой вариант XSL-документа из файла ex01-2.xsl:

<?xml version="1.0" encoding="windows-1251"?>

<xsl:stylesheet version="1.0"

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

<xsl:template match="/">

<table border="1">

<tr><td><b><xsl:value-of select="Book/Title"/></b></td></tr>

<tr><td><i><xsl:value-of select="Book/Creator"/></i></td></tr>

<tr><td><xsl:value-of select="Book/Pages"/></td></tr>

<tr><td><xsl:value-of select="Book/Type"/></td></tr>

<tr><td><xsl:value-of select="Book/Identifier/@Type"/></td>

</tr>

<tr><td><xsl:value-of select="Book/Identifier"/></td></tr>

</table>

</xsl:template>

</xsl:stylesheet>

Если заменить в XML-документе во второй строке имя XSL-файла на ex01‑2.xsl, то в браузере Internet Explorer результат будет другим:

То есть в результате содержимое XML-документа будет заключено в таблицу. Главный вывод из предложенного примера – к одному XML-документу может быть применено множесво XSL преобразований и наоборот, XSL преоразование может использоваться со многими XML-документами.

 

Существуют два основных шага для отображения XML-документа при использовании XSL-таблицы стилей:

1. создание XSL-таблицы стилей.

2. связывание XSL-таблицы стилей с XML-документом, включив в документ инструкцию по обработке xml-stylesheet, которая имеет следующую обобщенную форму записи:

<?xml-stytesheet type="text/xls" href=”XSLFilePath”?>

Здесь XSLFilePath представляет собой заключенный в кавычки URL, указывающий местонахождение файла таблицы стилей. Можно использовать полный URL, например href="http:/www.my_domain.com/ex01-2.xsl" или указать только имя файла, если XSL-таблица находится в той же папке что и XML-документ – href="ex01-2.xsl".

Рассмотрим теперь более подробно XSL-документ из файла ex01.xsl Пример 15. Его текст:

  <?xml version="1.0" encoding="windows-1251"?>
  <xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
  <p><b><xsl:value-of select="Book/Title"/></b></p>
  <p><i><xsl:value-of select="Book/Creator"/></i></p>
  <p><xsl:value-of select="Book/Pages"/></p>
  <p><xsl:value-of select="Book/Type"/></p>
  <p><xsl:value-of select="Book/Identifier/@Type"/></p>
  <p><xsl:value-of select="Book/Identifier"/></p>
  </xsl:template>
  </xsl:stylesheet>

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

Как и всякий XML-документ он должен содержать единственный корневой элемент и в случае XSL-документа это может быть только (строки 2 и 12):

<xsl:stylesheet version="1.0"

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

</xsl:stylesheet>

Корневой элемент XSL-документа должен содержать обязательный атрибут version и описание пространства имен XSL. Для XSL-файлов ссылка на пространство имен является стандартной. Если необходимо могут быть и другие пространства имен, обязательно должные быть указаны те же пространства имен, которые присутствовали в XML-документе для организации правильных ссылок на его элементы.

Корневой элемент xsl:stylesheet должен содержать один или несколько шаблонов template. В рассматриваемом примере шаблон только один, который имеет следующую форму (строки 4 и 11):

<xsl:template match="/">

<!-- дочерние элементы... -->

</xsl:template>

Браузер использует шаблон для отображения определенной ветви элементов XML-документа, с которым связана таблица стилей. Атрибут match шаблона указывает на определенную ветвь. Значение атрибута match носит название образца (pattern). Образец в данном примере ("/") представляет корневой элемент XML-документа, то есть этот шаблон содержит инструкции для отображения всего XML-документа.

Каждая XSL-таблица стилей должна содержать один и только один шаблон с атрибутом match, который имеет значение "/". Можно включить один или несколько дополнительных шаблонов с инструкциями для отображения определенных подчиненных ветвей в структуре XML-документа; каждая из них должна иметь образец, отвечающий определенной ветви.

Шаблон содержит два вида XML-элементов.

· XML-элементы, представляющие HTML-разметку. Примерами подобного вида XML-элемента из рассматриваемой таблицы стилей являются теги в строке 5:

<p><b> … </b></p>

которые указывают, как отображать содержимое XML-элементов. В этом случае указывается, что XML-элемент будет в отдельном абзаце и отображаться жирным шрифтом.

Все включенные HTML-элементы должны быть корректно сформированы в соответствии с правилами XML. XSLT в браузере просто копирует каждый HTML-элемент непосредственно на выход браузера, который воспринимает и обрабатывает их.

· XSL-элементы. Примеры XSL-элементов из рассматриваемой таблицы стилей являются элементами xsl:value-of, например:

<xsl:value-of select="Book/Title"/>

Браузер отличает XSL-элемент от элемента HTML по префиксу описания пространства имен xsl. XSL-элементы в шаблоне содержат инструкции по выбору и модификации данных XML, либо используются для выполнения других задач.

XSL-элемент value-of добавляет содержимое указанного XML-элемента и, также, любых его дочерних элементов, в выходной поток HTML, который и отображается браузером. XML-элемент указывается в атрибуте select XSL-элемента value-of, например, Book/Title, что приводит к выводу текстового содержимого элемента Title. XML-элемент в атрибуте select задается с помощью оператора пути – Book/Title, который определяет местонахождение элемента в дереве XML-документа.

Если опустить атрибут select для XSL-элемента value-of, элемент будет осуществлять вывод текстового содержимого плюс текстовое содержимое всех дочерних элементов в текущий элемент. В приведенном примере, поскольку текущим является корневой элемент, пропуск атрибута select приведет к выводу всех символьных данных в XML-документ.

В строке 9 примера происходит обращение к атрибутам XML-элемента. От работы с XML-элементами обращение к атрибуту отличается указанием символа "@" перед именем атрибута – Book/Identifier/@Type.







Дата добавления: 2015-09-07; просмотров: 1050. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Упражнение Джеффа. Это список вопросов или утверждений, отвечая на которые участник может раскрыть свой внутренний мир перед другими участниками и узнать о других участниках больше...

Влияние первой русской революции 1905-1907 гг. на Казахстан. Революция в России (1905-1907 гг.), дала первый толчок политическому пробуждению трудящихся Казахстана, развитию национально-освободительного рабочего движения против гнета. В Казахстане, находившемся далеко от политических центров Российской империи...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Studopedia.info - Студопедия - 2014-2025 год . (0.011 сек.) русская версия | украинская версия