Introducción a los esquemas XSD anotados (SQLXML 4.0)

Se aplica a: síSQL Server (todas las versiones admitidas) SíAzure SQL Database

Puede crear vistas XML de datos relacionales utilizando el lenguaje de definición de esquemas XML (XSD). Estas vistas pueden consultarse después utilizando consultas XPath (Lenguaje de rutas XML). Es parecido a crear vistas utilizando instrucciones CREATE VIEW y, a continuación, especificar consultas SQL en la vista.

Un esquema XML describe la estructura de un documento XML y también describe las diversas restricciones en los datos del documento. Cuando se especifican consultas XPath en el esquema, la estructura del documento XML devuelto viene determinada por el esquema en el que se ejecuta la consulta XPath.

En un esquema XSD, el elemento incluye todo el esquema; todas las declaraciones de elemento deben <xsd:schema> estar contenidas dentro del <xsd:schema> elemento . Puede describir los atributos que definen el espacio de nombres en el que reside el esquema y los espacios de nombres que se usan en el esquema como propiedades del <xsd:schema> elemento .

Un esquema XSD válido debe contener <xsd:schema> el elemento definido de la manera siguiente:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
<!-- additional schema definitions here -->  
</xsd:schema>  

El <xsd:schema> elemento se deriva de la especificación del espacio de nombres del esquema XML en http://www.w3.org/2001/XMLSchema .

Anotaciones en el esquema XSD

Puede usar un esquema XSD con anotaciones que describan la asignación a una base de datos, consultar la base de datos y devolver los resultados en forma de documento XML. Las anotaciones se proporcionan para asignar un esquema XSD a las tablas y columnas de base de datos. Pueden especificarse consultas XPath en la vista XML creada por el esquema XSD para consultar la base de datos y obtener los resultados en un documento XML.

Nota

En Microsoft SQLXML 4.0, el lenguaje de esquemas XSD admite las anotaciones introducidas por el lenguaje de esquemas reducidos de datos XML (XDR) anotados de SQL Server 2000 (8.x). Los esquemas XDR anotados han quedado desusados en SQLXML 4.0.

En el contexto de la base de datos relacional, resulta de gran utilidad para asignar el esquema XSD arbitrario a un almacén relacional. Una forma de conseguirlo es anotar el esquema XSD. Un esquema XSD con las anotaciones se conoce como esquema de asignación , que proporciona información relativa a cómo se asignarán los datos XML al almacén relacional. Un esquema de asignación es realmente una vista XML de los datos relacionales. Estas asignaciones pueden usarse para recuperar los datos relacionales como un documento XML.

Espacio de nombres para las anotaciones

En un esquema XSD, las anotaciones se especifican mediante el espacio de nombres urn:schemas-microsoft-com:mapping-schema. Como se muestra en el ejemplo siguiente, la manera más fácil de especificar el espacio de nombres es especificarlo en la <xsd:schema> etiqueta .

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
...  
</xsd:schema>  

Se utiliza un prefijo de espacio de nombres arbitrario. En esta documentación, el prefijo sql se usa para indicar el espacio de nombres de anotación y para distinguir las anotaciones de este espacio de nombres de las de otros espacios de nombres.

Ejemplo de un esquema XSD anotado

En el ejemplo siguiente, el esquema XSD consta de un <Person.Contact> elemento . El <Employee> elemento tiene un atributo ContactID y <FirstName> elementos <LastName> secundarios:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
  <xsd:element name="Contact" >  
   <xsd:complexType>  
     <xsd:sequence>  
        <xsd:element name="FName"    
                     type="xsd:string" />   
        <xsd:element name="LName"  
                     type="xsd:string" />  
     </xsd:sequence>  
        <xsd:attribute name="ConID" type="xsd:integer" />  
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  

Se han agregado anotaciones a este esquema XSD para asignar sus elementos y atributos a las tablas y columnas de base de datos:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Contact" sql:relation="Person.Contact" >  
   <xsd:complexType>  
     <xsd:sequence>  
        <xsd:element name="FName"  
                     sql:field="FirstName"   
                     type="xsd:string" />   
        <xsd:element name="LName"    
                     sql:field="LastName"    
                     type="xsd:string" />  
     </xsd:sequence>  
        <xsd:attribute name="ConID"   
                       sql:field="ContactID"   
                       type="xsd:integer" />  
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  

En el esquema de asignación, el elemento se asigna a la tabla Person.Contact de la base de datos AdventureWorks de ejemplo mediante <Contact> la anotación sql:relation. Los atributos ConID, FName y LName se asignan a las columnas ContactID, FirstName y LastName de la tabla Person.Contact mediante las anotaciones sql:field.

Este esquema XSD anotado proporciona la vista XML de los datos relacionales. Esta vista XML puede consultarse utilizando el lenguaje XPath. Una consulta XPath devuelve como resultado un documento XML en lugar del conjunto de filas que devuelven las consultas SQL.

Nota

En el esquema de asignación, la distinción de mayúsculas y minúsculas para los valores relacionales especificados (como el nombre de tabla y el nombre de columna) depende de que SQL Server utilice la configuración de intercalación con distinción de mayúsculas y minúsculas. Para más información, consulte Compatibilidad con la intercalación y Unicode.

Otros recursos

Puede buscar más información sobre el lenguaje de definición de esquemas XML (XSD), el lenguaje de rutas XML (XPath) y el lenguaje de transformación basado en hojas de estilo (XSLT) en los siguientes sitios web:

Consulte también

Consideraciones de seguridad de esquema anotadas (SQLXML 4.0)
Esquemas XDR anotados (en desuso en SQLXML 4.0)