Предоставление разрешений на коллекции схем XMLGrant Permissions on an XML Schema Collection

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

На создание коллекции схем XML, а также на объекты коллекции схем XML можно предоставлять разрешения.You can grant permissions to create an XML schema collection and also grant permissions on an XML schema collection object.

Предоставление разрешений на создание коллекции XML-схемGranting Permission to Create an XML Schema Collection

Для создания коллекции XML-схем требуются следующие разрешения.To create an XML schema collection, the following permissions are required:

  • Участнику требуется разрешение CREATE XML SCHEMA COLLECTION на уровне базы данных.The principal requires CREATE XML SCHEMA COLLECTION permission at the database-level.

  • Поскольку областью действия коллекции XML-схем является реляционная схема, участнику требуется разрешение ALTER на реляционную схему.Because the XML schema collections are relational schema-scoped, the principal must also have ALTER permission on the relational schema.

Следующие разрешения позволяют участнику создавать коллекцию XML-схем в реляционной схеме в базе данных сервера:The following permissions let a principal create an XML schema collection in a relational schema in a database on a server:

  • разрешение CONTROL на сервере;CONTROL permission on the server

  • разрешение ALTER ANY DATABASE на сервере;ALTER ANY DATABASE permission on the server

  • разрешение ALTER в базе данных;ALTER permission on the database

  • разрешение CONTROL в базе данных;CONTROL permission in the database

  • разрешения ALTER ANY SCHEMA и CREATE XML SCHEMA COLLECTION в базе данных;ALTER ANY SCHEMA permission and CREATE XML SCHEMA COLLECTION permission in the database

  • разрешение ALTER или CONTROL в реляционной схеме и разрешение CREATE XML SCHEMA COLLECTION в базе данных.ALTER or CONTROL permission on the relational schema and CREATE XML SCHEMA COLLECTION permission in the database

Этот метод разрешений используется в следующем примере.This last method of permissions is used in the following example.

Владелец реляционной схемы становится владельцем коллекции XML-схем, созданной в данной схеме.The owner of the relational schema becomes the owner of the XML schema collection created in that schema. Этот владелец получает полный контроль над коллекцией XML-схем.This owner then has full control over the XML schema collection. Поэтому он может изменять коллекцию XML-схем, вводить XML-столбец и удалять коллекцию XML-схем.Therefore, this owner can modify the XML schema collection, type an xml column, or drop the XML schema collection.

Предоставление разрешений на объект коллекции XML-схемGranting Permissions on an XML Schema Collection Object

В коллекции XML-схем допускаются следующие разрешения.The following permissions are allowed on the XML schema collection:

  • Разрешение ALTER требуется при изменении содержимого существующей коллекции XML-схем с помощью инструкции ALTER XML SCHEMA COLLECTION.The ALTER permission is required when modifying contents of an existing XML schema collection by using the ALTER XML SCHEMA COLLECTION statement.

  • Разрешение CONTROL дает возможность пользователю выполнять любые операции в коллекции XML-схем.The CONTROL permission lets a user perform any operation on the XML schema collection.

  • Разрешение TAKE OWNERSHIP необходимо для передачи прав на обладание коллекцией схем XML от одного участника к другому.The TAKE OWNERSHIP permission is required to transfer ownership of the XML schema collection from one principal to another.

  • Разрешение REFERENCES дает участнику право на использование коллекции схем XML для типизации или ограничения типа столбцов xml в таблицах, представлениях и параметрах.The REFERENCES permission authorizes the principal to use the XML schema collection to type or constrain xml type columns, in tables and views and parameters. Кроме того, разрешение REFERENCES необходимо, если одна коллекция схем XML ссылается на другую.The REFERENCES permission is also required when one XML schema collection refers to another.

  • Разрешение VIEW DEFINITION позволяет участнику выполнять запрос к содержимому коллекции XML-схем через XML_SCHEMA_NAMESPACE или представления каталогов при условии, что этот участник также имеет разрешение ALTER, REFERENCES или CONTROL на эту коллекцию.The VIEW DEFINITION permission allows the principal to query the contents of an XML schema collection either through XML_SCHEMA_NAMESPACE or through the catalog views, provided this principal also has one of the ALTER, REFERENCES, or CONTROL permissions on the collection.

  • Разрешение EXECUTE необходимо для проверки значений, вставленных или обновленных участником, по коллекции схем XML, которая типизирует или ограничивает столбцы, переменные и параметры типа xml .The EXECUTE permission is required to validate values inserted or updated by the principal against the XML schema collection that is typing or constraining the xml type columns, variables, and parameters. Это разрешение требуется также для запросов к XML-данным, хранящимся в этих столбцах и переменных.You also need this permission when you are querying the XML stored in these columns and variables.

