Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
De forma predeterminada, un elemento de tipo complejo en un esquema anotado XSD se asigna a la tabla (vista) con el mismo nombre en la base de datos especificada y un elemento o atributo de tipo simple se asigna a la columna con el mismo nombre en la tabla.
Ejemplos
Para crear muestras funcionales mediante los ejemplos siguientes, debe cumplir determinados requisitos. Para obtener más información, vea Requisitos para ejecutar ejemplos de SQLXML.
Un. Especificación de la asignación predeterminada
En este ejemplo, no se especifica ninguna anotación en el esquema XSD. El <elemento Person.Contact> es de tipo complejo y, por lo tanto, se asigna de forma predeterminada a la tabla Person.Contact de la base de datos AdventureWorks. Todos los atributos (ContactID, FirstName, LastName) del <elemento Person.Contact> son de tipo simple y se asignan de forma predeterminada a columnas con los mismos nombres en la tabla Person.Contact.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Contact" >
<xsd:complexType>
<xsd:attribute name="ContactID" type="xsd:string" />
<xsd:attribute name="FirstName" type="xsd:string" />
<xsd:attribute name="LastName" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Para probar una consulta XPath de ejemplo en el esquema
Copie el código de esquema anterior y péguelo en un archivo de texto. Guarde el archivo como MySchema.xml.
Copie la plantilla siguiente y péguela en un archivo de texto. Guarde el archivo como MySchemaT.xml en el mismo directorio donde guardó MySchema.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchema.xml"> /Person.Contact </sql:xpath-query> </ROOT>La ruta de acceso del directorio especificada para el esquema de asignación (MySchema.xml) es relativa al directorio donde se guarda la plantilla. También puede especificarse una ruta de acceso absoluta como, por ejemplo:
mapping-schema="C:\SqlXmlTest\MySchema.xml"Cree y use el script de prueba SQLXML 4.0 (Sqlxml4test.vbs) para ejecutar la plantilla.
Para obtener más información, consulte Uso de ADO para ejecutar consultas SQLXML 4.0.
Éste es el conjunto de resultados parciales:
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
<Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong"/>
<Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel"/>
...
</ROOT>
B. Asignación de un elemento XML a una columna de base de datos
En este ejemplo, también se realiza la asignación predeterminada porque no se usa ninguna anotación. El <elemento Person.Contact> es de tipo complejo y se asigna a la tabla con el mismo nombre en la base de datos. Los elementos <FirstName y LastName>>y< el atributo EmployeeID son de tipo simple y, por lo tanto, se asignan a las columnas con los mismos nombres. La única diferencia entre este y el ejemplo anterior son que los elementos se usan para asignar los campos FirstName y LastName.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Contact">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string" />
<xsd:element name="LastName" type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ContactID" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Para probar una consulta XPath de ejemplo en el esquema
Copie el código de esquema anterior y péguelo en un archivo de texto. Guarde el archivo como MySchemaElements.xml.
Cree la plantilla siguiente (MySchemaElementsT.xml) y guárdela en el mismo directorio usado en el paso anterior.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaElements.xml"> /Person.Contact </sql:xpath-query> </ROOT>La ruta de acceso del directorio especificada para el esquema de asignación es relativa al directorio donde se guarda la plantilla. También puede especificarse una ruta de acceso absoluta como, por ejemplo:
mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"Cree y use el script de prueba SQLXML 4.0 (Sqlxml4test.vbs) para ejecutar la plantilla.
Para obtener más información, consulte Uso de ADO para ejecutar consultas SQLXML 4.0.
Éste es el conjunto de resultados parciales:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact ContactID="1">
<FirstName>Gustavo</FirstName>
<LastName>Achong</LastName>
</Person.Contact>
...
</ROOT>
C. Asignación de un elemento XML a una columna de tipo de datos XML
En este ejemplo, también se realiza la asignación predeterminada porque no se usa ninguna anotación. El <elemento Production.ProductModel> es de tipo complejo y se asigna a la tabla con el mismo nombre en la base de datos. El atributo ProductModelID es de tipo simple y, por lo tanto, se asigna a las columnas con los mismos nombres. La única diferencia entre este y los ejemplos anteriores es que el <elemento Instructions> se asigna a una columna que usa el xml tipo de datos mediante el xsd:anyType tipo .
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Production.ProductModel">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Instructions" type="xsd:anyType" />
</xsd:sequence>
<xsd:attribute name="ProductModelID" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
El xml tipo de datos se introdujo en SQL Server 2005.
Para probar una consulta XPath de ejemplo en el esquema
Copie el código de esquema anterior y péguelo en un archivo de texto. Guarde el archivo como MySchemaXmlAnyElements.xml.
Cree la plantilla siguiente (MySchemaXmlAnyElementsT.xml) y guárdela en el mismo directorio usado en el paso anterior.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaXmlAnyElements.xml"> /Production.ProductModel[@ProductModelID=7] </sql:xpath-query> </ROOT>La ruta de acceso del directorio especificada para el esquema de asignación es relativa al directorio donde se guarda la plantilla. También puede especificarse una ruta de acceso absoluta como, por ejemplo:
mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"Cree y use el script de prueba SQLXML 4.0 (Sqlxml4test.vbs) para ejecutar la plantilla.
Para obtener más información, consulte Uso de ADO para ejecutar consultas SQLXML 4.0.
Éste es el conjunto de resultados parciales:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Production.ProductModel ProductModelID="7">
<Instructions>
<root xmlns="http:
//schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstru
ctions">
...
</root>
<Instructions>
</Production.ProductModel>
</ROOT>
Véase también
Consideraciones de seguridad de esquema anotadas (SQLXML 4.0)
Datos XML (SQL Server)
Compatibilidad con tipos de datos xml en SQLXML 4.0