Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db-shpora.doc
Скачиваний:
14
Добавлен:
08.11.2018
Размер:
1.44 Mб
Скачать
  1. Плоские и структурированные xml-схемы. Глобальные элементы

XML-схема, подобная той, которая показана в листинге 9, иногда называется плоской, потому что все ее элементы располагаются на одном уровне. На рис. 2 изображена диаграмма (для ее построения использовался XML-редактор XML Spy – www.xmlspy.com.). Рисунок 2 наглядно показывает, почему данная схема называется плоской. Обратите также внимание, что необязательные элементы изображены в пунктирных прямоугольниках.

Если вы внимательно посмотрите на изображенную здесь схему, то увидите, что определенные аспекты семантики элементов в ней упущены. В частности, все элементы группы {Street, City, State, ZipPostalCode, Country} относятся к теме «адрес». Кроме того, группа элементов {AreaCode, PhoneNumber} относится к теме «телефон». Дело в том, что, как вам известно, в реляционной модели все столбцы считаются равноправными, поэтому какого-либо способа для представления этих тем не существует.Однако XML позволяет моделировать такие группы. В схеме, показанной в листинге 11, две упомянутые выше группы столбцов образуют сложные типы Address и Phone. XML-документ, в котором одна из строк таблицы CUSTOMER представлена в данном формате, приведен в листинге 12. Графическое представление схемы из листинга 11 изображено на рис. 3.

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

  1. Создание хмl-документов на основе информации из базы данных

Как в Oracle, так и в SQL Server имеются средства для генерации XML-документов на основе содержимого базы данных. В Oracle эти средства требуют использования Java.

Средства работы с XML в Oracle и SQL Server быстро эволюционируют. В случае SQL Server в версию 7.0 было добавлено выражение FOR XML TO SQL SELECT. Это выражение было унаследовано версией SQL Server 2000. В 2002 году возможности SQL Server были расширены за счет SQLXML — библиотеки классов, которую можно загрузить с сайта msdn.microsoft.com. Эта библиотека, созданная группой разработчиков SQL Server, отличается от ADO.NET. Скорее всего, в будущем возможности SQLXML и ADO.NET будут объединены.

SELECTFOR XML

Рассмотрим следующий SQL-оператор:

SELECT *

FROM ARTIST

FOR XML RAW;

Выражение FOR XML RAW предписывает SQL Server создать XML-документ, в котором непустые столбцы результата запроса будут играть роль атрибутов.Можно заставить SQL Server помещать значения столбцов не в атрибуты, а в элементы XML-документа, как это сделано в листинге 15. Подобный документ можно создать при помощи следующего оператора:

SELECT *

FROM ARTIST

FOR XML AUTO, ELEMENTS;

Используя выражение FOR XML EXPLICIT, разработчик может указать SQL Server, какие столбцы результата должны играть роль элементов, а какие – атрибутов. Можно, например, сделать так, чтобы значения всех столбцов, кроме суррогатного ключа, помещались в элементы XML-документа, а значения суррогатного ключа — в атрибуты. Обоснование такого решения состоит в том, что значения суррогатного ключа не имеют смысла для пользователей, поэтому они больше похожи на метаданные, чем на данные.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]