ПримерыExamples

Представленные в следующих примерах сценарии отображают организацию разрешений на XML-схемы.The scenarios in the following examples illustrate how XML schema permissions work. В каждом примере создается соответствующая тестовая база данных, реляционные схемы и имена входа.Each example creates the necessary test database, relational schemas, and logins. Этим именам входа предоставляются необходимые разрешения на коллекции XML-схем.These logins are granted the necessary XML schema collection permissions. После завершения работы в каждом примере выполняются действия по очистке.Each example does the necessary clean up at the end.

A.A. Предоставление разрешений на создание коллекции схем XMLGranting permissions to create an XML schema collection

В следующем примере показано предоставление разрешений на создание участником коллекции схем XML.The following example shows how to grant permissions so that a principal can create an XML schema collection. В примере создается образец базы данных и пользователь TestLogin1.The example creates a sample database and a test user, TestLogin1. TestLogin1 предоставляется разрешение ALTER в реляционной схеме и разрешение CREATE XML SCHEMA COLLECTION в базе данных.TestLogin1 is then given ALTER permission on the relational schema and given CREATE XML SCHEMA COLLECTION permission on the database. С этими разрешениями пользователь TestLogin1 успешно создает образец коллекции схем XML.With these permissions, TestLogin1 succeeds in creating a sample XML schema collection.

SETUSER  
GO  
USE master  
GO  
CREATE LOGIN TestLogin1 WITH password='SQLSvrPwd1'  
GO  
CREATE DATABASE SampleDBForSchemaPermissions  
GO  
USE SampleDBForSchemaPermissions  
GO  
CREATE USER TestLogin1  
GO  
-- User must have ALTER permission on the relational schema in the database.  
GRANT ALTER ON SCHEMA::dbo TO TestLogin1  
GO  
-- User also must have permission to create XML schema collections in the database.  
GRANT CREATE XML SCHEMA COLLECTION   
TO TestLogin1  
GO  
-- Execute CREATE XML SCHEMA COLLECTION.  
SETUSER 'TestLogin1'  
GO  
CREATE XML SCHEMA COLLECTION myTestSchemaCollection AS '<?xml version="1.0" encoding="UTF-8" ?>  
<xsd:schema targetNamespace="https://schemas.adventure-works.com/Additional/ContactInfo"   
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
elementFormDefault="qualified">  
<xsd:element name="AdditionalContactInfo" >  
  <xsd:complexType mixed="true" >  
    <xsd:sequence>  
      <xsd:any processContents="strict"    
               namespace="https://schemas.adventure-works.com/Contact/Record   
                          https://schemas.adventure-works.com/AdditionalContactTypes"  
               minOccurs="0" maxOccurs="unbounded" />  
    </xsd:sequence>  
  </xsd:complexType>  
</xsd:element>  
<xsd:element name="root" type="xsd:byte"/>  
</xsd:schema>'  
GO  
-- Final cleanup  
SETUSER  
GO  
USE master  
GO  
DROP DATABASE SampleDBForSchemaPermissions  
GO  
DROP LOGIN TestLogin1  
GO  

Б.B. Предоставление разрешений на использование существующей коллекции схем XMLGranting permission to use an existing XML schema collection

Следующий пример далее иллюстрирует модель разрешений для коллекции схем XML.The following example further shows the permission model for the XML schema collection. В нем показаны различные разрешения, необходимые для создания коллекции схем XML и работы с ней.The example shows how different permissions are required to create and use the XML schema collection.

