Синтаксис команды:
CREATE XMLSCHEMA Expression |
Expression – строка, представляющая собой схему документа. Это может быть строковый литерал или переменная строкового типа.
Команды изменения схемы нет: повторное создание схемы с тем же именем приводит к замещению схемы, что, как мне кажется, не очень правильно.
Выше уже приводились примеры использования этой команды.
Удаление схемы
Синтаксис команды удаления схемы:
DROP XMLSCHEMA {NAMESPACE TargetNamespace } |
Удалить можно только ту схему, с которой еще не связан ни один столбец в таблицах данной базы. К сожалению, если такая связь есть, команда не удаляет схему и не выдает никаких сообщений об ошибках. Кроме этого, на данный момент нет механизмов определения, с какими полями таблиц связана данная схема, так что удалить схему практически невозможно (по крайней мере, мне не удалось удалить ни одну из ранее созданных схем!).:(
Вот такая команда должна была бы удалить схему my-first-schema:
drop xmlschema namespace 'my-first-schema' |
Ограничения текущей реализации
К сожалению, на данный момент аннотации, примечания и ограничения (unique, key и keyref) не сохраняются в метаданных базы. Кроме того, атрибут id в схеме не поддерживается.
|
|
Полностью список ограничений можно найти в MSDN.
Безопасность
По умолчанию права на создание схемы имеет только пользователь в роли db_owner. Если вы хотите наделить обычного пользователя правами на создание схемы в данной базе, необходимо воспользоваться следующей командой:
{ GRANT | DENY | REVOKE } CREATE XML SCHEMA TO <User or Group> |
Здесь User or Group – имя пользователя или группы в базе.
Например, следующий код создает логин, пользователя в базе и дает ему право на создание схем XML-документов:
--создание логинаcreate login test with password ='t', default_database = test --создание пользователяcreate user test_user for login test --разрешение создавать схемы документовgrant create xml schema to test_user |