Смекни!
smekni.com

на тему: Язык xml. Язык запросов X query (стр. 13 из 14)

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

Отображение XML во Всемирной паутине

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

Без использования CSS или XSL, XML-документ отображается как простой текст в большинстве web-браузеров. Некоторые браузеры, такие как Internet Explorer, Mozilla и Mozilla Firefox отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.

Для применения CSS при отображении в браузере, XML документ должен содержать специальную ссылку на таблицу стилей. Например:

<?xml-stylesheet type="text/css" href="myStyleSheet.css"?>

Это отличается от подхода HTML, где используется элемент <link>.

Для задания XSL трансформации (XSLT) на стороне клиента требуется наличие следующей инструкции в XML:

<?xml-stylesheet type="text/xsl" href="transform.xsl"?>

Стилевые таблицы XSL

Для вывода элементов XML- документа на экран браузера предпочтительней использование специально предназначенного для этого средства - стилевых таблиц XSL (Extensible Stylesheet Language).

Стилевыми таблицами (стилевыми листами) принято называть специальные инструкции, управляющие процессом отображения элемента в окне программы-клиента (например, в окне браузера). Предложенные в качестве рекомендация W3C, каскадные стилевые таблицы (CSS- Cascading Style Sheets) используются Web- разработчиками для оформления Web- страниц. Поддержка CSS наиболее известными на сегодняшний день браузерами Netscape Navigator (начиная с версии 4.0) и Microsoft Explorer (начиная с версии 3.0), позволила использовать стилевые таблицы для решения самого широкого спектра задач - от оформления домашней странички до создания крупного корпоративного Web-узла. Слово каскадные в определении CSS означает возможность объединения отдельных элементов форматирования путем вложенных описаний стиля. Например, атрибуты текста, заданные в тэге <body>, будут распространяться на вложенные тэги до тех пор, пока в них не встретятся стилевые описания, отменяющие или дополняющие текущие параметры. Таким образом, использование таблиц CSS в HTML было весьма эффективно - отпадала необходимость явного задания тэгов форматирования для каждого из элементов документа.

Являясь очень мощным средством оформления HTML- страниц, CSS- таблицы, тем не менее, не могут применяться в XML-документах, т.к. набор тэгов в этом языке не ограничен и использование статических ссылок на форматируемые объекты документа в этом случае невозможно.

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

Некоторые его отличия от CSS:

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

Во-вторых, языком, лежащем в основе XSL, является XML, а это означает, что XSL более гибок, универсален и у разработчиков появляется возможность использования средства для контроля за корректностью составления таких стилевых списков (используя DTD или схемы данных)

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

В настоящий момент язык XSL находится на стадии разработки в W3C и в будущем, видимо, станет частью стандарта XML. Это означает, что использование этого механизма является наиболее перспективным способом оформления XML- документов. В текущем рабочем варианте W3C, XSL рассматривается не только как язык разметки, определяющий стилевые таблицы - в него заложены средства, необходимые для выполнения действий по фильтрации информации, выводимой в окно клиента, поиска элементов, сложного поиска, основанного на зависимостях между элементами и т.д. На сегодняшний день единственным браузером, поддерживающим некоторые из этих возможностей, является бета-версия Internet Explorer 5.0, однако в самом ближайшем будущем, безусловно, XSL будет использоваться также широко, как сегодня стандартные тэги HTML.

Словари XML

Так как XML является достаточно абстрактным языком, были разработаны словари XML. Словарь позволяет разработчикам договориться о некотором конечном наборе имен тегов и атрибутов этих тегов. Одним из первых словарей появился XHTML, который понимают большинство браузеров. XHTML часто используют для хранения и редактирования контента в CMS.

Были созданы более специализированные словари, например протокол передачи данных SOAP, который не является человеко-ориентированным и достаточно трудно читаем. Есть коммерческие словари, такие как xCBL и cXML которые используются для передачи данных, ориентированных на торговую деятельность, эти словари включают в себя описание системы заказов, поставщиков, продуктов и прочее. Обычно, описывая какой-либо документ, человек для себя придумывает некоторый словарь, который потом описывается посредством DTD или просто объясняется «на пальцах» заинтересованным лицам.

