Алексей Валиков - Технология XSLT

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Технология XSLT"
Описание и краткое содержание "Технология XSLT" читать бесплатно онлайн.
Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.
Для начинающих и профессиональных программистов
<A>
<B>
<C/>
</B>
<C>
<B/>
</C>
</A>
Следует быть осторожными при использовании indent="yes" там, где в содержимом документа могут встречаться значащие пробелы. Индентация позволяет процессору при выводе документа добавлять пробельные символы по собственному усмотрению. В случаях, когда при последующей обработке преобразованного документа пробельные символы могут быть восприняты неадекватно, лучше индентацию не использовать.
Атрибут cdata-section-elementsДля того чтобы вывести текстовое содержимое некоторых элементов в виде секций CDATA, XSLT предлагает простой механизм — следует лишь перечислить в атрибуте cdata-section-elements элемента xsl:output элементы, которые на выходе должны содержать секции символьных данных.
Пример Листинг 8.41. Входящий документ<?xml version="1.0" encoding="utf-8"?>
<page><br/><br/></page>
Листинг 8.42. Преобразование<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
indent="yes"
cdata-section-elements="page"/>
<xsl:template match="/">
<xsl:copy-of select="/"/>
</xsl:template>
</xsl:stylesheet>
Листинг 8.43. Выходящий документ<?xml version="1.0" encoding="utf-8"?>
<page><![CDATA[<br/>]]><br/>
</page>
В соответствии с синтаксисом XML, секции CDATA не могут содержать последовательности символов "]]>". Потому, встретив такую комбинацию в тексте элемента, имя которого включено в cdata-section-elements, процессор заменит ее двумя секциями CDATA. Одна будет содержать "]]", вторая – ">".
Пример Листинг 8.44. Входящий документ<?xml version="1.0" encoding="utf-8"?>
<page>
<data>]]></data>
<pre><!-- Comment --></pre>
</page>
Листинг 8.45. Преобразование<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
indent="yes"
cdata-section-elements="data pre"/>
<xsl:template match="/">
<xsl:copy-of select="/"/>
</xsl:template>
</xsl:stylesheet>
Листинг 8.46. Выходящий документ<?xml version="1.0" encoding="utf-8"?>
<page>
<data><![CDATA[]]]]><![CDATA[>]]></data>
<pre><![CDATA[<!-- Comment -->]]></pre>
</page>
Атрибут doctype-systemДля определения логической структуры документов в XML используются DTD — определения типов документов. В большинстве случаев определения типов содержатся во внешних ресурсах, которые включаются в документ в виде системных или публичных идентификаторов.
XSLT позволяет создавать ссылки на внешние определения типов при помощи атрибута doctype-system элемента xsl:output.
ПримерПредположим, что мы создаем документ, логическая схема которого определена во внешнем файле по адресу "/dtds/document.dtd". Тогда, определив в преобразовании элемент xsl:output с атрибутом doctype-system, равным "/dtds/document.dtd", мы получим в выходящем документе определение типа в виде
<!DOCTYPE элемент SYSTEM "/dtds/document.dtd">
где элемент — первый элемент выходящего документа.
Листинг 8.47. Входящий документ<?xml version="1.0" encoding="utf-8"?>
<page> content </page>
Листинг 8.48. Преобразование<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" doctype-system="/dtds/document.dtd"/>
<xsl:template match="/"><xsl:copy-of select="/"/></xsl: template>
</xsl:stylesheet>
Листинг 8.49. Выходящий документ<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE page SYSTEM "/dtds/document.dtd">
<page> content </page>
Атрибут doctype-publicЕсли в преобразовании атрибутом doctype-system элемента xsl:output задано внешнее определение логического типа документа, это определение может быть расширено также и публичным идентификатором. Публичный идентификатор указывается в атрибуте doctype-public элемента xsl:output. Его использование может быть продемонстрировано следующим примером.
Листинг 8.50. Входящий документ<?xml version="1.0" encoding="utf-8"?>
<page> content </page>
Листинг 8.51. Преобразование<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"
doctype-system="/dtds/document.dtd"
doctype-public="-//Document//Description" />
<xsl:template match="/"><xsl:copy-of select="/"/></xsl:template>
</xsl:stylesheet>
Листинг 8.52. Выходящий документ<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE page
PUBLIC "-//Document//Description" "/dtds/document.dtd">
<page> content </page>
Атрибут media-typeАтрибут media-type позволяет задавать медиа-тип содержимого выходящего документа. Для метода вывода "xml" значением media-type по умолчанию является "text/xml". Несмотря на то, что media-type не оказывает никакого влияния на содержимое самого документа, XSLT-процессоры, используемые на стороне сервера, могут в зависимости от значения этого атрибута изменять MIME-тип исходящих данных при использовании, к примеру, такого протокола, как HTTP.
Атрибут omit-xml-declarationXML-документы, в принципе, могут быть корректными и без декларации XML. Поэтому XSLT позволяет опускать эту декларацию в выходящем документе, для чего значению атрибута omit-xml-declaration должно быть присвоено "yes":
<xsl:output
omit-xml-declaration="yes"/>
В случае если значение атрибута omit-xml-declaration опущено или не равно "yes", процессор будет выводить в выходящем документе декларацию XML, которая включает информацию о версии (по умолчанию "1.0") и кодировке документа (по умолчанию "utf-8" или "utf-16" в зависимости от процессора).
Атрибут standaloneДля того чтобы объявить документ как самостоятельный или несамостоятельный (standalone или non-standalone соответственно), следует использовать атрибут standalone элемента xsl:output. Если этот атрибут будет присутствовать в xsl:output, то процессор включит в декларацию XML объявление standalone с соответствующим значением. Если атрибут standalone не указан, объявление standalone в декларацию XML выходящего документа включено не будет.
Метод вывода "html"
В нынешнем состоянии языки XML и HTML сильно похожи синтаксически, но при этом имеют некоторые довольно весомые различия. Метод вывода "html" используется для того, чтобы выводить документы в формате, который будет понятен большинству существующих на данный момент Web-браузеров.
Одно из основных различий HTML и XML состоит в том, что в XML пустые элементы имеют формат <имя/>, в то время как в HTML тот же элемент был бы выведен, как <имя> — без косой черты. Метод вывода "html" учитывает эти различия и выводит теги пустых элементов HTML без косой черты после имени. В соответствии с технической рекомендацией языка HTML 4.0, пустыми элементами являются area, base, basefont, br, col, frame, hr, img, input, isindex, link, meta и param.
Пример Листинг 8.53. Входящий документ<?xml version="1.0" encoding="utf-8"?>
<page>
<title>I'm just a simple page...</title>
<content>I've got a simple content</content>
</page>
Листинг 8.54. Преобразование<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="html"/>
<xsl:template match="/page">
<html>
<head>
<title>
<xsl:value-of select="title"/>
</title>
</head>
<body>
Welcome!<br/>
Be our guest! <HR/>
<xsl:value-of select="content"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Листинг 8.55. Выходящий документ<html>
<head>
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Технология XSLT"
Книги похожие на "Технология XSLT" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Алексей Валиков - Технология XSLT"
Отзывы читателей о книге "Технология XSLT", комментарии и мнения людей о произведении.