Создание банка ссылок. Программы-обработчики атрибутов XLink
Создание банка ссылок При создании какого-либо документа на языке HTML, назовем его для определенности doc.html, в него вставляются гиперссылки на предыдущие, ранее созданные, документы и изображения. Пусть эти ресурсы лежат в файлах oldl.html, old2.html, imgl.gif. Через некоторое время появляются новые документы, назовем их newl.html, new2.html, на которые необходимо сослаться из документа doc.html. Для этого придется отыскать файл doc.html и внести в него новые ссылки. Это очень неудобно. Не говоря уже о том, что файл doc.html может быть недоступен, его уже могли скопировать на множество сайтов. Придется вносить изменения во все копии, что совершенно невозможно. Язык XLink, в котором можно сделать ссылки и в прямом, и в обратном направлении, позволяет создать обратные ссылки из новых документов на старый документ. Но это не лучший выход из положения, потому что старый документ при каждом открытии должен отыскать и просмотреть новые документы в поисках этих ссылок. Это требует времени и знания тех адресов, где лежат эти новые документы. К счастью, язык XLink предлагает другой, более удобный выход из этой ситуации. Мы выносим все ссылки в отдельный файл — "банк ссылок" — и в случае необходимости изменяем ссылки только в этом файле. Все документы, которым нужны ссылки, обращаются за ними в банк ссылок. Такие обращения оформляются обыкновенными ссылками, но для того чтобы указать программе-обработчику, что идет обращение к банку ссылок, в элемент-дугу записывается атрибут arcroie со следующим значением: xlink:arcrole="http://www.w3.org/19 9 9/xlink/properties/linkbase" Такая запись обеспечивает обязательность реализации ссылки программой-обработчиком, но накладывает одно ограничение — банк ссылок должен быть документом XML. В листинге 4.4 приведен пример связи с банком ссылок, активизируемой при загрузке документа content.xml.
Листинг 4.4. Связь с банком ссылок <initLinks xlink:type="extended"> <startcont xlink:type="locator" xlink:label="cont" xlink:href="content.xml" /> <base xlink:type="locator" xlink:label="base" xlink:href="linkbase.xml" /> <load xlink:type="arc" xlink:arcrole="http://www.w3.org/19 9 9/xlink/properties/linkbase" xlink:from="cont" xlink:to="base" xlink:actuate="onLoad" /> </initLinks> Программы-обработчики атрибутов XLink (тут перечисление фирм. Может взять у магистров) Хотя язьгк XLink создан недавно, уже появилось много программных продуктов, обрабатывающих ссылки, облегчающих их разработку и даже создающих ссылки, не вставляя их в документы XML Программное средство Х2Х фирмы UK, Ltd, описанное на сайте фирмы http://www.empolis.co.uk/products/prod_X2X.asp, создает ссылки, не вставляя их в документы XML. Обработчик XLink Processor фирмы Fujitsu реализует языки XLink и XPointer. С ним можно ознакомиться по адресу http://www.labs.fujitsu.com /free/xlip/en/. Программный продукт xlinkit.com создает ссылки по указанным ему правилам. Он расположен по адресу http://www.xlinkit.com/. Популярные свободно распространяемые браузеры MozUla, http:// www.mozilla.org/, и Amaya, http://www.w3.org/Amaya/, содержат средства обработки атрибутов языка XLink. Свободно распространяемый обработчик атрибутов языка XLink, называемый XtoolX, http://www.xlinkit.com:8080/xtoolx/, вставляет ссылки, взятые из банка ссылок, в документы XML.
Таблицы стилей CSS в языке XML. Язык описания стилей XSL Вместе с документами XML тоже можно применять таблицы стилей CSS. Для этого в язык XML введена инструкция по обработке stylesheet, которая используется так, как показано в листинге 8.4. Листинг 8.4. Документ XML, использующий таблицу стилей CSS <?xml version="1.0" encoding="windows-1251"?> <?xml:stylesheet type="text/css" href="xmlcontract.ess"?> <contract> <type>TpyflOBoii floroBop</type> <name>Иванов Петр Сидорович</name>
<date>01.07.03</date> <period>12</period> <i— и Так далее... —> </contract> Всякий браузер, "понимающий" XML, например Mozilla или Internet Explorer 6.x, покажет приведенный в листинге 8.4 документ в соответствии со стилями, записанными в файле xmlcontractcss. Таблица стилей, включенная в файл xmlcontract.css, оформляется по правилам CSS и может выглядеть так, как показано в листинге 8.5. Листинг 8.5. Таблица стилей для документа XML type { margin-top: 8em; margin-bottom: Зет; font-size: 2em; color: blue } name { text-indent: 2em; margin-top: Зет; font-size: 1.5em; margin-bottom: 2em; } date, period { margin: 0.5em; } Хотя таблицы стилей CSS и можно использовать в XML, но реализация стилей для документов XML должна быть другой. Как видно из приведенных примеров, синтаксис CSS весьма оригинален и никак не похож на синтаксис XML. Кроме того, стили CSS определяют способы показа документа HTML в окне браузера, его визуализацию, а язык XML выявляет структуру документа, ничего не говоря о его представлении в виде, удобном для чтения. Поэтому в технологии XML для записи стилей был разработан специальный язык XSL — одна из реализаций XML. Язык описания стилей XSL Таблицы стилей для документов XML записываются при помощи специально сделанной реализации языка XML, названной XSL (XML Stylesheet Language). В то время, когда писалась эта книга, действовала первая версия XSL, изложенная в рекомендации "Extensible Stylesheet Language (XSL). Version 1.0". Она опубликована на Web-странице http://www.w3.org/TR/xsl/. Язык XSL, как и язык XPath, представляет документ в виде дерева. Процессор языка XSL преобразует это дерево, руководствуясь таблицей стилей, и форматирует его для вывода в окно браузера, на принтер, экран проектора или на какое-то другое устройство. Таким образом, обработка проходит два этапа: преобразование дерева документа (XML transform) и форматирование (formatting) дерева, полученного после преобразования. Первый этап — этап преобразования — может быть достаточно сложным и кардинально поменять структуру дерева: изменить уровни вложенности, удалить или добавить новые узлы, создать оглавление, предметный указатель, индекс. Результат преобразования может стать новым самостоятельным документом или даже несколькими документами. Таблица стилей, по которой идет преобразование, содержит правила, состоящие из двух частей: образцов (patterns) для отбора узлов, предназначенных для преобразования, и шаблонов (templates) или конструкторов (sequence constructors) для построения преобразованных узлов.
Второй этап — этап форматирования — абстрагируется от конечного устройства, хотя может выполняться непосредственно в нем, например, в браузере, пейджере, принтере, проекторе. Форматирование формулируется в терминах классов и объектов. Под объектами форматирования FO (formatting objects) понимаются узлы дерева, а под их классами — некие конечные структуры: страницы, абзацы, таблицы, списки. Таблица стилей определяет правила форматирования (formatting properties). По этим правилам строится дерево, но уже не дерево узлов, а дерево геометрических областей (area tree), на которые разбивается документ, и определяются их характеристики: размеры, цвет, шрифт. Вскоре после выхода рекомендации языка XSL стало ясно, что преобразование документа XML — это самостоятельная и независимая задача, которую можно выполнять не только для приведения их к одному стилю, но и для многих других целей. Например, можно преобразовать документ XML в документ HTML, XHTML или даже в документ PDF. Можно обновить документ, изменив некоторые узлы, или разделить его на несколько документов. Поэтому преобразование документов XML было выделено в отдельную область исследования и описано отдельным языком XSLT (XSL Transformation), первая версия которого изложена в рекомендации "XSL Transformation (XSLT). Version 1.0". Эта версия рекомендации, действующая на время написания данной книги, расположена по адресу http://www.w3.org/TR /xslt. Ее русский перевод, сделанный Радиком Усмановым, можно посмотреть в нескольких местах Рунета, например, по адресу http://www.online.ru /it/helpdesk/xslt01.htm. После выделения преобразований в отдельный язык XSLT первоначальная рекомендация языка XSL была переработана, сейчас основной акцент в ней сделан на форматировании, поэтому ее часто называют рекомендацией "XSL-FO". Мы рассмотрим форматирование в следующей главе, а в этой займемся преобразованием документов XML с помощью языка XSLT.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|