Одним из интересных словарей, получивших широкое распространение, является FB2 — словарь, описывающий формат книги, со всевозможными сносками, цитатами и даже картинками.

Приложение

Пример XML-документа

<?xml version="1.0"?>

<journal>

<title>Very Useful Journal</title>

<contacts>

<address>sdsds</address>

<tel>8-3232-121212</tel>

<tel>8-3232-121212</tel>

<email>j@j.ru</email>

<url>www.j.ru</url>

</contacts>

<issues-list>

<issue index="2">

<title>XML today</title>

<date>12.09.98</date>

<about>XML</about>

<home-url>www.j.ru/issues/</home-url>

<articles>

<article ID="3">

<title>Issue overview</title>

<url>/article1</url>

<hotkeys>

<hotkey>language</hotkey>

<hotkey>marckup</hotkey>

<hotkey>hypertext</hotkey>

</hotkeys>

<article-finished/>

</article>

<article>

<title>Latest reviews</title>

<url>/article2</url>

<author ID="3"/>

<hotkeys>

<hotkey/>

</hotkeys>

</article>

<article ID="4">

<title/>

<url/>

<hotkeys/>

</article>

</articles>

</issue>

</issues-list>

<authors-list>

<author ID="1">

<firstname>Ivan</firstname>

<lastname>Petrov</lastname>

<email>vanya@r.ru</email>

</author>

<author ID="3">

<firstname>Petr</firstname>

<lastname>Ivanov</lastname>

<email>petr@r.ru</email>

</author>

<author ID="4">

<firstname>Sidor</firstname>

<lastname>Sidorov</lastname>

<email>sidor@r.ru</email>

</author>

</authors-list>

</journal>

DTD-определение для XML-документа

<?xml version="1.0"?>

<!ENTITY idattr 'id ID #IMPLIED'>

<!ENTITY opt 'title?,date,about'>

<!ENTITY cont 'tel*,url*,email*'>

<!ELEMENT title (PCDATA)>

<!ELEMENT firstname (PCDATA)>

<!ELEMENT lastname (PCDATA)>

<!ELEMENT email (PCDATA)>

<!ELEMENT url (PCDATA)>

<!ELEMENT tel (PCDATA)>

<!ELEMENT address (PCDATA)>

<!ELEMENT fax (PCDATA)>

<!ELEMENT date (PCDATA)>

<!ELEMENT home-url (PCDATA)>

<!ELEMENT article-url (PCDATA)>

<!ELEMENT hotkey (PCDATA)>

<!ELEMENT article-finished EMPTY>

<!ELEMENT contents ANY>

<!ELEMENT hotkeys (PCDATA| hotkey)>

<!ELEMENT author (PCDATA| firstname?|lastname?|cont)>

<!ATTLIST author

id ID #REQUIRED>

<!ELEMENT authors (PCDATA| author*)>

<!ELEMENT article (opt,author,article-url,hotkeys*,contents*,article-finished)>

<!ATTLIST article

id ID #REQUIRED>

<!ELEMENT articles (article)>

<!ELEMENT issue (opt,home-url?,articles*)>

<!ATTLIST issue

id ID #REQUIRED

index CDATA #REQUIRED>

<!ELEMENT issues-list (PCDATA| issue*)*>

<!ELEMENT contacts (address, cont)>

<!ELEMENT journal (title?,contacts?,isues-list,authors-list)>

<!ATTLIST journal

id ID #REQUIRED

src CDATA #IMPLIED>

Заключение

XML-лихорадка затронула многие области современных информационных систем. Наиболее активно развиваются следующие направления XML-эволюции: системы управления контентом; информационные серверы и базы данных; инструментарий для проектирования и создания сайтов; публичные форматы обмена финансовой информацией; системы управления порталами; системы управления торговыми площадками.