В примере создается образец базы данных и имя входа TestLogin1.The example creates a test database and a login, TestLogin1. TestLogin1 создает коллекцию схем XML в базе данных.TestLogin1 creates an XML schema collection in the database. Имя входа создает таблицу и с помощью коллекции схем XML создает типизированный XML-столбец.The login then creates a table and uses the XML schema collection to create a typed xml column. Затем пользователь вставляет данные и выполняет к ним запрос.The user then inserts data and queries it. Для всех этих шагов необходимы соответствующие разрешения схемы, что отражается в программном коде.All these steps require the necessary schema permissions, as shown in the code.

SETUSER  
GO  
USE master  
GO  
CREATE LOGIN TestLogin1 WITH password='SQLSvrPwd1'  
GO  
CREATE DATABASE SampleDBForSchemaPermissions  
GO  
USE SampleDBForSchemaPermissions  
GO  
CREATE USER TestLogin1  
GO  
-- Grant permission to the user.  
SETUSER  
GO  
-- User must have ALTER permission on the relational schema in the database.  
GRANT ALTER ON SCHEMA::dbo TO TestLogin1  
GO  
-- User also must have permission to create XML schema collections in the database.  
GRANT CREATE XML SCHEMA COLLECTION   
TO TestLogin1  
GO  
-- Now user can execute the previous CREATE XML SCHEMA COLLECTION statement.  
SETUSER 'TestLogin1'  
GO  
CREATE XML SCHEMA COLLECTION myTestSchemaCollection AS '<?xml version="1.0" encoding="UTF-8" ?>  
<xsd:schema targetNamespace="https://schemas.adventure-works.com/Additional/ContactInfo"   
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
elementFormDefault="qualified">  
  
<xsd:element name="AdditionalContactInfo" >  
  <xsd:complexType mixed="true" >  
    <xsd:sequence>  
      <xsd:any processContents="strict"    
               namespace="https://schemas.adventure-works.com/Contact/Record   
                          https://schemas.adventure-works.com/AdditionalContactTypes"  
               minOccurs="0" maxOccurs="unbounded" />  
    </xsd:sequence>  
  </xsd:complexType>  
</xsd:element>  
<xsd:element name="telephone" type="xsd:string" />  
</xsd:schema>'  
GO  
  
