
- •Введение
- •Методы хранения документов xml в реляционных базах данных
- •Хранение документов xml в sql Server
- •Хранение документов xml с использованием типа данных xml
- •Индексирование столбца xml
- •Типизированные в сравнении с нетипизированными xml
- •Типизированные столбцы xml, переменные и параметры
- •Представления каталогов схемы xml
- •Хранение документов xml с использованием декомпозиции
- •Поиск сохраненных документов xml и фрагментов
- •Идеальное решение для хранения xml - документов
- •Литература
Типизированные в сравнении с нетипизированными xml
Как вы уже знаете, документ XML может быть хорошо сформированным и правильным. Проверяться может только хорошо сформированный документ. Документ XML, который соответствует одной или более схемам, является достоверным в схеме и называется экземпляром документа в схеме. Схемы XML используются для выполнения более точных проверок в процессе компиляции запросов. Столбцы с типом данных xml, переменные и параметры могут быть типизированными (соответствуют набору схем) или не типизированными. Иными словами, когда типизированный экземпляр xml назначен столбцу типа данных xml, переменной или параметру, то система проверяет экземпляр. Рассмотрим использование схем XML, а затем подробно обсудим экземпляры типизированных XML.
Схемы XML и SQL Server
Схема XML задает набор типов данных, которые существуют в конкретном пространстве имен. XML Schema (или XML Schema Definition Language) является языком определения данных для документов XML. SQL Server использует оператор create xml schema collection для импорта компонентов схемы в базу данных. В примере 28.5 показано использование этого оператора. В примере 28.5 показано, как оператор create xml schema collection может быть использован для каталогизации схемы EmployeeSchema в качестве объекта базы данных. Схема XML для примера 28.5 включает атрибуты (элементы) для служащих, такие как имя, фамилия и зарплата. Подробное обсуждение схем XML выходит за рамки этой книги. Обычно коллекция схемы XML…
Типизированные столбцы xml, переменные и параметры
Каждый типизированный столбец xml, переменная или параметр должны быть заданы с ассоциированными схемами. Чтобы сделать это, имя коллекции схем, которая была создана с использованием оператора create xml schema collection, должно быть записано внутри пары круглых скобок после имени экземпляра. В примере 28.6 показано это. Столбец xmiperson в примере 28.6 ассоциирован с коллекцией схем XML EmployeeSchema (см. пример 28.5). Это означает, что используются все спецификации из определенных схем для проверки правильности значения столбца xmiperson. Иными словами, когда вы добавляете новое значение в типизированный столбец xml (или изменяете существующее значение), проверяются все ограничения, заданные в схемах. Спецификация коллекции схем XML…
Представления каталогов схемы xml
SQL Server поддерживает несколько представлений каталогов, связанных с XML Schema, наиболее важными из которых являются следующие: ♦ sys.xmi_schema_attributes возвращает строку для каждого компонента схемы XML, который является атрибутом; ♦ sys.xml_schema_elements возвращает строку для каждого компонента схемы XML, который является элементом; ♦ sys .xmi_schema_components возвращает строку для
Хранение документов xml с использованием декомпозиции
Системная процедура sp_xmi_preparedocument читает текст XML, представленный ей в качестве ввода, выполняет синтаксический анализ и представляет преобразованный документ в виде дерева с различными узлами: элементы, атрибуты, текст и комментарии. В примере 28.8 показано использование системной процедуры sp_xmi_ ргерагedocument. Документ XML в примере 28.8 сохраняется в виде строки в переменной @doc. Эта строка дробится системной процедурой spxmipreparedocument. Процедура возвращает дескриптор (@hdoc), который затем может быть использован для доступа к вновь созданному представлению документа XML. Системная процедура spxmi removedocument удаляет внутреннее представление документа XML, заданное дескриптором документа, и делает недействительным этот дескриптор документа. В следующем разделе показано, как вы можете отыскивать…