Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Связь документа XML со своей схемой




Программе-анализатору, проверяющей соответствие документа XML его схеме, надо как-то указать файлы (один или несколько), содержащие схему документа. Это можно сделать разными способами. Во-первых, можно по­дать эти файлы на вход анализатора. Так делает, например, проверяющий анализатор XSV (XML Schema Validator) (ftp://ftp.cogsci.ed.ac.uk/pub/XSV/):

$ xsv ntb.xml ntbl.xsd ntb2.xsd

Во-вторых, можно задать файлы со схемой как свойство анализатора, уста­навливаемое методом setProperty о, или значение переменной окружения анализатора. Так делает, например, проверяющий анализатор Xerces.

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

Если элементы документа не принадлежат никакому пространству имен и записаны без префикса, то в корневом элементе документа записыва­ется атрибут noNamespaceSchemaLocation, указывающий расположение файла со схемой в форме URL:

<notebook xmlns:xsl="http://www.w3.org/2001/XMLSchema-instance" xsl:noNamespaceSchemaLocation="ntb.xsd">

В этом случае в схеме не должно быть целевого пространства имен, т. е. не следует ИСПОЛЬЗОВать атрибут targetNamespace.

Если же элементы документа относятся к некоторому пространству имен, то применяется атрибут scnemaLocation, в котором через пробел перечисляются пространство имен и расположение файла со схемой, описывающей это пространство имен. Продолжая пример предыдущего раздела, можно написать: <notebook xmlns="http://some.firm.com/2003/ntbNames"

xmlns:xsl="http://www.w3.org/2001/XMLSchema-instance" xsl:schemaLocation=

"http: //some.firm.com/someNames A.xsd http://some.firm.com/anotherNames B.xsd" xmlns:prl="http://some.firm.com/someNames" xmlns:pr2="http://some.firm.com/anotherNames">

После этого в документе можно использовать имена, определенные в схемах A.xsd и B.xsd, снабжая их префиксами pri и рг2 соответственно.

Другие языки описания схем

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

Есть и другие, более простые языки описания схемы документа XML. Наи­большее распространение получили следующие из них:

Schematron — http://www.ascc.net/xml/resource/schematron/;

RELAX NG — Regular Language Description for XML, New Generation, http://www.oasis-open.org/committees/relax-ng/, этот язык возник как слияние языков Relax и TREX;

Relax — http://www.xml.gr.jp/relax/;

TREX — Tree Regular Expressions for XML, http://www.thaiopensource.com/trex/;

DDML — Document Definition Markup Language, известный еще как XSchema, http://purl.oclc.org/NET/ddml/.

Менее распространены языки DCD (Document Content Description), SOX (One's Schema for Object-Oriented XML), XDR (XML-Data Reduced).

Хороший обзор языков описания схем представлен на странице http://www.oasis-open.org/cover/schemas.html.

Все эти языки позволяют более или менее полно описывать схему докумен­та. Возможно, они вытеснят язык XSD или будут существовать совместно.

 

Создание ссылок на языке XLink. Пространство имён языка XLink

Основная особенность языка HTML, благодаря которой он завоевал огром­ную популярность, — это возможность создавать гиперссылки (hyper refe­rences). Простым щелчком мыши по тексту, выделенному голубым цветом, мы переносимся в другой документ, может быть, находящийся на другом конце света. Еще щелчок, и мы уже связаны с иным хостом, располо­женным совсем в другом месте нашей планеты. Мы не знаем точно, где находится этот хост, да и знать не хотим. Нам важно лишь то, что мы можем за несколько минут собрать информацию из самых разных источ­ников.

Все эти богатейшие возможности обеспечиваются одним тегом <а> вида:

<а href="http://host.domain/newdoc.html">Новый документ</а>

Мы только указываем атрибутом href адрес нового документа, записанный в форме URL. Все остальное берет на себя система World Wide Web. Она отыскивает указанный в адресе хост, устанавливает связь с Web-сервером, работающим на этом хосте, передает ему запрос, дожидается ответа и ото­бражает в окне нашего браузера полученный от сервера документ newdochtml.

Этот документ появится на экране вместо того, с которым мы работали. Если мы хотим увидеть документ в новом окне, то добавляем атрибут target, содержащий имя окна или константы _blank, _parent, _self, _тор, указывающие, куда поместить новый документ — в пустое окно, в роди­тельское, в то же самое окно или в основное окно браузера.

В языке HTML есть возможность загружать не только файлы, но и изобра­жения. Для этого применяется тег <img>. В нем атрибутом src записьшается адрес URL файла с изображением:

<img src="http://some.com/images/yourface.gif">

После этого изображение появляется на том месте, где располагался тег <img>.

Язык XML, разумеется, не мог не предоставить возможность создавать по­добные ссылки на другие документы, изображения или на какие-то иные места того же самого документа. В 1999 году консорциумом W3C был при­думан специальный язык создания ссылок XLink — одна из реализаций XML. Язык быстро развивался, и в 2001 году была выпущена его первая версия. Она оформлена в виде рекомендации "XML Linking Language (XLink)", последнюю версию которой всегда можно посмотреть по адресу Ошибка! Недопустимый объект гиперссылки..

Гиперссылки языка HTML скованы многими условиями, к числу которых относятся следующие ограничения:

гиперссылку можно создать только в текущем документе;

сослаться можно только на один документ;

гиперссылка создается только одним тегом <а>;

у тега <а> фиксированный набор атрибутов, его нельзя изменить;

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

Разработчики языка XLink постарались снять эти и другие ограничения. Язык XLink позволяет создать ссылку в одном, а использовать в других до­кументах. Ссылка может указывать сразу на несколько документов. Со­слаться можно не только на документ XML, но и на любой информацион­ный ресурс: изображение, чертеж, программу. Отпадает необходимость в специализированных тегах, таких как тег <img>. Можно организовать ссыл­ку, связывающую другие документы, например, ссылка, записанная в доку­менте docl.xml, может установить связь между документом doc2.xml и доку­ментом doc3.xml. Кроме того, язык XLink отмечает направление ссылки и позволяет организовать обратные ссылки. Эти возможности делают язык XLink чрезвычайно мощным, способным удовлетворить нужды самого при­вередливого разработчика.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...