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

Se aplica a:SQL ServerAzure 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 de 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 xsd:schema> incluye todo el esquema; todas las declaraciones de elementos deben estar contenidas en el <elemento xsd:schema>.< 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 <elemento xsd:schema> .

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

<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 <elemento xsd:schema 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 esquema XSD admite las anotaciones introducidas con el lenguaje de esquema XML-Data Reduced (XDR) anotado en 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 un esquema de asignación, que proporciona información relativa a cómo se asignan 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 <etiqueta xsd:schema> .

<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 elemento Person.Contact>.< El elemento Employee> tiene un atributo ContactID y elementos secundarios FirstName> y <<LastName>:<

<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 Contact> se asigna a la tabla Person.Contact de la base de datos de ejemplo AdventureWorks2022 mediante 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 obtener más información, consulte Soporte técnico de 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 esquemas anotados (SQLXML 4.0)
Esquemas XDR anotados (desusados en SQLXML 4.0)