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

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

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





Рассмотрим простой пример 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. Нарушение авторских прав; Мы поможем в написании вашей работы!




Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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


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


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

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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

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

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