4344

Расширенный язык разметки XML

Реферат

Информатика, кибернетика и программирование

Расширенный язык разметки XML Общие сведения об XML Особенности XML Стандарты XML Структура и элементы языка разметки XML Таблицы стилей Расширяемый язык создания ссылок Спецификация XForms 1.0 Области использования языка XML Общие сведения об XML К...

Русский

2012-11-16

244.5 KB

75 чел.

Расширенный язык разметки XML

Общие сведения об XML

Особенности XML

Стандарты XML

Структура и элементы языка разметки XML

Таблицы стилей

Расширяемый язык создания ссылок

Спецификация XForms 1.0

Области использования языка XML

Общие сведения об XML

Консорциум World Wide Web (W3C, http://www.w3.org), упростив SGML для использования в Web, предложил расширяемый язык разметки XML (Extensible Markup Language - рекомендация 1998 г.). XML представляет собой подмножество SGML, причем любой действительный документ XML является действительным документом SGML. Как и SGML, XML - это метаязык, определяющий другие языки разметки для специфических целей.

XML используется для разметки стандартных документов во многом так же, как HTML. Однако XML ориентирован на работу со структурированными данными, такими, как результаты запроса, метаинформация о Web-узле или элементы и тип схемы. Документ XML внешне похож на HTML. Он также состоит из текстовых фрагментов, аннотированных заключенными в угловые скобки тегами. XML - это язык разметки, описывающий целый класс объектов данных, называемых XML- документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. То есть сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания. Язык XML – это универсальный формат для структуризации документов и данных, применяемый для обмена информацией, позволяя различным компьютерным системам "общаться", язык XML дает возможность обмениваться сведениями о данных, существенно повышая эффективность. По прогнозам экспертов, XML в будущем станет основой взаимоотношений между партнерами.

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

Для создания XML документа в простейшем случае не понадобится ничего кроме обычного текстового редактора. При создании собственного языка разметки можно придумывать любые названия элементов, (почти любые, т.к. список допустимых символов ограничен), соответствующих контексту их использования. Таким образом, у разработчиков появляется уникальная возможность определять собственные теги, позволяющие им наиболее эффективно определять данные, содержащиеся в документе. Автор документа создает его структуру, строит необходимые связи между элементами, используя, те теги, которые удовлетворяют его требованиям и добивается такого типа разметки, которое необходимо ему для выполнения операций просмотра, поиска, анализа документа.

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

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

Можно выделить множество задач, связанных с созданием и обработкой структурированной информации, для решения которых может использоваться XML:

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

Язык XML позволяет описывать данные произвольного типа и используется для представления специализированной информации, например химических, математических, физических формул, медицинских рецептов, нотных записей, и т.д. Это означает, что XML может служить мощным дополнением к HTML для распространения в Web "нестандартной" информации.

XML может использоваться в обычных приложениях для хранения и обработки структурированных данных в едином формате.

Особенности XML

Характерными особенностями языка XML являются:

  •  Разметка XML-файла позволяет описывать его содержание.
  •  XML-документ способен нести информацию о включенном в него материале. Он содержит информацию только о структуре и смысле документа, оставляя форматирование элементов таблице стилей (Extensible Stylesheet Language - XSL).
  •  Сведения о содержании файла могут быть затем повторно использованы на различных компьютерах и в различных приложениях.
  •  Способность объединять несколько XML-документов в один большой документ.
  •  Для XML не обязательно определение типа документа.
  •  Теги XML можно применять для управления поиском информации, в том числе и в глобальных сетях.
  •  XML предоставляет пользователю возможность определять свой собственный способ кодирования информации с использованием языка разметки.
  •  XML может употребляться в качестве формата обмена для протоколов транзакций.

В общем случае XML- документы должны удовлетворять следующим требованиям:

  •  В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация
  •  Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь своего закрывающего "напарника", т.е., в отличие от HTML, нельзя опускать закрывающие тэги
  •  В XML учитывается регистр символов
  •  Все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки
  •  Вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов
  •  Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML, как данные, и поэтому учитываются все символы форматирования (т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML)

Если XML- документ не нарушает приведенные правила, то он называется формально-правильным и все анализаторы, предназначенные для разбора XML- документов, смогут работать с ним корректно. На сегодняшний день существует два способа контроля правильности XML- документа: DTD - определения(Document Type Definition) и схемы данных(XML Schema).

Корпорация Microsoft расширила поддержку XML для компонентов Office 2003 Enterprise Edition; кроме того, в состав данной редакции пакета включено новое приложение - InfoPath, которое позволяет создавать XML-документы и формы. Word, Excel, Visio и другие приложения пакета позволят импортировать XML- схемы и данные для манипуляций с ними (пересчета, создания отчетов, построения графиков) и заполнения несложных форм; элементы схем можно будет переносить в рабочее пространство приложения буксировкой. Схемы и данные затем можно будет сохранить в формате XML или передать в другие приложения посредством Web-служб или технологии Active Data Objects. Все эти возможности направлены не столько на ознакомление с XML нынешнего рядового пользователя Office, сколько на подготовку Office к неизбежному расширению поддержки XML в серверных продуктах Microsoft.

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

XML позволяет:

отделить данные от их представления и тем самым преодолеть хаотичность HTML;

упорядочить данные в деревья и списки, структурировать их и порождать из них объектные модели;

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

XML поддерживается многими инструментами, разработанными известными фирмами, такими как IBM, MICROSOFT, Oracle, Sun, др. При этом используются технологии Java (JSP), C/C++, Python, Perl, PHP, MS.Net (ASP). Фирма IBM разработала XML for Java parser — мощный высокоскоростной XML-анализатор; WebSphere — кросс-платформный сервер приложений на Java, расширяющий возможности наиболее популярных Web-серверов, таких, как Apache, IIS, Domino; XMI Toolkit — средство преобразования UML-моделей, построенных с помощью современных CASE-средств типа Rational Rose, в XML- и DTD-структуры; LotusXSL Processor — позволяющий задавать для XML-документов стилевые таблицы и преобразовывать XML-данные в стандартный HTML для поддержки браузеров, не умеющих распознавать язык XML. LotusXSL Processor существует в виде набора Java-классов, методы которых можно вызывать из любых Java-программ, агентов или сервлетов.

XML документы создаются как вручную, так и с помощью программных средств, специальных редакторов или конвертированием из БД. Очевидно, что ручной способ создания структурированной информации не может применяться для наполнения больших информационных узлов. Для этого существуют специальные средства разработки. Для создания XML файлов можно использовать любые XML редакторы (XMLPad, XMLSpy, Xalan, XMetal, др.). Одним их самых простых и удобных и бесплатных является редактор XMLPad (msdn.microsoft.com/xml/notepad/intro.asp). В офисе XP имеются возможности создавать и трансформировать XML файлы.

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

Анализаторы (parsers) играют роль XML-процессора. Они загружают XML-файл и другие необходимые файлы, проверяют, является ли XML-документ правильным или состоятельным (в зависимости от типа анализатора).

Существуют два основных типа анализатора:

1)Не верифицирующие анализаторы (non-validating parsers) - тестируют, является ли документ правильным, т.е. удовлетворяющим трем условиям:

  •  в документе может содержаться один или более элементов;
  •  документ должен включать один элемент с уникальным именем, никакая часть которого не содержится внутри никакого другого элемента - корневой элемент (root element);
  •  все элементы внутри корневого элемента должны быть вложены правильно (имеют размер 30-40 Кбайт).

2)Верифицирующие анализаторы (validating parsers) - проверяют состоятельность документа, используя DTD. Они также строят структуру дерева документа, которая может быть передана приложению.

Просмотр XML-файлов. Вплоть до четвертой версии основные производители браузеров (Microsoft, Netscape, Opera Software и др.) не обладали функциональной возможностью просмотра XML-документов (подобно просмотру HTML-публикации). Нельзя просто открыть XML-документ браузером и просмотреть его содержание. Поэтому в настоящее время XML-документ встраивается в HTML-публикацию.

