Freigeben über


DDL zum Verwalten der XML-Schemaauflistungen in der Datenbank

Wie im Thema Verwalten von XML-Schemaauflistungen auf dem Server beschrieben wird, können Sie XML-Schemaauflistungen in der Datenbank erstellen und Variablen und Spalten des xml-Typs zuordnen. SQL Server bietet die folgenden DDL-Anweisungen zum Verwalten von Schemaauflistungen:

Um eine XML-Schemaauflistung und die darin enthaltenen Schemas zu verwenden, müssen Sie zuerst mit der CREATE XML SCHEMA COLLECTION-Anweisung die Auflistung und die Schemas erstellen. Nach dem Erstellen der Schemaauflistung können Sie Variablen und Spalten vom Typ xml erstellen und diese der Schemaauflistung zuordnen. Beachten Sie, dass nach dem Erstellen der Schemaauflistung verschiedene Schemakomponenten in den Metadaten gespeichert werden. Mit der Anweisung ALTER XML SCHEMA COLLECTION können Sie zu vorhandenen Schemas außerdem weitere Komponenten oder zu vorhandenen Auflistungen neue Schemas hinzufügen.

Zum Löschen der Schemaauflistung verwenden Sie die DROP XML SCHEMA COLLECTION-Anweisung. Diese Anweisung löscht alle in der Auflistung enthaltenen Schemas und entfernt das Auflistungsobjekt. Beachten Sie, dass zum Löschen einer Schemaauflistung zuerst die unter DROP XML SCHEMA COLLECTION beschriebenen Bedingungen erfüllt sein müssen.

Grundlegendes zu Schemakomponenten

Wenn Sie die CREATE XML SCHEMA COLLECTION-Anweisung verwenden, werden verschiedene Schemakomponenten in die Datenbank importiert. Zu den Schemakomponenten gehören Schemaelemente, -attribute und -typdefinitionen. Wenn Sie die DROP XML SCHEMA COLLECTION-Anweisung verwenden, wird die komplette Schemaauflistung entfernt.

CREATE XML SCHEMA COLLECTION speichert die Schemakomponenten in verschiedenen Systemtabellen.

Angenommen, das folgende Schema liegt vor:

<?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>

Das obige Schema zeigt die verschiedenen Attributtypen von Komponenten, die in der Datenbank gespeichert werden können. Hierzu zählen SomeAttribute, SomeType, OrderType, CustomerType, Customer, Order, CustomerID, OrderID, OrderDate, RequiredDate und ShippedDate.

Komponentenarten

Die in der Datenbank gespeicherten Schemakomponenten fallen in folgende Kategorien:

  • ELEMENT
  • ATTRIBUTE
  • TYPE (für einfache oder komplexe Typen)
  • ATTRIBUTEGROUP
  • MODELGROUP

Im Folgenden sind die Beziehungen zwischen den Komponenten der einzelnen Kategorien dargestellt:

  • SomeAttribute ist eine Komponente der Art ATTRIBUTE.
  • SomeType, OrderType und CustomerType sind Komponenten der Art TYPE.
  • Customer ist eine Komponente der Art ELEMENT.

Wenn Sie ein Schema in die Datenbank importieren, wird von SQL Server nicht das Schema als solches gespeichert. SQL Server speichert stattdessen die verschiedenen Einzelkomponenten. Das <Schema>-Tag wird demnach nicht gespeichert, es werden nur die darin definierten Komponenten aufbewahrt. Nicht alle Schemaelemente werden erhalten. Wenn das <Schema>-Tag Attribute enthält, die das Standardverhalten seiner Komponenten definieren, werden diese Attribute während des Importvorgangs zu den darin enthaltenen Komponenten verschoben. Die folgende Tabelle stellt dies dar.

Attributname Verhalten

attributeFormDefault

Das form-Attribut, das für alle im Schema enthaltenen Attributdeklarationen angewendet wird, die dieses Attribut noch nicht enthalten. Der Wert wird auf den Wert des attributeFormDefault-Attributs festgelegt.

elementFormDefault

Das form-Attribut, das für alle im Schema enthaltenen Elementdeklarationen angewendet wird, die dieses Attribut noch nicht enthalten. Der Wert wird auf den Wert des elementFormDefault-Attributs festgelegt.

blockDefault

Das block-Attribut, das für alle Elementdeklarationen und Typdefinitionen angewendet wird, die dieses Attribut noch nicht enthalten. Der Wert wird auf den Wert des blockDefault-Attributs festgelegt.

finalDefault

Das final-Attribut, das für alle Elementdeklarationen und Typdefinitionen angewendet wird, die dieses Attribut noch nicht enthalten. Der Wert wird auf den Wert des finalDefault-Attributs festgelegt.

targetNamespace

Zum Zielnamespace gehörende Informationen über die Komponenten werden in den Metadaten gespeichert.

Siehe auch

Verweis

Richtlinien und Einschränkungen für die Verwendung von XML-Schemaauflistungen auf dem Server
Berechtigungen für eine XML-Schemaauflistung
Verwalten von XML-Schemaauflistungen auf dem Server

Konzepte

XML-Datentyp
Typisiertes im Vergleich zu nicht typisiertem XML

Hilfe und Informationen

Informationsquellen für SQL Server 2005