-- Create a table by using the collection to type an XML column.   
--TestLogin1 must have permission to create a table.  
SETUSER  
GO  
GRANT CREATE TABLE TO TestLogin1  
GO  
-- The user also must have REFERENCES permission to use the XML schema collection  
-- to create a typed XML column (REFERENCES permission on schema   
-- collection is not needed).  
GRANT REFERENCES ON XML SCHEMA COLLECTION::myTestSchemaCollection   
TO TestLogin1  
GO  
-- Now user can create a table and use the XML schema collection to create   
-- a typed XML column.  
SETUSER 'TestLogin1'  
GO  
CREATE TABLE MyTestTable (xmlCol xml (dbo.myTestSchemaCollection))  
GO  
-- To insert data in the table, the user needs EXECUTE permission on the XML schema collection.  
-- GRANT EXECUTE permission to TestLogin2 on the xml schema collection.  
SETUSER  
GO  
GRANT EXECUTE ON XML SCHEMA COLLECTION::myTestSchemaCollection   
TO TestLogin1  
GO  
-- TestLogin1 does not own the dbo schema. This user must have INSERT permission.  
GRANT INSERT TO TestLogin1  
GO  
-- Now the user can insert data into the table.  
SETUSER 'TestLogin1'  
GO  
INSERT INTO MyTestTable VALUES('  
<telephone xmlns="https://schemas.adventure-works.com/Additional/ContactInfo">111-1111</telephone>  
')  
GO  
-- To query the table, TestLogin1 must have permissions: SELECT on the table and EXECUTE on the XML schema collection.  
SETUSER  
GO  
GRANT SELECT TO TestLogin1  
GO  
-- TestLogin1 already has EXECUTE permission on the schema (granted before inserting a record in the table).  
SELECT xmlCol.query('declare default element namespace "https://schemas.adventure-works.com/Additional/ContactInfo" /telephone[1]')  
FROM MyTestTable  
GO  
-- To show that the user must have EXECUTE permission to query, revoke the  
-- previously granted permission and return the query.  
SETUSER  
GO  
REVOKE EXECUTE ON XML SCHEMA COLLECTION::myTestSchemaCollection to TestLogin1  
Go  
-- Now TestLogin1 cannot execute the query.  
SETUSER 'TestLogin1'  
GO  
SELECT xmlCol.query('declare default element namespace "https://schemas.adventure-works.com/Additional/ContactInfo" /telephone[1]')  
FROM MyTestTable  
GO  
-- Final cleanup   
SETUSER  
GO  
USE master  
GO  
DROP DATABASE SampleDBForSchemaPermissions  
GO  
DROP LOGIN TestLogin1  
GO  

В.C. Предоставление разрешения ALTER на коллекцию схем XMLGranting ALTER permission on an XML schema collection

Для изменения существующей коллекции схем XML в базе данных пользователю необходимо разрешение ALTER.A user must have ALTER permission to modify an existing XML schema collection in the database. В следующем примере показано предоставление разрешения ALTER .The following example shows how to grant ALTER permission.

SETUSER  
GO  
USE master  
GO  
CREATE LOGIN TestLogin1 WITH password='SQLSvrPwd1'  
GO  
CREATE DATABASE SampleDBForSchemaPermissions  
GO  
USE SampleDBForSchemaPermissions  
GO  
CREATE USER TestLogin1  
GO  
-- Grant permission to the user.  
SETUSER  
GO  
-- User must have ALTER permission on the relational schema in the database.  
GRANT ALTER ON SCHEMA::dbo TO TestLogin1  
GO  
-- User also must have permission to create XML schema collections in the database.  
GRANT CREATE XML SCHEMA COLLECTION   
TO TestLogin1  
GO  
-- Now user can execute the previous CREATE XML SCHEMA COLLECTION statement.  
SETUSER 'TestLogin1'  
GO  
CREATE XML SCHEMA COLLECTION myTestSchemaCollection AS '<?xml version="1.0" encoding="UTF-8" ?>  
<xsd:schema targetNamespace="https://schemas.adventure-works.com/Additional/ContactInfo"   
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
elementFormDefault="qualified">  
  
<xsd:element name="AdditionalContactInfo" >  
  <xsd:complexType mixed="true" >  
    <xsd:sequence>  
      <xsd:any processContents="strict"    
               namespace="https://schemas.adventure-works.com/Contact/Record   
                          https://schemas.adventure-works.com/AdditionalContactTypes"  
               minOccurs="0" maxOccurs="unbounded" />  
    </xsd:sequence>  
  </xsd:complexType>  
</xsd:element>  
<xsd:element name="telephone" type="xsd:string" />  
</xsd:schema>'  
GO  
-- Grant ALTER permission to TestLogin1.  
setuser  
GO  
GRANT ALTER ON XML SCHEMA COLLECTION::myTestSchemaCollection TO TestLogin1  
GO  
-- TestLogin1 should be able to add components to the collection.  
SETUSER 'TestLogin1'  
GO  
ALTER XML SCHEMA COLLECTION myTestSchemaCollection ADD '  
<xsd:schema targetNamespace="https://schemas.adventure-works.com/Additional/ContactInfo"   
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns="https://schemas.adventure-works.com/Additional/ContactInfo"   
elementFormDefault="qualified">  
 <xsd:element name="pager" type="xsd:string"/>  
</xsd:schema>  
'  
Go  
-- Final cleanup   
SETUSER  
GO  
USE master  
GO  
DROP DATABASE SampleDBForSchemaPermissions  
GO  
DROP LOGIN TestLogin1  
GO  

Г.D. Предоставление разрешения TAKE OWNERSHIP на коллекцию схем XMLGranting TAKE OWNERSHIP permission on an XML schema collection

В следующем примере показано, как права владельца коллекции схем XML могут передаваться от одного пользователя другому.The following example shows how to transfer XML schema ownership from one user to another. Чтобы пример был более интересным, пользователи работают в разных реляционных схемах.To make the example more interesting, the users in this example work in different default relational schemas.

Код в примере выполняет следующие действия.This example does the following:

  • Создается база данных с двумя реляционными схемами — dbo и myOtherDBSchema.Creates a database with two relational schemas, dbo and myOtherDBSchema).

  • Создаются два пользователя, TestLogin1 и TestLogin2.Creates two users, TestLogin1 and TestLogin2. TestLogin2 назначается владельцем реляционной схемы myOtherDBSchema .TestLogin2 is made the owner of the myOtherDBSchema relational schema.

  • TestLogin1 создает коллекцию схем XML в реляционной схеме dbo .TestLogin1 creates an XML schema collection in the dbo relational schema.

  • TestLogin1 предоставляет пользователю TAKE OWNERSHIP разрешение TestLogin2.TestLogin1 then gives TAKE OWNERSHIP permission on the XML schema collection to TestLogin2.

  • TestLogin2 становится владельцем коллекции схем XML в схеме myOtherDBSchema, реляционная схема коллекции схем XML не изменяется.TestLogin2 becomes the owner of the XML schema collection in myOtherDBSchema, without changing the relational schema of the XML schema collection.

