Бөлісу құралы:


Поддержка типов данных xml в SQLXML 4.0

Область применения: SQL Server База данных SQL Azure

Начиная с SQL Server 2005 (9.x), SQL Server поддерживает xml-типизированные данные с помощью типа данных XML . В этом разделе содержатся сведения о том, как SQLXML 4.0 распознает экземпляры типа данных XML и реализует поддержку для них.

Работа с типами данных xml

Чтобы узнать больше о работе с таблицами SQL, реализующими столбцы типа данных XML , приведены следующие примеры:

Задача Пример Раздел
Сопоставление и включение xml-столбца в xml-представление «Сопоставление XML-элемента со столбцом типа данных xml» Сопоставление элементов и атрибутов XSD с таблицами и столбцами по умолчанию (SQLXML 4.0)
Вставка данных в xml-столбец с помощью исправлений «Вставка данных в столбец типа данных xml» Вставка данных с помощью диаграмм обновления XML (SQLXML 4.0)
Массовая загрузка XML-данных в xml-столбец «Массовая загрузка XML-данных в столбцы типа данных xml» Примеры массовой загрузки XML (SQLXML 4.0)

Рекомендации и ограничения

  • <xsd:any> нельзя сопоставить со столбцом , включая тип данных XML . Поддержка в SQLXML для этого сценария предоставляется с помощью заметки sql:overflow-field . Другим решением является сопоставление поля типа данных XML как элемента xsd:anyType. Этот способ показан в примере «Сопоставление XML-элемента со столбцом типа данных xml», ссылка на который дана в таблице выше.

  • Запрос XPath в содержимое столбцов типа данных XML не поддерживается.

  • Использование столбца типа данных XML в заметках, где оно не поддерживается (например, sql:relationship и sql:key-fields) или может привести к ошибкам SQL Server, которые не будут находиться в ловушке компонентами среднего уровня, реализующими SQLXML 4.0. Это происходит потому, что SQLXML не требуются сведения о типах SQL. Это напоминает поведение SQLXML в случае с другими типами данных, например двоичными и BLOB.

  • Сопоставление xml-столбцов поддерживается только для схем XSD. Схемы XDR не поддерживают сопоставление xml-столбцов .

  • SQLXML 4.0 использует поддержку синтаксического анализа XML, предоставляемую в SQL Server. Столбец XML можно сопоставить как типизированный XML или нетипизированный XML. В обоих случаях SQLXML 4.0 не проверяет входной XML. Если входной XML не является допустимым или хорошо сформированным, SQL Server сообщает о нем в SQLXML и распространяет все соответствующие сведения об ошибках, возвращаемые сервером пользователю.

  • SQLXML 4.0 использует ограниченную поддержку DTD, предоставляемых в SQL Server. SQL Server позволяет использовать внутренний DTD в данных типа данных xml , которые можно использовать для предоставления значений по умолчанию и замены ссылок сущностей на развернутое содержимое. SQLXML передает XML-данные серверу «как есть» (в том числе внутренние DTD). Можно преобразовывать определения DTD в документы схем XML (XSD) при помощи инструментов сторонних компаний и загружать эти данные вместе со встроенными схемами XSD в базу данных.

  • SQLXML 4.0 не сохраняет инструкции по обработке объявлений XML (например, на основе поведения SQL Server). Вместо этого объявление XML обрабатывается как директива средства синтаксического анализа XML SQL Server, а его атрибуты (версия, кодировка и автономная) теряются после преобразования данных в тип данных XML . Все XML-данные хранятся в кодировке UCS-2. Сохраняются все остальные инструкции по обработке в экземпляре XML; Они разрешены в xml-столбце и могут поддерживаться SQLXML.

См. также

XML-данные (SQL Server)