Учебное пособие (1075724), страница 5
Текст из файла (страница 5)
. . --></Связанная_таблица></База_данных>Такую структуру можно загрузить только в СУБД, которая поддерживаетзапись данных в ключевые поля (эту возможость поддерживают не все СУБД).При сохранении связанных таблиц в формате XML их лучше сохранять ввиде единого дерева без первичных и вторичных ключей.Реляционные таблицы без ключей:<?xml version="1.0" encoding="Windows-1251"?><База_данных><Таблица_1><Запись><Поле_1>Значение поля 1</Поле_1><Поле_2>Значение поля 2</Поле_2><Связанная_таблица><Запись><Поле_3>Значение поля 3</Поле_3>17</Запись><Запись><Поле_3>Значение поля 3</Поле_3></Запись><!-- .
. . --></Связанная_таблица></Запись><!-- . . . --></Таблица_1></База_данных>При загрузке ключи необходимо генерировать «на лету».При загрузке данных в MS SQL Server могут быть использованы«аннотированные схемы».Аннотированные схемы представляют собой расширение XML-схем. Ваннотированных схемах допускаются специальные аннотации, задающие ихпривязку к сущностям реляционной структуры: таблицам, полям, первичным ивнешним ключам, отношениям между таблицами, благодаря чему данные,хранящиеся в MS SQL Server, можно запрашивать как XML-документ.
Возможнатакже загрузка документа на основе аннотированной схемы. Более подробно этивозможности рассмотрены в [Ширшов, 2003].Граф (связи задаются в вершинах):<?xml version="1.0" encoding="Windows-1251"?><Граф><Вершина id="1"><Данные_о_вершине/><Выходы><Выход вершина="2"/><Выход вершина="3"/></Выходы></Вершина>18<Вершина id="2"><Данные_о_вершине/><Выходы><Выход вершина="1"><Данные_о_связи/></Выход></Выходы></Вершина><Вершина id="3"><Данные_о_вершине/></Вершина></Граф>Вершина 2Вершина 1Вершина 3Рис.
1.3. Описание графа.Вместо выходов можно использовать входы. Для неориентированных графовнадо делать ссылки друг на друга из двух вершин.Аналогичным образом можно описывать двудольные графы. В двудольномграфе существует два класса вершин, и каждая вершина связана лишь свершинами другого типа.Можно использовать описание графа, в котором вершины и связи задаютсяотдельно друг от друга.Граф (вершины и связи задаются отдельно):<?xml version="1.0" encoding="Windows-1251"?>19<Граф><Вершины><Вершина id="1"><Данные_о_вершине/></Вершина><Вершина id="2"/><Вершина id="3"/></Вершины><Связи><Связь вершина_1="1" вершина_2="2"><Данные_о_связи/></Связь><Связь вершина_1="1" вершина_2="3"/><Связь вершина_1="2" вершина_2="1"/></Связи></Граф>Такое описание удобно использовать как для ориентированного, так и длянеориентированного графа.Для описания графов разрабатывается отдельная спецификация GraphML.Таким образом, с помощью модели данных XML достаточно простоописывать многие структуры данных.1.5 Инструментальные средства для изучения XMLОдним из наиболее необходимых средств для изучения XML является XMLредактор.
Наиболее известным коммерческим редактором XML является XMLSPY.Одним из лучших свободно распространяемых продуктов является XMLPad.Сайт XMLPad – «wmhelp.com». В этом редакторе реализованы наиболеенеобходимые функции XML SPY.К таким функциям можно отнести:1. Различные формы представления документов XML. Документ XMLможет быть представлен в редакторе в виде текста (Source), дерева20(Grid View), таблицы (Table View).
Также документ может бытьпредставлен в режиме предварительного просмотра Internet Explorer(Preview) без возможности редактирования.2. Вычисление XPath-выражений. Выполнение XSLT-преобразований.Особенно полезной функцией является XSLT-отладчик.3. Возможность генерации DTD и схем на основе документа XML.Возможность преобразования DTD и схем друг в друга. Графическоепредставление DTD и схем.На следующем рисунке приведен пример представления документа в видетекста, дерева и таблицы.21Рис. 1.4. Пример представления документа в виде текста, дерева и таблицы.221.6 Основные технологии, связанные с XMLПеречислим основные технологии, которые предназначены для работы сXML, или в которых XML активно используется.1.
XML-парсеры, которые применяются для разбора документов XML нанизком уровне. Различают такие разновидности парсеров, как SAX-парсеры иDOM-парсеры.2. DTD-описания и схемы XML, которые предназначены для проверкиструктуры документа (проверка действительности документов XML). Далее этитехнологии рассматриваются более подробно.3. Язык XPath и технология XSLT, предназначенные для преобразованиядокументов XML в HTML, XML или текстовый формат. Далее XPath и XSLTрассматриваются более подробно.4. Технология XSL-FO, предназначенная для преобразования документовXML в печатное представление.
В настоящее время вместо этой технологии частоприменяется XSLT.5. Хранение XML-документов в базе данных.В настоящее время большинство современных СУБД позволяет работать сданными в формате XML, например Microsoft SQL Server, Oracle, Cache. Дляработы с XML используются различные расширения языка SQL, иногда XQuery.В этих СУБД XML не является основным форматом хранения данных.Существуют также специализированные XML-ориентированные СУБД, вкоторых XML является основным форматом хранения данных. Часто такие СУБДвообще не поддерживают реляционную модель.
К таким СУБД можно отнестикоммерческую Tamino, а также свободно распространяемые eXist и Sedna. Втаких СУБД основным языком обработки данных, как правило, является XQuery.Далее более подробно рассматривается использование языка XQuery в СУБДeXist.6. Ввод данных в формате XML. Основным стандартом является XForms. Внекоторых продуктах применяются решения, не основанные на стандартах,например Microsoft InfoPath.237. Использование XML для интеграции данных и приложений. Здесь можновыделить технологию веб-сервисов и связанные с ней стандарты SOAP, WSDL,UDDI, язык BPEL.8.
Стандарты семантического веба (RDF, RDFS, OWL, SPARQL). Большаячасть стандартов семантического веба построена на использовании XML.Существует также большое количество других технологий, стандартов исредств разработки, которые невозможно перечислить в рамках краткого обзора.1.7 Контрольные вопросы1. Какие типы конструкций может включать XML-документ?2. Что такое правильные и действительные документы?3.
Каким условиям должен удовлетворять документ XML, чтобы онсчитался правильным?4. Какие структуры данных можно описать с использованием XML?5. Какие технологии предназначены для работы с XML?242 Глава 2. Преобразование документов XML2.1 Язык XPathXPath – это набор синтаксических правил для адресации частей XMLдокумента. Язык XPath используется в технологии XSLT и в некоторых XMLориентированных базах данных.Главная задача XPath-запроса (XPath-выражения) – найти нужный фрагмент(элемент, атрибут) документа XML.XPath-выражение представляет собой строку, в которой адресуетсяфрагмент XML-документа.
XPath-выражение похоже на запись пути в файловойсистеме, только вместо названий каталогов и файлов используются названияэлементов и атрибутов в документе.Пример 2.1. Документ XML для изучения XPath-выражений:<?xml version="1.0"?><A><B b="b1">B1</B><C a="a1">C1</C><E e="e1"><B a="a2">B2</B><G>G</G></E><B b="b3">B3</B><numbers><number id="1">2</number><number id="2">4</number><number id="3">8</number></numbers></A>25Рис. 2.1. Древовидная структура документа.Для выполнения XPath-запроса (XPath-выражения) в XMLPad необходимовыбрать пункт меню «XML/Evaluate XPath».2.1.1 Основные выраженияПримеры основных выражений XPath и результаты их выполненияприведены в следующей таблице.Таблица 2.1. Основные выражения XPath.XPath-выражение/Результат выполненияКорневой элемент.26AЭлемент A./AЭлемент A, вложенный в корневой элемент.
Результатвыполнения такой же, как в предыдущем запросе.A/BЭлемент B, вложенный в элемент A.27A//BЭлемент B, вложенный на любой глубине в элемент A.Обратите внимание, что элемент B со значением B2 невложен непосредственно в элемент А./A/*Любой элемент, вложенный в A, вложенный вкорневой элемент./A/E/BЭлемент B, вложенный в E, вложенный в A,вложенный в корневой элемент.28A/B | A/CВсе элементы B или C, вложенные в A, символ « | » –оператор объединения множеств.A//*//B/@bВсе элементы, вложенные в А на любой глубине.Атрибуты b, вложенные в элементы B.