CREATE LOGIN TestLogin1 with password='SQLSvrPwd1'  
GO  
CREATE LOGIN TestLogin2 with password='SQLSvrPwd2'  
GO  
CREATE DATABASE SampleDBForSchemaPermissions  
GO  
USE SampleDBForSchemaPermissions  
GO  
-- Create another relational schema in the database.  
CREATE SCHEMA myOtherDBSchema  
GO  
-- Create users in the database. Note TestLogin2's default schema is  
-- myOtherDBSchema.  
CREATE USER TestLogin1  
GO  
CREATE USER TestLogin2 WITH DEFAULT_SCHEMA=myOtherDBSchema  
GO  
-- TestLogin2 will own myOtherDBSchema relational schema.  
ALTER AUTHORIZATION ON SCHEMA::myOtherDBSchema TO TestLogin2  
GO  
  
-- For TestLogin1 to create XML schema collection, the following  
-- permission is required.  
GRANT CREATE XML SCHEMA COLLECTION   
TO TestLogin1  
GO  
GRANT ALTER ON SCHEMA::dbo TO TestLogin1  
GO  
-- Now TestLogin1 can create an XML schema collection.  
setuser 'TestLogin1'  
GO  
CREATE XML SCHEMA COLLECTION myTestSchemaCollection AS '<?xml version="1.0" encoding="UTF-8" ?>  
<xsd:schema targetNamespace="https://schemas.adventure-works.com/Additional/ContactInfo"   
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
elementFormDefault="qualified">  
  
<xsd:element name="AdditionalContactInfo" >  
 <xsd:complexType mixed="true" >  
    <xsd:sequence>  
      <xsd:any processContents="strict"   
               namespace="https://schemas.adventure-works.com/Contact/Record   
                          https://schemas.adventure-works.com/AdditionalContactTypes"  
               minOccurs="0" maxOccurs="unbounded" />  
    </xsd:sequence>  
 </xsd:complexType>  
</xsd:element>  
<xsd:element name="telephone" type="xsd:string" />  
</xsd:schema>'  
GO  
  
-- Grant TAKE OWNERSHIP to TestLogin2.  
SETUSER  
GO  
GRANT TAKE OWNERSHIP ON XML SCHEMA COLLECTION::dbo.myTestSchemaCollection   
TO TestLogin2  
GO  
-- Verify the owner. Note the UserName and Principal_id is null.   
SELECT user_name(sys.xml_schema_collections.principal_id) as UserName,   
       sys.schemas.name as RelSchemaName,*   
FROM   sys.xml_schema_collections   
      JOIN sys.schemas   
      ON sys.schemas.schema_id=sys.xml_schema_collections.schema_id  
GO  
-- TestLogin2 can take ownership now.  
setuser 'TestLogin2'  
GO  
ALTER AUTHORIZATION ON XML SCHEMA COLLECTION::dbo.myTestSchemaCollection   
TO TestLogin2  
GO  
-- Note that although TestLogin2 is the owner,the XML schema collection   
-- is still in dbo.  
SELECT user_name(sys.xml_schema_collections.principal_id) as UserName,   
      sys.schemas.name as RelSchemaName,*   
