Поделиться через


Требования и ограничения для коллекций схем XML на сервере

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

Язык определения XML-схем (XSD) имеет некоторые ограничения при проверке правильности столбцов SQL, использующих тип данных xml . В следующей таблице приведены сведения об этих ограничениях и рекомендациях по изменению схемы XSD, чтобы она работала с SQL Server. В статьях этого раздела содержатся дополнительные сведения о конкретных ограничениях и рекомендациях по работе с ними.

Товар Ограничение
minOccurs и maxOccurs Значения атрибутов minOccurs и maxOccurs должны укладываться в 4-байтовые целые числа. Схемы, которые не соответствуют серверу.
<xsd:choice> SQL Server отклоняет схемы, имеющие <частицу xsd:choice> без дочерних элементов, если частица не определена с минимальным значением атрибутаOccurs нулю.
<xsd:include> В настоящее время SQL Server не поддерживает этот элемент. XML-схемы, содержащие данный элемент, отклоняются сервером.

В качестве решения XML-схемы, включающие <директиву xsd:include> , можно предварительно обработать для копирования и слияния содержимого всех включенных схем в одну схему для отправки на сервер. Дополнительные сведения см. в разделе Предварительная обработка схемы для слияния включаемых схем.
<xsd:key, xsd:keyref>> и <xsd:unique<> В настоящее время SQL Server не поддерживает эти ограничения на основе XSD для применения уникальности или установки ключей и ссылок на ключи. Xml-схемы, содержащие эти элементы, не могут быть зарегистрированы.
<xsd:redefine> SQL Server не поддерживает этот элемент. Сведения о другом способе обновления схем см. в разделе "<Элемент xsd:redefine>".
<Значения xsd:simpleType> SQL Server поддерживает только миллисекундную точность для простых типов, имеющих второй компонент, отличный от xs:time и xs:dateTime, а также точность 100-nanosecond для xs:time и xs:dateTime. SQL Server накладывает ограничения на все распознанные перечисления простых типов XSD.

SQL Server не поддерживает использование значения NaN в <объявлениях xsd:simpleType> .

Дополнительные сведения см. в разделе "Значения для <объявлений xsd:simpleType>".
xsi:schemaLocation и xsi:noNamespaceSchemaLocation SQL Server игнорирует эти атрибуты, если они присутствуют в данных экземпляра XML, вставленных в столбец или переменную типа данных XML .
xs:QName SQL Server не поддерживает типы, производные от xs:QName , использующих элемент ограничения схемы XML.

SQL Server не поддерживает типы объединения с xs:QName в качестве элемента-члена.

Дополнительные сведения см. в разделе Тип xs:QName.
Добавление элементов к существующей группе замещения Невозможно добавить участников в существующую группу подстановок в коллекции схем XML. Группа подстановок в схеме XML ограничена тем, что головной элемент и все его элементы-члены должны быть определены в том же {CREATE | Инструкция ALTER} XML SCHEMA COLLECTION.
Канонические формы и ограничения шаблона Каноническое представление значения не может нарушать ограничение шаблона для его типа. Дополнительные сведения см. в разделе Канонические формы и ограничения шаблона.
Аспекты перечисления SQL Server не поддерживает XML-схемы с типами, имеющими аспекты шаблона или перечисления, которые нарушают эти аспекты.
Длина аспекта Аспекты length, minLengthи maxLength хранятся как тип long . Этот тип является 32-разрядным типом. Поэтому для этих значений допускаются значения в пределах 2^31.
Атрибут идентификатора Каждый компонент XML-схемы может иметь атрибут ID. SQL Server применяет уникальность для <объявлений атрибутов xsd:attribute> типа идентификатора, но не сохраняет эти значения. Область применения уникальности — {CREATE | Инструкция ALTER} XML SCHEMA COLLECTION.
Тип идентификатора SQL Server не поддерживает элементы типа xs:ID, xs:IDREF или xs:IDREFS. Схема не может объявлять элементы этого типа или элементы, полученные ограничением или расширением этого типа.
Локальное пространство имен Локальное пространство имен должно быть явно указано для <элемента xsd:any> . SQL Server отклоняет схемы, использующие пустую строку ("") в качестве значения атрибута пространства имен. Вместо этого SQL Server требует явного использования ##local, чтобы указать неквалифицированный элемент или атрибут в качестве экземпляра подстановочного знака.
Смешанный тип и простое содержимое SQL Server не поддерживает ограничение смешанного типа простым содержимым. Дополнительные сведения см. в разделе Смешанный тип и простое содержимое.
NOTATION, тип SQL Server не поддерживает тип NOTATION.
Условия исчерпания памяти При работе с большими коллекциями схем XML может возникнуть состояние вне памяти. Решения этой проблемы см. в разделе Большие коллекции XML-схем и условия нехватки памяти.
Повторяющиеся значения SQL Server отклоняет схемы, в которых блок или окончательный атрибут имеет повторяющиеся значения, такие как ограничение ограничений и расширение расширения.
Идентификаторы компонента схемы SQL Server ограничивает идентификаторы компонентов схемы максимальной длиной 1000 символов Юникода. Кроме того, в идентификаторах не поддерживаются суррогатные пары символов.
Информация о часовом поясе В SQL Server 2008 (10.0.x) и более поздних версиях сведения часового пояса полностью поддерживаются для значений часового пояса xs:date, xs:time и xs:dateTime для проверки схемы XML. При использовании режима обратной совместимости SQL Server 2005 (9.x) информация часового пояса всегда нормализуется по универсальному времени (среднее время Гринвича). Для элементов типа dateTime сервер преобразует и вернет указанное время во время по Гринвичу, используя величину смещения (-05:00).
Типы объединения SQL Server не поддерживает ограничения из типов профсоюзов.
Десятичные числа переменной точности SQL Server не поддерживает десятичные разряды переменной точности. Тип xs:decimal представляет десятичные числа произвольной точности. Обработчики XML, соответствующие минимальным требованиям, должны поддерживать десятичные числа как минимум totalDigits=18знаков. SQL Server поддерживает totalDigits=38, , но ограничивает дробные цифры до 10. Все экземпляры значений xs:decimal внутренне представляются сервером в виде числового типа SQL (38, 10).

Следующие шаги

См. также