Condividi tramite


Istruzioni DDL per la gestione di insiemi di schemi XML nel database

Come illustrato nell'argomento Gestione di insiemi di schemi XML sul server, è possibile creare insiemi di schemi XML nel database e associarli a variabili e colonne di tipo xml. Per gestire gli insiemi di schemi nel database, in SQL Server sono disponibili le istruzioni DDL seguenti:

Per utilizzare un insieme di schemi XML e i relativi schemi, è necessario innanzitutto creare l'insieme e gli schemi utilizzando l'istruzione CREATE XML SCHEMA COLLECTION. Dopo aver creato l'insieme di schemi, è quindi possibile creare le variabili e le colonne di tipo xml e associare a esse l'insieme di schemi. Si noti che dopo aver creato l'insieme, nei metadati verranno archiviati diversi componenti degli schemi. È inoltre possibile utilizzare l'istruzione ALTER XML SCHEMA COLLECTION per aggiungere altri componenti agli schemi o nuovi schemi all'insieme.

Per eliminare l'insieme di schemi, utilizzare l'istruzione DROP XML SCHEMA COLLECTION, che consente di eliminare tutti gli schemi contenuti nell'insieme e di rimuovere l'oggetto insieme. Si noti che prima di poter eliminare un insieme di schemi, è necessario che vengano soddisfatte le condizioni descritte in DROP XML SCHEMA COLLECTION.

Informazioni sui componenti dello schema

Quando si utilizza l'istruzione CREATE XML SCHEMA COLLECTION, vengono importati nel database diversi componenti dello schema, ad esempio elementi, attributi e definizioni di tipi dello schema. Se si utilizza l'istruzione DROP XML SCHEMA COLLECTION, verrà rimosso l'intero insieme.

L'istruzione CREATE XML SCHEMA COLLECTION salva i componenti dello schema in diverse tabelle di sistema.

Si consideri ad esempio lo schema seguente:

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="uri:Cust_Orders2"
            xmlns="uri:Cust_Orders2" >
  <xsd:attribute name="SomeAttribute" type="xsd:int" />
  <xsd:complexType name="SomeType" />
  <xsd:complexType name="OrderType" >
    <xsd:sequence>
      <xsd:element name="OrderDate" type="xsd:date" />
      <xsd:element name="RequiredDate" type="xsd:date" />
      <xsd:element name="ShippedDate" type="xsd:date" />
    </xsd:sequence>
    <xsd:attribute name="OrderID" type="xsd:ID" />
    <xsd:attribute name="CustomerID"  />
    <xsd:attribute name="EmployeeID"  />
  </xsd:complexType>
  <xsd:complexType name="CustomerType" >
     <xsd:sequence>
        <xsd:element name="Order" type="OrderType"
                     maxOccurs="unbounded" />
       </xsd:sequence>
      <xsd:attribute name="CustomerID" type="xsd:string" />
      <xsd:attribute name="OrderIDList" type="xsd:IDREFS" />
  </xsd:complexType>
  <xsd:element name="Customer" type="CustomerType" />
</xsd:schema>

Questo schema mostra i diversi tipi di componenti che possono essere archiviati nel database, tra i quali sono compresi SomeAttribute, SomeType, OrderType, CustomerType, Customer, Order, CustomerID, OrderID, OrderDate, RequiredDate e ShippedDate.

Tipi di componenti

I componenti dello schema archiviati nel database rientrano nelle categorie seguenti:

  • ELEMENT
  • ATTRIBUTE
  • TYPE (per tipi semplici o complessi)
  • ATTRIBUTEGROUP
  • MODELGROUP

Di seguito è illustrata la relazione esistente tra i componenti e le categorie specifiche:

  • SomeAttribute è un componente di tipo ATTRIBUTE.
  • SomeType, OrderType e CustomerType sono componenti di tipo TYPE.
  • Customer è un componente di tipo ELEMENT.

Quando si importa uno schema nel database, SQL Server non archivia direttamente lo schema, ma i vari singoli componenti. Ciò significa che il tag <Schema> non viene archiviato, ma vengono mantenuti i componenti definiti al suo interno. Non vengono mantenuti tutti gli elementi dello schema. Se il tag <Schema> contiene attributi che specificano il comportamento predefinito dei relativi componenti, tali attributi vengono spostati nei componenti dello schema durante il processo di importazione, come illustrato nella tabella seguente.

Nome dell'attributo Comportamento

attributeFormDefault

Attributo form applicato a tutte le dichiarazioni di attributo nello schema nelle quali non è già presente e dove il valore viene impostato sul valore dell'attributo attributeFormDefault.

elementFormDefault

Attributo form applicato a tutte le dichiarazioni di elemento nello schema nelle quali non è già presente e dove il valore viene impostato sul valore dell'attributo elementFormDefault.

blockDefault

Attributo block applicato a tutte le dichiarazioni di elemento e definizioni di tipo nelle quali non è già presente e dove il valore viene impostato sul valore dell'attributo blockDefault.

finalDefault

Attributo final applicato a tutte le dichiarazioni di elemento e definizioni di tipo nelle quali non è già presente e dove il valore viene impostato sul valore dell'attributo finalDefault.

targetNamespace

Le informazioni sui componenti appartenenti allo spazio dei nomi di destinazione vengono archiviate nei metadati.

Vedere anche

Riferimento

Linee guida e limitazioni per l'utilizzo di insiemi di schemi XML nel server
Autorizzazioni per un insieme di schemi XML
Gestione di insiemi di schemi XML sul server

Concetti

Tipo di dati XML
Codice XML tipizzato e non tipizzato

Guida in linea e informazioni

Assistenza su SQL Server 2005