FROM sys.xml_schema_collections JOIN sys.schemas   
     ON sys.schemas.schema_id=sys.xml_schema_collections.schema_id  
GO  
  
-- TestLogin2 moves the collection from dbo to myOtherDBSchema relational schema.  
-- TestLogin2 already has all necessary permissions.  
-- 1) TestLogin2 owns the destination relational schema so he can alter it.  
-- 2) TestLogin2 owns the XML schema collection (therefore, has CONTROL permission).  
ALTER SCHEMA myOtherDBSchema  
TRANSFER XML SCHEMA COLLECTION::dbo.myTestSchemaCollection  
GO  
  
SELECT user_name(sys.xml_schema_collections.principal_id) as UserName,   
       sys.schemas.name as RelSchemaName,*   
FROM   sys.xml_schema_collections JOIN sys.schemas   
       ON sys.schemas.schema_id=sys.xml_schema_collections.schema_id  
GO  
-- Final cleanup   
SETUSER  
GO  
USE master  
GO  
DROP DATABASE SampleDBForSchemaPermissions  
GO  
DROP LOGIN TestLogin1  
DROP LOGIN TestLogin2  
go   

Д.E. Предоставление разрешения VIEW DEFINITION на коллекцию схем XMLGranting VIEW DEFINITION permission on an XML schema collection

В примере показано, каким образом предоставляются разрешения VIEW DEFINITION на коллекцию схем XML.The following example shows how to grant VIEW DEFINITION permissions for an XML schema collection.

SETUSER  
GO  
USE master  
GO  
IF EXISTS( SELECT * FROM sysdatabases WHERE name='permissionsDB' )  
   DROP DATABASE permissionsDB  
GO  
IF EXISTS( SELECT * FROM sys.sql_logins WHERE name='schemaUser' )  
   DROP LOGIN schemaUser  
GO  
CREATE DATABASE permissionsDB  
GO  
CREATE LOGIN schemaUser WITH PASSWORD='Pass#123',DEFAULT_DATABASE=permissionsDB  
GO  
GRANT CONNECT SQL TO schemaUser  
GO  
USE permissionsDB  
GO  
CREATE USER schemaUser WITH DEFAULT_SCHEMA=dbo  
GO  
CREATE XML SCHEMA COLLECTION MySC AS '  
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ns"  
xmlns:ns="http://ns">  
  
   <simpleType name="ListOfIntegers">  
      <list itemType="integer"/>  
   </simpleType>  
  
   <element name="root" type="ns:ListOfIntegers"/>  
  
   <element name="gRoot" type="gMonth"/>  
  
</schema>  
'  
GO  
-- schemaUser cannot see the contents of the collection.  
SETUSER 'schemaUser'  
GO  
SELECT XML_SCHEMA_NAMESPACE(N'dbo',N'MySC')  
GO  
  
-- Grant schemaUser VIEW DEFINITION and REFERENCES permissions  
-- on the XML schema collection.  
SETUSER  
GO  
GRANT VIEW DEFINITION ON XML SCHEMA COLLECTION::dbo.MySC TO schemaUser  
GO  
GRANT REFERENCES ON XML SCHEMA COLLECTION::dbo.MySC TO schemaUser  
GO  
-- Now schemaUser can see the content of the collection.  
SETUSER 'schemaUser'  
GO  
SELECT XML_SCHEMA_NAMESPACE(N'dbo',N'MySC')  
GO  
-- Revoke schemaUser VIEW DEFINITION permissions  
-- on the XML schema collection.  
SETUSER  
GO  
REVOKE VIEW DEFINITION ON XML SCHEMA COLLECTION::dbo.MySC FROM schemaUser  
GO  
-- Now schemaUser cannot see the contents of   
-- the collection.  
setuser 'schemaUser'  
GO  
SELECT XML_SCHEMA_NAMESPACE(N'dbo',N'MySC')  
GO  

См. также:See Also

Данные XML (SQL Server) XML Data (SQL Server)
Сравнение типизированного и нетипизированного XML Compare Typed XML to Untyped XML
Коллекции XML-схем (SQL Server) XML Schema Collections (SQL Server)
Требования и ограничения для коллекций XML-схем на сервереRequirements and Limitations for XML Schema Collections on the Server