Связь документа 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 references). Простым щелчком мыши по тексту, выделенному голубым цветом, мы переносимся в другой документ, может быть, находящийся на другом конце света. Еще щелчок, и мы уже связаны с иным хостом, расположенным совсем в другом месте нашей планеты. Мы не знаем точно, где находится этот хост, да и знать не хотим. Нам важно лишь то, что мы можем за несколько минут собрать информацию из самых разных источников. Все эти богатейшие возможности обеспечиваются одним тегом <а> вида: <а 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|