Рассмотрим преобразование XML-документа в HTML-документ для просмотра в обычном браузере. Различают статическое и динамическое преобразование.

Статическое преобразование осуществляется до того, как файл попадает на Web-сервер. Оно включает использование программы, которая соединяет XML-файл с таблицей стилей и создает HTML-файл, который в дальнейшем просматривается в браузере. Именно HTML-файл помещается на Web-сервер для обслуживания запросов. Примером такой программы является Cormorand XML Paser (http://webdev.wrox.co.uk/books/1525 ). Однако статическое преобразование не позволяет использовать все возможности XML.

Динамическое преобразование XML-файлов позволяет предоставлять разным пользователям различные страницы. Существует несколько способов динамического преобразования, которые используют следующие программы для преобразования файлов с расширениями *.xml, *. css/xsl в HTML: MSXSL Command Line Utility; ActiveX Control; Java Applet; программа JavaScript.

В технологии использования XML можно выделить три уровня:

уровень приложений, написанных на любом объектно-ориентированном языке программирования;

уровень интерпретации содержимого XML-объектов (XML-Parser);

уровень информационного хранилища, из которого данные преобразуются в XML и наоборот.

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

XML позволяет также осуществлять контроль за корректностью данных, хранящихся в документах, производить проверку иерархических соотношений внутри документа и устанавливать единый стандарт на структуру документов, содержимым которых могут быть самые различные данные. Это означает, что его можно использовать при построении сложных информационных систем, в которых очень важным является вопрос обмена информацией между различными приложениями, работающими в одной системе. XML документы служат промежуточным форматом для передачи информации от одного приложения к другому (результат запроса к базе данных), содержимое генерируется и обрабатывается программами автоматически. Создавая механизм обмена информацией можно избавить себя в будущем от многих проблем, связанных с несовместимостью используемых различными компонентами форматов данных. Еще одним достоинством XML является возможность использования его в качестве универсального языка запросов к хранилищам информации.

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

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

Стандарты XML

Функциональность XML определяется целым комплексом взаимосвязанных стандартов. Эти стандарты позволяют определять множество допустимых в XML - документе тегов разметки и их атрибутов, ассоциируя с ними по умолчанию некоторую семантику это стандарт пространства имен XML - Namespaces in XML; обогащают имеющиеся в языке возможности описания с помощью DTD структуры XML-документов, стандарт спецификаций схемы - XML Schema; позволяют определять гиперсвязи между документами и/или их фрагментами - стандарты языка указателей и языка гиперссылок - XPointer и XLink; дают возможность описывать семантику XML-документов с различной степенью формализации (стандарт среды определения ресурсов - RDF); управлять представлением XML-документов на стороне клиента - стандарты каскадных таблиц стилей CSS и расширяемого языка таблиц стилей XSL; описывать трансформации XML-документов - стандарт языка описания трансформаций XML-документов - XSLT - специальная часть стандарта XSL. Список стандартных языков на основе XML представлен в табл.1.

Таблица 1

Стандарты XML

Название стандарта

Полное наименование

Namespace in XML

Пространство имен XML

XQL

Язык запросов к источникам данных XML.

DOM

Объектная модель

Canonical XML

Метод, позволяющий устанавливать эквивалентность двух XML-документов

XInclude

Модель и синтаксис для описания слияния XML-документов

XML Fragment Interchange

Описание контекста фрагментов XML-документа

XML Schema

Спецификация схемы

XML Information Set (Infoset)

Абстрактное описание данных, которые составляют XML-документ

Xlink

Гиперсвязи между документами - язык гиперссылок

XPointer

Гиперсвязи между фрагментами документа - языка указателей

XPath

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

XSLT

Язык описания трансформаций XML-документов

XSL

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

XMLSignature

Электронная подпись

XHTML

Динамический html

CSS

Каскадные таблицы стилей

SOAP

Упрощенный протокол доступа к объектам

Simple API for XML (SAX)

Управляемый событиями интерфейс прикладного программирования

XML Database API (XAPI)

Нейтральный по отношению к поставщику и языку интерфейс прикладного программирования для баз данных XML

XUpdate

Определяет обновленные функциональные возможности для модификации данных в XML-документах

Создан стандарт объектной модели DOM для XML- и HTML-документов, определяющий функции интерфейса прикладного программирования для их обработки.

Особое место в рассматриваемом комплексе стандартов занимает стандарт XHTML. Он предоставляет один из возможных путей обеспечения преемственности развития среды Web, позволяя использовать на платформе XML информационные ресурсы, накопленные в рамках технологий HTML. Этот стандарт поддерживает средствами XML функциональность текущей версии языка HTML.

Стандарт XML Information Set (Infoset) представляет абстрактное описание тех данных, которые составляют XML-документ. На него опирается спецификация XML. Стандарт XPath определяет понятие фрагмента XML-документа, используемое в языках XPointer и XSLT. В стандарте XML Inclusions (XInclude) представлены модель и синтаксис для описания слияния XML-документов. Стандарт XML Fragment Interchange позволяет описывать контекст фрагментов XML-документа и благодаря этому просматривать и редактировать их вне полного текста документа. Стандарт Canonical XML, в котором предлагается метод, позволяющий устанавливать эквивалентность двух XML-документов с различным синтаксическим представлением. Эта возможность существенна, в частности, для использования цифровой подписи.

С помощью SAX разработчик регистрирует код обработчика для определенных событий, которые запускаются различными частями разметки XML (как, например, начальный и конечный теги, текст, сущности). Затем парсер, опираясь на входной XML, посылает поток этих событий, которые поочередно обрабатываются кодом обработчика.

Спецификация XAPI охватывает вопросы хранения, извлечения, модификации и задания запросов к данным в базах данных XML, а также предусматривает поддержку управления транзакциями. Спецификация XAPI широко используется в инструментах управления «родными» базами данных XML, особенно с открытым кодом.

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

XQL. Обычно схема взаимодействия между серверами приложений и базами данных зависит от конкретной СУБД и диалекта SQL, используемого для доступа к данным. Если же результаты запроса будут представлены в некотором универсальном текстовом формате, то звено СУБД, как таковое, станет "прозрачным" для приложения. Кроме того, предложена спецификация нового языка запросов к базам данных XQL, который в будущем может стать альтернативой SQL. XQL — это в значительной степени язык программирования, представляющий собой подмножество XPath. Спецификации XQuery определяются в многочисленных редакциях, в которых описывается семантика, синтаксис и библиотеки базовых функций. SQL/XML.

Информация, содержащаяся в XML-документах, может изменяться, передаваться на машину клиента и обновляться по частям. Спецификации XLink и Xpointer позволят ссылаться на отдельные элементы документа, c учетом их вложенности и значений атрибутов.

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

Спецификация Data Center Markup Language (DCML) Framework Specification 1.0 – является подмножеством XML, призванным стандартизовать описание центров обработки данных. Спецификация определяет способы "инвентаризации" компонентов центра (серверов, программной инфраструктуры, сетевых устройств, систем хранения), описания их взаимодействия друг с другом и составления политик такого взаимодействия. DCML призван стать универсальным языком "общения" для систем распределения ресурсов, конфигурирования, установки обновлений, мониторинга и управления. Применение DCML позволит строить самоконфигурирующиеся центры обработки данных по готовым моделям, а также автоматизировать включение/отключение компонентов действующего центра по требованию и уведомление систем управления центром об изменениях его конфигурации XML документы могут служить промежуточным форматом для передачи информации от одного приложения к другому (например, как результат запроса к базе данных), поэтому их содержимое иногда генерируется и обрабатывается программами автоматически. XML документы создаются как  вручную, так и с помощью программных средств, специальных редакторов или конвертированием из БД.

Тип XMLTYPE появился в Oracle в версии 9.0. До этого наиболее подходящим для хранения документов в формате XML был тип CLOB (и менее подходящим – тип VARCHAR2, ограниченный максимумом 4000 знаков). Сам по себе объектный, новый тип XMLTYPE технически может храниться либо по-прежнему в виде CLOB, либо в виде объекта (начиная с версии 9.2). И еще одно замечание: несмотря на то, что технологии XML и Java идут «рука об руку», рамки приводимых ниже примеров не требуют от БД установленных возможностей Java.

Структура и элементы языка разметки XML

Язык разметки XML снимает ограничения на используемый набор тегов. Автору публикации предоставляется возможность вводить любые имена, которые могут быть для него полезными. Эта возможность является ключевой для активного манипулирования данными. В качестве примера в табл.2 приведен один и тот же список имен и адресов, написанных на языках HTML и XML.

В фрагменте, записанном в HTML, теги размещают данные на экране программы просмотра (левая колонка). В случае использования языка XML фрагмент оказывается более масштабным. Однако он несет в себе информацию о содержании и нахождении полей данных.

В XML теги не могут накладываться, как в HTML (что не поощряется, но допускается большинством программ просмотра HTML). Однако они могут быть вложены друг в друга. На самом деле, вложение даже поощряется как способ создания иерархии данных (подчиненные или равноправные отношения). Как видно из приведенной таблицы, такие элементы, как <first_name> и <e_mail>, содержат данные, в то время как другие (<address>) присутствуют только в целях структурирования.

Таблица 2

Сравнение языков HTML и XML

Фрагмент HTML (список имен и адресов)

Фрагмент XML (список имен и адресов)

<H1>Editor Contacts</H1>

<H2>Имя: Джонатан Эйнджел</H2>

<P>Должность: старший редактор</P>

<P>Издание: Network Magazine</P>

<P>Улица и дом: Гариссона, 600</P>

<P>Город: Сан-Франциско</P>

<P>Штат: Kалифорния</P><

P>Индекс: 94107</P>

<P>Электронная почта: jangel@mfi.com</P>

<?xml version=""1.0""?>

<editor_contacts>

<editor>

<first_name>Джонатан</first_name>

<last_name>Эйнджел</last_name>

 <title>старший редактор</title>

 <publication>Network Magazine</publication>

 <address>

 <street>Гариссона, 600</street>

 <city>Сан-Франциско</city>

 <state>Kалифорния</state>

 <zip>94107</zip>

 </address>

<e_mail>jangel@mfi.com</e_mail>

</editor>

</editor_contacts>

Теги начала и конца элемента являются основными используемыми в XML разметками, но не единственными. Например, элементам могут быть присвоены определенные атрибуты. Эта возможность аналогична имеющейся в HTML, где, например, элементу <table> может быть присвоен атрибут align="center". В XML элемент может иметь один или более связанных с ним атрибутов. Причем при составлении документа можно предложить их столько, сколько потребует логика представления публикации, например, <publication topic="networking" circulation="controlled">.

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

Типы документов. Для этих целей используются определения типов документов (Document Type Definition - DTD). Хранимые в начале файла XML или в виде файла *.DTD, эти определения описывают информационную структуру документа. DTD перечисляют возможные имена элементов, определяют имеющиеся атрибуты для каждого типа элементов и описывают сочетаемость одних элементов с другими.

Каждая строка в определении типа документа может содержать декларацию типа элемента, именовать элемент и определять тип данных, которые элемент может содержать. Она имеет следующий вид:

<ELEMENT имя_элемента

(тип_данных)>

Например, декларация <ELEMENT publication (#PCDATA)> определяет элемент с именем publication, содержащий символьные данные (т. е. текст). Декларация <ELEMENT special_report (article_1, article_2, article_3)> определяет элемент с именем special_report, содержащий подэлементы article_1, article_2 и article_3 в указанном порядке, например:

<special_report>

<article_1>XML:

время пришло</article_1>

<article_2>XML - язык

разметки</article_2>

<article_3>Управление сетями и

системами с помощью XML</article_3>

</special_report>

После определения элементов DTD могут также определять атрибуты с помощью команды ATTLIST. Она указывает элемент, именует связанный с ним атрибут и затем описывает его допустимые значения.

ATTLIST позволяет управлять атрибутами и многими другими способами: задавать значения по умолчанию, подавлять пробелы и т. д. DTD могут также содержать декларации ENTITY, где определяются ссылки на объекты, а также декларации NOTATION, указывающие, какие операции проводятся с двоичными файлами не в формате XML.

Ограничение DTD состоит в том, что они не допускают типизации данных, т. е. ограничивают данные конкретным форматом (таким, как дата, целое число или число с плавающей точкой). DTD используют иной синтаксис, нежели XML, и не всегда интуитивно понятны. Сегодня ведется работа по созданию более мощных и простых в использовании схем XML.

К документам XML могут быть применены термины «правильно составленный» (well-formed) и «действительный» (valid). Документ XML считается правильно составленным, если для каждого открывающего тега имеется соответствующий закрывающий тег, а накладывающиеся теги отсутствуют. Документ является действительным, если он содержит DTD и соответствует его правилам.

Значительный потенциал XML в качестве промежуточного программного обеспечения подкрепляется объектной моделью документа (Document Object Model - DOM), первая версия которого была принята в качестве рекомендации W3C в октябре 1998 г. DOM возникла как спецификация для обеспечения переносимости сценариев JavaScript и программ на Java между Web-браузерами и позднее эволюционировала в API для документов HTML и XML. Она определяет логическую структуру документов, способы доступа и манипулирования ими. Программисты могут создавать документы, управлять их структурой и добавлять, модифицировать или удалять элементы и содержимое.

DOM не оказывает никакого влияния на то, как следует писать документы XML и HTML. Вместо определения набора структур данных она представляет документы в соответствии с объектной моделью, такой, как древовидная структура, состоящая из узлов. Нет никакой необходимости использовать DOM для просмотра документов XML из браузера. Она применяется, когда по сценарию требуется изменить документ XML или обратиться к его данным. На сервере DOM может применяться для анализа поступивших от клиента файлов XML и соответствующей реакции на них. Кроме того, программистами DOM может использоваться в качестве промежуточного уровня для преобразования из формата базы данных в XML. При правильной реализации интерфейсов DOM пользователям не потребуется знать, что данные хранятся в каком-либо ином формате, а не в XML.

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

Таблицы стилей

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

  •  Каскадные таблицы стилей CSS (Cascade Style Sheets). При наличии нескольких таблиц стилей из них обычно формируется каскад, т. е. иерархия со свойствами, взятыми из всех таблиц.
  •  Расширяемый язык таблиц стилей XSL (Extensible Style Sheets). Этот язык разрешает пользователю создавать свои собственные форматирующие теги и свойства.
  •  Язык семантики и спецификаций стиля документа DSSSL (Document Semantic and Style Specification Language).
  •  XS, известный как DSSSL-0.

Наибольший интерес представляют CSS и XSL. В табл.3 приведены известные в литературе сравнительные характеристики указанных выше таблиц стилей.

Таблица 3

Сравнительные характеристики таблиц стилей

Использование

CSS

XSL

Может быть использован вместе с HTML

Да

Нет

Может быть использован вместе с XML

Да

Да

Является языком преобразования

Нет

Да

Синтаксис

CSS

XML

Пользующиеся популярностью в Web каскадные таблицы стилей CSS позволяют изменять форматирование известных тегов HTML и определять новые теги. В частности, таблицы стилей CSS используются для стандартизации представления типичных элементов, таких, как <H1>, и для введения новых, таких, как врезки. CSS могут служить и для форматирования документов XML.

Отличительной особенностью языка XML является то, что он представляет формат документа (для возможных манипуляций) в виде древовидной структуры. Как известно, CSS не способен взаимодействовать с деревом структуры и может только форматировать документы XML. Можно вывести документ на экран в любом формате, но нельзя осуществить какое-либо избирательное представление его данных без применения языка сценариев. Более того, для использования CSS пользователю придется изучить еще один синтаксис.

Эти ограничения привели к созданию Extensible Stylesheet Language (XSL). XSL можно рассматривать как приложение XML со своей собственной семантикой (фиксированным набором элементов). Следовательно, оно может быть использовано для создания таблиц стилей (шаблонов документов), понятных любой программе просмотра XML.

Наиболее важная особенность XML и сопутствующей ему технологии расширяемого языка таблицы стилей (XSL) состоит в отделении форматирования от информационного наполнения. Этот подход подобен работе с таблицами стилей в MS Word.

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

Рассмотрим пример простой таблицы стилей для языка XML:

<?xml version = "1.0" ?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<!-декларация, что документ является таблицей стилей и что он связан с xsl: namespace ->

<xsl:template match="/">

<!-Применить шаблон ко всему в исходном документе XML ->

<HTML>

<BODY>

<H1>Editor Contacts</H1>

<xsl:for-each select="editor_contacts/editor">

<H2>Name: <xsl:value-of select="first_name">

<xsl:value-of select="last_name"/></H2>

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

<P>Publication: <xsl:value-of select="publication"/></P>

<P>Street Address: <xsl:value-of select="address/street"/></P>

<P>City: <xsl:value-of select="address/city"/></P>

<P>State: <xsl:value-of select="address/state"/></P>

<P>Zip: <xsl:value-of select="address/zip"/></P>

<P>E-Mail: <xsl:value-of select="e_mail"/></P>

</xsl:for-each>

</BODY>

</HTML>

</xsl:template>

</xsl:stylesheet>

При сохранении файла на жестком диске под именем EDITORS.XSL (или любым другим) этот шаблон будет применен к EDITORS.XML при добавлении в него следующей строки после первой:

<?xml-stylesheet

type="text/xsl" href=

"editors.xsl" ?>

В конечном итоге текст на экране браузера будет выглядеть точно так же, как представленный ранее фрагмент HTML. Однако XSL может действовать как функция текстового процессора merge-print. Определенный как неотъемлемая часть пространства имен XSL, элемент xsl:for-each сообщает процессору о том, что он должен циклически обрабатывать все узлы в исходном файле XML. Атрибут xsl:value-of вставляет значение узла XML в элемент HTML. Таким образом, если придется вернуться к EDITORS.XML и вставить десятки или сотни контактных адресов, то они без каких-либо изменений будут отображаться в таблице стилей. Благодаря тому, что информацию о форматировании требуется передать только один раз, XML и XSL экономят пропускную способность.

Таблицы стилей XSL имитируют функцию merge-print еще и в том, что они позволяют избирательно опускать поля данных при отображении. Кроме того, вывод может быть отсортирован по любому конкретному полю данных. Для сортировки базы данных контактных адресов по фамилии редактора в прямом алфавитном порядке элемент xsl:for-each нужно изменить следующим образом:

<xsl:for-each select=

"editor_contacts/editor"

order-by="+last_name">

XSL способен также осуществлять условную трансформацию вывода в зависимости от значений различных элементов или атрибутов. Более того, он позволяет запрашивать данные с использованием множества разнообразных операторов шаблонов, символов подстановки, фильтров, булевых операторов и выражений множества. XML и XSL не предназначены для замены SQL, к тому же вряд ли целесообразно хранить базы данных непосредственно в формате XML. Однако XSL открывает возможность разнообразного поиска по данным после их загрузки в браузер. В этом случае не понадобится использовать для поиска информации встроенную команду браузера Поиск (Find).

Другими видами разметки XML являются комментарии - они выделяются точно так же, как в HTML и инструкции по обработке. Инструкциям по обработке предшествует знак вопроса. Они описывают, что именно программа разбора должна использовать для интерпретации конкретного документа или его раздела. Например, инструкция <?xml version = 1.0"?> сообщает программе просмотра XML, что обрабатываемый документ действительно составлен с помощью XML. С другой стороны, инструкция <?rtf \page?> служит для вызова программы просмотра RTF и вставки символа конца страницы.

Разделы символьных данных - это части документа, рассматриваемые исключительно как символьные данные, не подвергающиеся просмотру. Они выглядят следующим образом:

<[CDATA[

Этот текст, даже если он содержит элементы кода HTML, такие, как <B>жирный шрифт</B> или <H1>заголовок</H1>, не подвергается грамматическому анализу.

Расширяемый язык создания ссылок

Первоначально язык создания ссылок был известен как XLink, затем XML-Link, а текущим рабочим названием для языков создания ссылок, находящихся в процессе разработки, является термин расширяемый язык создания ссылок, XLL (Extensible Linking Language).

Используя XML, можно определять собственные ссылочные элементы; использовать любой элемент в качестве ссылочного; создавать двунаправленные ссылки с отношениями типа «один ко многим» и «многие к одному»; определять способ обхода (то, в каком порядке пользователь будет продвигаться по ссылкам); создавать базы ссылок для определения и управления ссылками вне документов, к которым они относятся.

Можно также группировать ссылки; делать ссылку, адресатом которой является та часть документа, откуда исходит эта ссылка.

Существует два основных типа ссылок, различаемых по способу хранения и вызову:

  •  встроенные ссылки (inline links). Это ссылки, которые определяются в том же месте, где они инициируются ;
  •  внешние ссылки (out-of-line links), которые хранятся во вспомогательном файле в базе данных ссылок;
  •  X-Ссылки (XLinks) используются для организации ссылок из отдельно взятого XML-документа на другие XML-документы;
  •  X-Указатели (Xpointers) служат для адресации внутренней структуры XML-документа, обеспечивают ссылки на элементы, строки символов и другие части XML-публикаций.

Организация ссылок не включена в спецификацию XML, напротив, существуют две отдельные спецификации создания ссылок в XML.

Документы XML могут содержать ссылки на другие объекты. Ссылки представляют собой строку, начинающуюся с амперсанта и заканчивающуюся точкой с запятой. Эти ссылки позволяют, в частности, вставить в документ специальные символы, включение которых могло бы нарушить визуализацию публикации в программе просмотра. Например, чтобы поместить в документ знак «меньше чем» (<) необходимо вставить ссылку <, а чтобы вставить сам амперсант - ссылку , и т. д. Это подобно приемам, используемым в HTML. Однако ссылки XML даются на определенные автором разделы текста в данном или в другом документе.

Например, ссылки на объекты позволяют применить объектно-ориентированный подход при создании журнальной статьи:

<article>

introduction;

body;

sidebar;

conclusion;

resources;

</article>

Непременное условие успеха технологии Web лежит в ее способности связывать ресурсы. С учетом того, что XML может быть преобразован в HTML для последующего просмотра, синтаксис, который, используется в HTML для задания связей, может быть перенесен и в XML. Однако, связывание в HTML имеет ряд ограничений. Универсальные локаторы ресурсов (URL) указывают только на один документ. Большая глубина детализации, например, третье предложение в семнадцатом параграфе, невозможно, если, конечно, в рассматриваемом документе заранее не расставлены поименованные указатели (anchor). Но для этого необходимо иметь доступ к документу, на который требуется указывать.

XLink - это технология, которая позволяет решить указанные проблемы и установить более сложные связи между документами. XLink предназначен исключительно для работы с документами XML. Связывание в XML состоит из двух частей: XLink и XPointers. XLink (XML Linking Language, Расширяемый язык соединений) определяет, как один документ связывается с другим. XPointers (XML Pointer Language, Расширяемый язык указателей) описывает, как общаются отдельные части документов. XLink указывает на универсальный локатор ресурса (URI), который устанавливает отдельный ресурс.

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

  <?xml version="1.0"?>

  <artistinfo>

   <surname>Modigliani</surname>

   <name>Amadeo</name>

   <born>July 12, 1884</born><died>January 24, 1920</died>

   <biography>

     <p>In 1906, Modigliani settled in Paris, where ...</p>

   </biography>

  </artistinfo>

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

  <?xml version="1.0"?>

  <period>

   <city>Paris</city>

   <country>France<country>

   <timeframe begin="1900" end="1920"/>

   <title>Paris in the early 20th century (up to the twenties)</title>

   <end>Amadeo</end>

   <description>

     <p>During this period, Russian, Italian, ...</p>

   </description>

  </period>

Выполнение поставленного выше задания (то есть создание файла, который устанавливает связь между художником и его творческим наследием и этапами творческого пути) является задачей, которую невозможно решить с помощью "HTML-ных" тегов <a> и атрибутов "img". Это объясняется целым рядом причин:

  •  Отдельный художник оставил после себя не одно "наследие" (такие связи направляются от одного ресурса к нескольким).
  •  Творческий путь отдельного художника распадается на несколько этапов.
  •  Сама ссылка должна быть семантически значимой. (Творческое наследие не есть то же самое, что и характеристика определенного периода, и мы хотим выразить в нашем документе это различие!)

В XLink используются два типа связующих элементов (linking elements): simple (простой) - подобный "a" и "img" в HTML - и extended (расширенный). Однако, XLink не требует задания какого-либо определенного "корректного" имени для связей; наоборот, эта технология позволяет решить, какие элементы будут использоваться в качестве связей. Достигается это с помощью атрибута XLink type (тип). Приведенный ниже фрагмент иллюстрирует сказанное:

  <environment xlink:type="extended">

      <!-- Это расширенная связь -->

      <!-- Здесь должны быть включены/указаны задействованные ресурсы -->

  </environment>

После того, как мы объявили расширенную связь, необходимо указать задействованные ресурсы. Поскольку информация о художнике и его жизни хранится вне нашего документа (и, следовательно, мы не можем ею управлять), чтобы ссылаться на нее, воспользуемся элементами XLink, атрибуты которых имеют значение locator. Напомним еще раз, что подход заключается не в задании имени тега, а в том, чтобы с помощью атрибутов XLink позволить помечать элементы как элементы типа locator:

  <environment xmlns:xlink="http://www.w3.org/1999/xlink"

      xlink:type="extended">

      <!-- Ресурсы, задействованные в нашей связи, - художник -->

      <!-- он сам, его наследие и периоды творчества -->

      <artist    xlink:type="locator" xlink:label="artist"

            xlink:href="modigliani.xml"/>

      <influence xlink:type="locator" xlink:label="inspiration"

            xlink:href="cezanne.xml"/>

      <influence xlink:type="locator" xlink:label="inspiration"

            xlink:href="lautrec.xml"/>

      <influence xlink:type="locator" xlink:label="inspiration"

            xlink:href="rouault.xml"/>

      <history   xlink:type="locator" xlink:label="period"

            xlink:href="paris.xml"/>

      <history   xlink:type="locator" xlink:label="period"

            xlink:href="kisling.xml"/>

  </environment>

В этом примере упущен только один момент: необходимо указать, как ресурсы относятся друг к другу. Для этого используются атрибуты, значения которых равны arc:

  <environment xmlns:xlink="http://www.w3.org/1999/xlink"

       xlink:type="extended">

       <!-- художник привязан к своему наследию и периодам творчества  -->

       <artist    xlink:type="locator" xlink:role="artist"

             xlink:href="modigliani.xml"/>

       <influence xlink:type="locator" xlink:label="inspiration"

             xlink:href="cezanne.xml"/>

       <influence xlink:type="locator" xlink:label="inspiration"

             xlink:href="lautrec.xml"/>

       <influence xlink:type="locator" xlink:label="inspiration"

             xlink:href="rouault.xml"/>

       <history   xlink:type="locator" xlink:label="period"

             xlink:href="paris.xml"/>

       <history   xlink:type="locator" xlink:label="period"

             xlink:href="kisling.xml"/>

       <bind xlink:type="arc" xlink:from="artist"  

             xlink:to="inspiration"/>

        <bind xlink:type="arc" xlink:from="artist"

             xlink:to="period"/>

     </environment>

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

Связующие элементы. Атрибут xlink:type. Как было указано выше, с помощью атрибута XLink xlink:type используемые элементы могут быть определены как связующие. Этот атрибут может иметь одно из следующих значений:

  •  simple: простая связь;
  •  extended: расширенная, возможно, многоресурсная связь;
  •  locator: указатель на внешний ресурс;
  •  resource: внутренний ресурс;
  •  arc: правило обхода между ресурсами;
  •  title: описательный заголовок для другого связующего элемента;
  •  none: элемент не имеет смысла, определяемого XLink.

Префикс xlink должен быть привязан к универсальному идентификатору ресурса (URI) пространства имен http://www.w3.org/1999/xlink:

      <my_element xmlns:xlink="http://www.w3.org/1999/xlink"> ...

Как обычно, этот префикс может меняться, при условии, что URI остается прежним. Префикс xlink является привычным и должен использоваться, если у вас нет действительно веских причин, чтобы его изменить.

Глобальные атрибуты. Помимо указанного атрибута type XLink предоставляет ряд атрибутов, называемых глобальными, которые позволяют установить, является ли рассматриваемый элемент связующим, а также определить многие его свойства (например, когда загружать связанные ресурсы, как их увидеть, если они загружены, и так далее). Ниже перечислены глобальные атрибуты, поддерживаемые XLink:

Атрибут определения типа: type

Атрибут локатор: href

Семантический атрибут: role, arcrole, title

Атрибут поведения: show, actuate

Атрибут обхода: label, from, to

Согласно принятой терминологии, если элемент включает атрибут type со значением V, этот элемент именуется как элемент типа V, каким бы ни было его действительное имя. Отношение элемента к определенному типу XLink накладывает на использование элементов следующие ограничения:

  1.  Для элемента данного типа только элементы определенных типов являются релевантными как подэлементы Xlink:

    <!-- поскольку A - элемент типа simple, все информация,

    которая ему необходима, - в атрибуте href. Было бы бессмысленно

    приводить подэлемент типа locator  -->

    <a xlink:type="simple" href="monet.html"> ... никакой другой

    элемент xlink здесь ни к чему... </a>

  1.  Для элемента данного типа используются только некоторые атрибуты Xlink:

    <!-- поскольку bookref - элемент типа locator, ему нужен атрибут href,

    чтобы указывать на внешний ресурс, но было

    бессмысленно приводить для него атрибут from, который

    зарезервирован для значений arc. -->

    <bookref xlink:type="locator" href="ficciones.xml"/>    

Простые связи. Рассмотрим следующий пример:

<COMPOSER xmlns:xlink="http://www.w3.org/1999/xlink"

         xlink:type="simple"

         xlink:href="http://www.users.interport.net/~beand/">

   Beth Anderson

</COMPOSER>

<FOOTNOTE xmlns:xlink="http://www.w3.org/1999/xlink"

         xlink:type="simple"

         xlink:href="footnote7.xml">7</FOOTNOTE>

<IMAGE xmlns:xlink="http://www.w3.org/1999/xlink"

      xlink:type="simple" xlink:href="logo.gif"

      xlink:actuate="onLoad" xlink:show="embed"/>

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

В самом первом элементе COMPOSER атрибут xlink:href определяет адресат связи. Значение атрибута - абсолютный URL http://www.users.interport.net/~beand/. Этот связующий элемент описывает соединение элемента COMPOSER текущего документа, содержание которого "Beth Anderson", с удаленным документом в http://www.users.interport.net/~beand/. Если бы мы включили этот элемент в документ XML и загрузили его в Web-браузер, поддерживающий XLink, как, например, Mozilla or Netscape 6, браузер подчеркнул бы эту связь, окрасив ее в синий цвет, и при нажатии на нее открыл страницу http://www.users.interport.net/~beand/.

Однако, данную ссылку можно интерпретировать более абстрактно: как просто определение однонаправленного соединения от одного ресурса, элемента COMPOSER, к другому ресурсу, Web-странице в http://www.users.interport.net/~beand/. На рисунке 1 показано это соединение. При этом оно на самом деле не подразумевает какой-либо особой семантики или поведения. Что эта абстрактная связь означает - решать приложению, которое читает этот документ.

В элементе FOOTNOTE значение атрибута xlink:href - это относительный URL footnote7.xml. Этот связующий элемент описывает соединение элемента FOOTNOTE текущего документа, содержание которого "7", с документом с именем footnote7.xml, находящемся на том же сервере, в том же каталоге, что и документ, в котором появляется эта связь.

Наконец, в третьем элементе IMAGE значение атрибута xlink:href - это относительный универсальный локатор ресурса logo.gif. И снова протокол, хост и каталог этого документа берется из протокола, хоста и каталога документа, в котором появляется эта связь. Однако, этот элемент требует немного отличного поведения. Вместо ожидания, пока пользователь активизирует связь, атрибут xlink:actuate просит, чтобы связь была активизирована автоматически, как только этот документ загрузится. Атрибут xlink:show требует, чтобы результат был встроен в текущий документ, а не заменял его.

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

Атрибут xlink:show рекомендует, как следует отображать содержание, когда связь активизирована, например, должно ли открываться новое окно, чтобы показать адресуемое содержание, либо это содержание должно загружается непосредственно в текущее окно.

Атрибут xlink:actuate позволяет определить, когда активизировать связь, например, сразу после загрузки документа или исключительно после запроса пользователя.

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

Атрибут xlink:show может принимать одно из следующих значений:

  •  replace;
  •  new;
  •  embed;
  •  other;
  •  none.

Если значение xlink:show равно replace, то при активизации связи (как правило, посредством щелчка мышкой по этой связи, по крайней мере, в GUI-браузерах) адресат связи заменяет текущий документ в том же самом окне. (Это поведение является действием по умолчанию для связей HTML.) Например:

<COMPOSER xlink:type="simple"

         xlink:show="replace"

         xlink:href="http://www.users.interport.net/~beand/">

   Beth Anderson

</COMPOSER>

Если значение xlink:show равно new, то активизация связи вызывает открытие нового окна, в котором отображается адресуемый ресурс. Это похоже на поведение связей HTML, когда атрибуту target присвоено значение blank. Например:

<WEBSITE xlink:type="simple"

        xlink:show="new"

        xlink:href="http://www.quackwatch.com/">

 Check this out, but don't leave our site completely!

</WEBSITE>

Если значение xlink:show равно embed, то при активизации связи адресуемый ресурс вставляется в существующий документ. Что именно это означает - зависит от приложения. Обычно предполагается, что приложение должно каким-то образом изобразить связываемое содержание и показать его как часть заключительного документа. В качестве примера приведем фрагмент кода, в котором этот атрибут используется для того, чтобы указать, что изображение JPEG должно быть встроено в этот документ:

<PHOTO xlink:type="simple"

      xlink:href="images/nypride.jpg"

      xlink:show="embed"

      ALT="Marchers on 5th Avenue, June 2000"/>

Если значение xlink:show равно other, то предполагается, что приложение будет искать другую разметку в документе, которая объяснит, что делать. Как правило, это могло бы использоваться, чтобы отдельное приложение XML использовало другие, отличные от XLink элементы для описания поведения связи. Например, у многих Web-страниц в заголовке находится элемент LINK, который указывает таблицу стилей (style sheet) и может выглядеть следующим образом:

<LINK REL="stylesheet" TYPE="text/css"

     HREF="http://www.w3.org/StyleSheets/TR/W3C-WD"/>

Это связь, но то, что находится в ее конце, не заменяет текущий документ, не встраивается в него и не отображается в новом окне. Для XML-документов вы могли бы условиться, что такое поведение предполагается всякий раз, как встречается элемент STYLESHEET. Поскольку это поведение не является ни одним из трех предопределённых поведений связей, необходимо присвоить xlink:show значение other.

<STYLESHEET xlink:show="other"  

          xlink:href="http://www.w3.org/StyleSheets/TR/W3C-WD"/>

Наконец, атрибуту xlink:show может быть присвоено значение none, чтобы показать, что документ не содержит никакой информации, которая могла бы помочь приложению решить, что, если уж на то пошло, делать со связью. В этом случае все зависит только от приложения.

Независимо от того, какое поведение атрибут xlink:show предлагает, браузер или иное приложение, читающее документ, при активизации связи может делать все, что угодно, в том числе и ничего. Например, браузер, у которого отключена автоматическая загрузка изображений, может решить проигнорировать xlink:show="embed".

Атрибут xlink:actuate может принимать одно из следующих значений:

  •  onRequest;
  •  onLoad;
  •  other;
  •  none.

Значение onRequest указывает, что связь должна обходиться только тогда, когда пользователь запросил ее и если он это сделал. (Это поведение обычной связи HTML.) Например, приведенная ниже связь выполняет переход в книжный магазин FatBrain только в том случае, если пользователь потребует это действие:

<PURCHASE xlink:type="simple" xlink:actuate="onRequest"

         xlink:href="http://www.fatbrain.com/">

 Buy from FatBrain

</PURCHASE>

С другой стороны, если атрибут xlink:actuate связующего элемента равен onLoad, эта связь прослеживается, как только загружен документ, содержащий эту связь. Например, вы можете установить этот атрибут, равным onLoad, чтобы изображение или другие части внешнего содержания были встроены в связывающий документ. В этом случае пользователю не нужно щелкать мышкой на связи, чтобы проследовать по ней. Такой код мог бы выглядеть следующим образом:

<IMAGE xlink:type="simple" xlink:href="logo.gif"

      xlink:actuate="onLoad" xlink:show="embed"/>

Если значение xlink:actuate равно other, то приложение должно искать в документе другую разметку, не описанную с помощью XLink, чтобы решить, когда обходить эту связь. Например, браузер мог бы определить элемент PRELOAD, как указание на то, что на этой странице документ или изображение пока не применяются, но скоро, вероятно, будут использоваться.

<PRELOAD xlink:type="simple"   xlink:href="logo.gif"

        xlink:actuate="other" xlink:show="none"/>

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

Наконец, присвоение атрибуту xlink:actuate значения none, означает, что приложение будет самостоятельно решать, обходить ли и, если да, то когда обходить эту связь.

Описание удаленного ресурса. Связующий элемент также включает факультативные атрибуты xlink:role и xlink:title, которые описывают удаленный ресурс: документ или другой ресурс, на который указывает эта связь. Атрибут xlink:title содержит простой текст, который характеризует этот ресурс. Атрибут xlink:role содержит URI, указывающий на документ, который более подробно описывает ресурс. Например, атрибут xlink:title может определять, что страница делает, а атрибут xlink:role может указывать на справочную страницу для этой страницы:

<SEARCH xlink:type="simple"

xlink:href="http://www.google.com/advanced_search"

xlink:title="Search with Google"

xlink:role="http://www.google.com/help.html">

  Search the Web with Google

</SEARCH>

И xlink:role и xlink:title описывают удаленный ресурс, а не локальный элемент. Удаленный ресурс в этом примере - это документ в http://www.google.com/advanced_search. Не является исключением, хотя вовсе не обязательно, если содержание xlink:title будет таким же, как и у элемента TITLE страницы, с которой вы связываетесь. Необходимо помнить, что XLink не определяет интерфейса, посредством которого атрибуты xlink:role и xlink:title представляются пользователю. Как и будет ли приложение применять эти атрибуты, целиком и полностью зависит от самого приложения.

Спецификация XForms 1.0

Технология XForms позволят без потери функциональности предоставить конечному пользователю - использует ли он карманный компьютер, мобильный телефон или настольный персональный компьютер - одну и ту же форму представления данных". Более подробно узнать о самой технологии можно узнать, прочитав подборку новостей и статью, посвященную XForms: http://www.iso.ru/cgi-bin/main/news.cgi?do_what=club.

Области использования языка XML

В последние годы язык XML стал применяться в различных предметных областях. Области его применения очень быстро расширяются. Его стараются применить в различных сферах и технологиях. Как метаязык он может использоваться очень широко от описания исходных данных, до метаданных и форматов обмена. Некоторые разработчики предлагают даже заменить все текстовые, гипертекстовые файлы различных редакторов на XML документы. К сожалению, на данном этапе развития компьютерной техники и телекоммуникационных средств использование языка XML не всегда эффективно. Правильно выбранный вариант использования языка XML позволит разработчикам сэкономить как время разработки системы, так и увеличить эффективность работы создаваемого приложения.

В книге [1] представлено восемь типовых реальных приложений использования XML для:

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

Подготовки развитых конфигурационных файлов, что обеспечивает их чрезвычайную гибкость.

Ввода и редактирования электронных форм. С помощью редактора XML можно очень быстро отредактировать XML файлы.

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

Интеграции с ранее разработанными форматами.

Ведения электронной коммерции.

Организации работы в команде (мультиязыковые сайты, др.).

Объединения с автоматизированными системами управления (обмен данными по протоколу SOAP).

Возможные примеры использования языка XML:

  •  -Создание демонстрационных вариантов систем с динамическим представлением данных в браузере;
  •  -Разработка средств динамического доступа к взаимосвязанным объектам метаданных (сведения о массивах и базах данных, организациях, экспертах, форматах хранения данных, используемых при этом программных средствах, измерительных системах, измеряемых параметрах, др.);
  •  -Описание информационных ресурсов в Интернет в различных предметных областях (образовании, научно- технической информации, гидрометеорологии и др.);
  •  -Развитие форматов обмена данными между различными приложениями, распределенными по удаленным серверам.

Рассмотрим каждую сферу использования языка отдельно.

Создание демонстрационных вариантов систем с динамическим представлением данных. Если разработчику системы необходимо быстро показать прототип будущей системы и у заказчика нет большого объема накопленных данных, то можно всю исходную информацию структурировать и описать в виде XML файлов. Каждый файл здесь может быть отдельным объектом данных. Используя язык стилевых таблиц XSL можно выбрать и отсортировать данные на экране. Для заказчика на этом этапе все равно используется БД или XML файл – главное, что это не статические страницы.

Преимущества. При небольших знаниях языка XML (XSL, HTML) и относительно небольшом числе объектов 5-7, такой вариант системы можно создать в течение недели. Для создания тестовых вариантов XML файлов можно использовать простые СУБД типа ACCESS, в которых есть средства экспорта в XML файл.

Недостатки. Такой вариант реализации эффективен только при объеме XML файла до 100 Кб. При увеличении XML файла скорость поиска и сортировки резко падает. Если вместо XML применить языки типа РНР или Java, то объем XML файла можно увеличить до 2 Мб, но далее опять скорость доступа упадет. То есть этот вариант использования служит в основном только для демонстрации или там, где объем данных заведомо не будет критическим.

Разработка средств динамического доступа к объектам метаданных. Объем метаданных в большинстве организаций небольшой. В этих организациях не всегда есть специалисты, которые могут развивать сложные технологии доступа к метаданным. Их задача - представить информацию об информационных ресурсах организации. Здесь вполне можно применить язык XML. То есть для каждого объекта метаданных составляется XML файл и аналогично, как и в предыдущем варианте для выборки и сортировки используются стилевые таблицы XSL. Этот вариант по реализации близок к первому. Отличием является то, что такой объект метаданных, как сведения о массивах и базах данных связан с несколькими др. объектами – сведениями о форматах, программных средствах, организациях, экспертах. Для этой связи можно использовать язык Xlink.

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

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

Сведения об экспертах, выполняющих определенные роли в различных объектах метаданных – создатель ИР, администратор БД, разработчик формата, прибора, др. Сведения о форматах хранения данных включают сведения о том, что за формат, кто, когда создал, где используется, уровень стандартизации формата и т.п.

Сведения о параметрах нужны также в различных объектах и приложениях и отражают классификацию данных по сферам, процессам, (явлениям), используемой статистике, точность, единицы измерений, метод получения, пространственно-временные масштабы представления, предельные значения.

Сведения о приборах, которыми выполняют наблюдения, включают информацию о том, кто, когда, где используется, какие параметры измеряет, с какой точностью. При этом  сведения о приборе даются в таких объектах метаданных как сведения о рейсах НИС, параметрах наблюдений, наблюдательных сетях, др.

Сведения о проектах, в рамках которых получен тот или иной ИР, массив данных или БД включают такие атрибуты как кто, когда, где организовал проект, какие страны участвовали, какие наблюдения проводили и др.

Сведения о наблюдательных платформах (НИС, береговые станции, буи, спутники). Каждая платформа, кроме общих атрибутов (название, принадлежность, период работ, географического района расположения или работ, перечня выполняемых наблюдений) имеет специфические атрибуты, например, для судна это позывной, водоизмещение; для береговой станции - 0 разряд, станции, включен ли в систему ГЛОСС, др.; сведения о буях – позывной, какая страна поставила; спутниках – орбита, тип спутника – геостационарный или орбитальный.

Фактически необходимо создать общее пространство имен для основных объектов метаданных, включая описание ИР, как один из объектов метаданных.

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

Недостатки. Для некоторых организаций объем отдельных объектов метаданных может превысить критические значения и тогда скорость доступа упадет.

Описание информационных ресурсов в Интернет в различных предметных областях. XML как метаязык позволяет создавать подъязыки для разных предметных областей и сфер деятельности. XML может использоваться для создания документов какого-то определенного типа и структурой, необходимой для конкретного приложения. Если сфера применения языка оказывается достаточно широкой, и он начинает представлять интерес для большого числа разработчиков, то его спецификация может быть представлена на рассмотрение в W3C и после согласования всеми заинтересованными сторонами, утверждена консорциумом в качестве официальной рекомендации. Так существуют языки для математики, химии. Для описания информационных ресурсов на Web в некоторых предметных областях уже созданы соответствующие модели языков в области образования – LOM, научно – технической информации -Dublin Core. В табл.3 представлен список XML стандартов, используемых для описания различных предметных областей.

Таблица 3

Список XML стандартов для описания различных предметных областей

Название

Назначение

UDDI

Универсальный метод описания, обнаружения и интеграции. Предоставляет средства, с помощью которых можно сделать так, чтобы любые приложения или услуги, описанные в терминах веб - служб, могут быть распознаны другими приложениями и/или организациями. Это стандарт создания регистра, используя который, можно описать организации и предоставляемые ими услуги в виде, доступном для динамического обнаружения и взаимодействия

Dublin Core

Описание web- ресурсов с научно- технической информацией

LOM

Описание информационных ресурсов в области образования

WSDL

Язык описания Web-сервисов

RDF

Среда определения ресурсов (Описание метаданных)

SML

Sensor Model Language, http://vast.uah.edu/SensorML/) представляет собой стандартную XML-схему, в которой датчики и генерируемые ими потоки информации описываются с помощью метаданных

DCML

Спецификация Data Center Markup Language Framework Specification - DCML 1.0 это подмножество XML призвано стандартизовать описание центров обработки данных. Спецификация определяет способы «инвентаризации» компонентов центра (серверы, программная инфраструктура, сетевые устройства, системы хранения), описания их взаимодействия друг с другом и составления политик такого взаимодействия. DCML призван стать универсальным языком «общения» для систем распределения ресурсов, конфигурирования, установки обновлений, мониторинга и управления. Применение DCML позволит строить самоконфигурирующиеся центры обработки данных по готовым моделям, а также автоматизировать включение/отключение компонентов действующего центра по требованию и уведомление систем управления центром об изменениях его конфигурации. В разработке спецификации участвуют Computer Associates, EDS, Mervury Interactive, BMC Software, Opsware и другие компании.

OAI

The Open Archives Initiative Protocol for Metadata Harvesting, Protocol Version 2.0 of 2002-06-14, http://www.openarchives.org/OAI/openarchivesprotocol.html 

GILS

APPLICATION PROFILE FOR THE GOVERNMENT INFORMATION LOCATOR SERVICE, November 24, 1997 http://www.gils.net/prof_v2.html

Во ВНИИГМИ-МЦД разработан стандарт для интеграции информационных ресурсов на web в области морской среды. В настоящее время идет разработка форматов обмена между различными приложениями и развитие морского языка XML. Описание ИР состоит из следующих основных блоков: идентификация; Логическое описание содержания ИР; состав параметров; включенных в ИР, географическое местоположение данных; связи с др. объектами метаданных.

Основные требования к схеме метаданных и способу их представления:

  •  универсальность (в рамках установленного понимания ИР как объекта метаданных);
  •  достаточная выразительность для обеспечения эффективного решения задач, требующих наличия метаданных;
  •  совместимость с международными стандартами и протоколами в области метаданных и информационного поиска;
  •  соответствие российскому законодательству;
  •  возможность задания ограничений целостности, отражающих взаимосвязи полей описания ИР;
  •  обеспечение возможности хранения метаданных как совместно с ИР, так и отдельно от него.

Основные задачи, при решении которых используются метаданные:

  •  поиск ИР по метаданным;
  •  сбор метаданных программными средствами;
  •  навигация по каталогу ИР портала;
  •  управление контентом, в том числе агрегация ИР (построение интегрального ИР из имеющихся ИР и их компонентов);
  •  мониторинг состояния ИР;
  •  проведение информационно-аналитических исследований.

Подходы к построению схемы метаданных:

  •  выбор одной из существующих международных схем (Dublin Core, Learning Object Metadata, MEDI - Marine Environmental Description Information Referral Catalogue, др.);
  •  выбор одной из существующих международных схем и ее расширение;
  •  формирование оригинальной схемы.

Предлагается использовать третий подход. Это объясняется тем, что ни одна из имеющихся сейчас схем не может описать все объекты метаданных. Так схему Dublin Core можно использовать для описания Web ресурсов только очень общего характера, По этой схеме очень трудно осуществить детальный поиск данных.

Преимущества. Описание ИР - это схема, которая помогает пользователям находить ИР, определяет способ взаимодействия и обмена информацией, позволяет размещать информацию на портале. Портал - это каркас для предоставления специализированных Web - услуг. Описание ИР содержит стандартизованные спецификации описания и их дальнейшего поиска, дает возможность быстрого обнаружения необходимых ИР; определяет способ взаимодействия и выполнения запросов пользователей. Одно из безусловных преимуществ описания ИР – это упрощенная схема интеграции ИР на Web. Описание ИР способствует тому, что интеграция становится быстрее, дешевле и проще, упрощая описание, поиск и использование ИР, закладывает фундамент для следующих поколений систем, позволяет перейти на следующую ступень развития обслуживания.

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

Развитие форматов обмена данными между различными приложениями. Учитывая большой объем обмениваемых данных на этом уровне необходимо использовать XML в качестве протокола обмена данными. То есть используемый формат передаваемых данных не должен зависеть от XML описания данных. Основная идея разработки такого формата заключается в следующем. Используя единое пространство имен для метаданных и исходных данных, создается морской язык XML. При этом исходные данные включаются в описание передаваемых данных как одно из значений элементов. А сведения о формате, составе атрибутов передаваемых данных передаются как значения др. тегов. При передаче данных могут быть использованы все имеющиеся метаданные.

В тексте XML файла передаваемых данных дается информация о формате передаваемых данных (кто, когда создал), перечень передаваемых параметров и их описание. Сами данные передаются в том формате, как они представлены были во view - таблице. Только эти данные записываются между тегами <Data> </Data>. Этот XML - файл может быть вставлен в протокол SOAP и тогда можно будет использовать для обмена данными стандартные процедуры межмашинного обмена между приложениями. Пример описания представлен ниже.

<SOAP-ENV:Envelope

<SOAP-ENV:HEADER>

<SOAP-ENV:Body>

<MARINE_XML>

<Metadata>

<Data_Set>

<Org> </Org>

<Expert> </Expert>

<Data>ASCCI файл </Data>

</Data_Set>

</Metadata>

</MARINE_XML>

</SOAP-ENV:Body>

</SOAP-ENV:HEADER>

</SOAP-ENV:Envelope

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

Недостатки. Если выбранные данные пересылать виде XML файлов, то объем передаваемых данных значительно возрастет.

Заключение

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

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

Язык XML позволяет описывать данные произвольного типа и используется для представления специализированной информации, например химических, математических, физических формул, и т.д. Это означает, что XML может служить мощным дополнением к HTML для распространения в Web "нестандартной" информации.

XML-документы могут использоваться в качестве формата обмена данными в между Web - приложениями. Обычно схема взаимодействия между серверами приложений и базой данных зависит от конкретной СУБД и диалекта SQL, используемого для доступа к данным. Если же результаты запроса будут представлены в XML формате, то данные будут доступны и понятны в других приложениях.

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

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

XML может использоваться в обычных приложениях для хранения и обработки структурированных данных в едином формате.

XML является идеальным способом описания и хранения любых данных, в том числе и структурированных, извлеченных из реляционных БД. Для дальнейшего развития этого направления необходимо создать общее пространство имен, полную схему метаданных, включающую все основные и объекты метаданных.

Список литературы

  1.  Маршал Б. XML в действии. - М.: Издательство «Триумф», 2002. – 368 с.
  2.  Брайан Трэвис. XML и SOAP: программирование для серверов BizTalk. Новейшие технологии/Пер.с англ.-М.: Издательско-торговый дом «Русская Редакция», 2001. – 496 с.
  3.  Игорь Дидковский. От PHP к XML по шагам.  http://langos.lrn.ru/pubs/
  4.  Арнод Ле Хорс (Arnaud Le Hors) Опубликованы спецификации XML 1.1 и "Пространства имен 1.1" Дата: 18-05-2004 Автор: Перевод: Intersoft Lab
  5.  Особенности СУБД Sedna. XML-СУБД Senda: технические особенности и варианты использования. Максим Гринев, Сергей Кузнецов, Андрей Фомичев. 31.08.2004. Журнал "Открытые системы", #08, 2004 год // Издательство "Открытые системы" (www.osp.ru) Постоянный адрес статьи: http://www.osp.ru/os/2004/08/036.htm

Вопросы

1.Назовите основные языки, построенные на основе XML

2.Назовите стандарты, применяемые в XML технологиях

3.Опишите структуру XML документа


 

А также другие работы, которые могут Вас заинтересовать

43373. Вибір потужності двигуна і дослідження процесу пуску електроприводу двигуна постійного струму 284.5 KB
  Вибір потужності двигуна і дослідження процесу пуску електроприводу двигуна постійного струму. Розрахувати можливе перевантаження обраного двигуна при роботі в короткочасному режимі із часом роботи хв. Додаткові умови: передаточне число редуктора ; ККД редуктора ; коефіцієнт запасу прийняти рівним 12513; момент інерції агрегату в 50...
43374. Проблеми подолання безробіття в Україні 446 KB
  Теоретичні відомості про безробіття Сутність та причини виникнення безробіття Види безробіття та їх характеристика Основні соціальноекономічні наслідки безробіття та методи його подолання РОЗДІЛ 2. Аналіз стану безробіття в Україні 2. Аналіз нормативноправового регулювання зайнятості та безробіття в Україні 2.
43375. Вибір потужності двигуна і дослідження процесу пуску електроприводу двигуна постійного струму 309 KB
  Кафедра автоматизації та енергоменеджменту ЗАВДАННЯ на виконання курсової роботи Маліновської Марії Володимирівни Тема курсової роботи: Вибір потужності двигуна і дослідження процесу пуску електроприводу двигуна постійного струму. Відповідно до заданого варіанту розрахувати потужність двигуна. Розрахувати можливе перевантаження обраного двигуна при роботі в короткочасному режимі із часом роботи хв.