XML desde SQL Server

Buenas tardes, mi intención es generar un documento XML a partir de una selección de registros de una tabla, pero no consigo que me genere un documento con la estructura deseada ni grabarlo físicamente desde un procedimiento almacenado. De la misma forma poder leer un documento XML y poder insertar los registros del mismo en una tabla desde otro procedimiento almacenado. Todo esto desde el propio gestor de datos SQL Server.
Gracias de antemano.

1 Respuesta

Respuesta
1
Checa las siguientes secciones de la ayuda en línea de sql server:
Escribir XML mediante OPENXML
OPENXML es una palabra clave de Transact-SQL que proporciona un conjunto de filas en documentos XML en memoria. OPENXML es un proveedor de conjuntos de filas similar a una tabla o una vista. OPENXML permite el acceso a los datos XML como si fuera un conjunto de filas relacional mediante una vista del conjunto de filas de la representación interna de un documento XML. Los registros del conjunto de filas pueden almacenarse en tablas de base de datos (parecidas a los conjuntos de filas de tablas y vistas).
OPENXML puede utilizarse en instrucciones SELECT y SELECT INTO donde puedan aparecer como origen los proveedores de conjunto de filas, como una tabla, vista u OPENROWSET. Para obtener más información acerca de la sintaxis de OPENXML, consulte OPENXML.
Para escribir consultas sobre un documento XML mediante OPENXML, primero debe llamar a sp_xml_preparedocument, que analiza el documento XML y devuelve un controlador para el documento analizado que ya está listo para su uso. El documento analizado es una representación en árbol de varios nodos (elementos, atributos, texto, comentarios, etc.) del documento XML. El controlador de documentos se pasa a OPENXML, que proporciona una vista del conjunto de filas del documento según los parámetros que se le pasan.
La representación interna de un documento XML se puede quitar de la memoria se llama al procedimiento almacenado sp_xml_removedocument del sistema para liberar la memoria.
La ilustración muestra el proceso.
Nota Para entender el funcionamiento de OPENXML se requieren conocimientos de XML y de consultas Xpath. ¿Para obtener más información acerca de la compatibilidad de XPath en Microsoft® SQL Server? 2000, consulte Utilizar consultas XPath.
Parámetros OPENXML
En los parámetros de OPENXML se incluye:
Un controlador de documentos XML (idoc)
Una expresión XPath que identifica los nodos que se asignarán a las filas (rowpattern)
Una descripción del conjunto de filas que se generará
Asignación entre las columnas del conjunto de filas y los nodos XML
Controlador de documentos XML (idoc)
El procedimiento almacenado sp_xml_preparedocument devuelve el controlador de documentos.
Expresión XPath para identificar los nodos que se van a procesar (rowpattern)
La expresión XPath especificada como rowpattern identifica un conjunto de nodos del documento XML. Cada nodo identificado por rowpattern se corresponde con una única fila del conjunto de filas que OPENXML genera.
Los nodos identificados por la expresión XPath pueden ser cualquier nodo XML (elementos, atributos, instrucciones de proceso, etc.) en el documento XML. Si rowpattern identifica un conjunto de elementos del documento XML, existe una fila del conjunto de filas para cada elemento del nodo identificado. Por ejemplo, si rowpattern termina en un atributo, se crea una fila para cada nodo de atributo que rowpattern seleccione.
Descripción del conjunto de filas que se va a generar
Se debe proporcionar un esquema de conjunto de filas a OPENXML para que genere el conjunto de filas. Puede especificar el esquema del conjunto de filas utilizando la cláusula opcional WITH. Estas opciones están disponibles para especificar el esquema del conjunto de filas:
Especificar el esquema completo en la cláusula WITH.
Al especificar el esquema del conjunto de filas se especifican los nombres de columna, los tipos de datos y la asignación al documento XML.
Puede especificar el patrón de columna (con el parámetro ColPattern en SchemaDeclaration). El patrón de columna especificado se utiliza para asignar una columna del conjunto de filas al nodo XML que rowpattern identifica y también para determinar el tipo de asignación.
Si no se especifica ColPattern en una columna, la columna del conjunto de filas se asigna al nodo XML con el mismo nombre, según la asignación que especifica el parámetro flags. No obstante, si se especifica ColPattern como parte de la especificación del esquema en la cláusula WITH, se sobrescribe la asignación especificada en el parámetro flags.
Especificar el nombre de una tabla existente en la cláusula WITH.
Simplemente puede especificar un nombre de tabla existente cuyo esquema puede utilizar OPENXML para generar el conjunto de filas.
No especificar la cláusula WITH.
En este caso, OPENXML devuelve un conjunto de filas en el formato de tabla irregular. Se denomina tabla irregular porque en este formato de tabla todos los bordes del árbol del documento XML analizado se asignan a una fila del conjunto de filas.
Las tablas irregulares representan la estructura refinada del documento XML (por ejemplo, los nombres de elementos o atributos, la jerarquía del documento, los espacios de nombre, las instrucciones de proceso, etc.) en una única tabla. El formato de tabla irregular permite obtener información adicional que no se muestra a través de las metapropiedades. Para obtener más información acerca de las metapropiedades, consulte Especificar metapropiedades en OPENXML.
La información adicional que proporciona la tabla irregular permite almacenar y consultar el tipo de datos de un elemento o atributo, el tipo de nodo (nodo de elemento, de atributo o de valor), almacenar y consultar la información acerca de una estructura de documento XML, o incluso construir un sistema propio de administración de documentos XML.
Mediante una tabla irregular puede escribir procedimientos almacenados que tomen los documentos XML como una entrada BLOB, producir la tabla irregular y después extraer y analizar el documento en su máximo nivel (buscar la jerarquía del documento, los nombres de elementos y atributos, espacios de nombre, instrucciones de proceso, etc.).
La tabla irregular también puede servir como formato de almacenamiento para documentos XML cuando no tiene sentido la asignación a otros formatos relacionales y un campo ntext no proporciona suficiente información estructural.
Siempre que pueda utilizar un analizador XML para examinar el documento XML, puede utilizar la tabla irregular para obtener la misma información.
Esta tabla describe la estructura de la tabla irregular.
Nombre de columna Tipo de datos Description
id Bigint Es el id. Único del nodo del documento.
El elemento raíz dispone de un valor de id. 0. Los valores de id. Negativos están reservados.
Parentid Bigint Identifica el elemento primario del nodo. El elemento que identifica este id. No tiene por qué ser el elemento primario, sino que depende del NodeType del nodo cuyo elemento primario identifica este id. Por ejemplo, si el nodo es de texto, el elemento primario puede ser un nodo de atributo.
Si el nodo está en el nivel superior del documento XML, su ParentID es NULL.
nodetype Int Identifica el tipo de nodo. Es un entero que se corresponde con la numeración del tipo de nodo XML DOM (consulte DOM para obtener más información acerca del nodo).
Algunos tipos de nodo son:
1 = Nodo de elemento
2 = Nodo de atributo
3 = Nodo de texto
Localname nvarchar Proporciona el nombre local del elemento o atributo. Es NULL si el objeto DOM no tiene nombre.
Prefijo nvarchar Es el prefijo del espacio del nombre del nodo.
Namespaceuri nvarchar Es el URI del espacio de nombres del nodo. Si el valor es NULL, no hay ningún espacio de nombres.
Datatype nvarchar Es el tipo de datos reales de la fila del elemento o atributo y es NULL en caso contrario. El tipo de datos se infiere a partir de las DTD en línea o del esquema en línea.
Prev Bigint Es el id. XML del anterior elemento del mismo nivel. Es NULL si no existe ningún elemento previo directo del mismo nivel.
text Ntext Contiene el valor de atributo o el contenido de elemento en forma de texto (o es NULL si la entrada de la tabla irregular no necesita un valor).
Asignación entre las columnas del conjunto de filas y los nodos XML
En la instrucción OPENXML, puede especificar opcionalmente el tipo de asignación (centrada en atributos o en elementos) entre las columnas del conjunto de filas y los nodos XML identificados en rowpattern. Esta información se utiliza en la transformación entre los nodos XML y las columnas del conjunto de filas.
Existen dos maneras de especificar la asignación (puede especificar ambas):
Utilizar el parámetro flags.
La asignación que especifica el parámetro flags supone la correspondencia de nombres donde los nodos XML se asignan a las columnas del conjunto de filas con el mismo nombre.
Utilizar el parámetro ColPattern.
ColPattern, una expresión XPath, se especifica como parte de SchemaDeclaration en la cláusula WITH. La asignación especificada en ColPattern sobrescribe la asignación que especifica el parámetro flags.
ColPattern puede utilizarse para especificar la naturaleza especial de la asignación (en el caso de asignación centrada en atributos o en elementos) que sobrescribe o mejora la asignación predeterminada indicada en flags.
Se especifica ColPattern si:
El nombre de columna del conjunto de filas es diferente del nombre de elemento o atributo al que se asigna. En este caso, se utiliza ColPattern para identificar el nombre del elemento o atributo XML al que se asigna la columna del conjunto de filas.
Desea asignar un atributo de metapropiedad a la columna. En este caso, se utiliza ColPattern para identificar la metapropiedad a la que se asigna la columna del conjunto de filas. Para obtener más información acerca del uso de metapropiedades, consulte Especificar metapropiedades en OPENXML.
Los parámetros flags y ColPattern son opcionales. Si no se especifica ninguna asignación, se asume la asignación predeterminada centrada en atributos (valor predeterminado del parámetro flags).
Asignación centrada en atributos
Si el parámetro flags en OPENXML se establece en atributos, se asigna a las columnas del conjunto de filas según la correspondencia de nombres. La correspondencia de nombres significa que los atributos XML de un nombre determinado se almacenan en una columna del conjunto de filas con el mismo nombre.
Si el nombre de columna es diferente del nombre de atributo al que se asigna, debe especificarse ColPattern.
SI el atributo XML dispone de un calificador de espacio de nombres, el nombre de la columna del conjunto de filas también debe tener uno.
Asignación centrada en elementos
Al establecer el parámetro flags de OPENXML en 2 (XML_ELEMENTS), se especifica la asignación element-centric. Es parecida a la asignación attribute-centric, excepto por las siguientes diferencias:
La correspondencia de nombres de la asignación (por ejemplo, una asignación de columna a un elemento XML con el mismo nombre) elige los subelementos no complejos, a menos que se especifique un patrón en el nivel de columna. En caso de recuperación, si el subelemento es complejo (contiene más subelementos), la columna se establece en NULL. Se descartan los valores de atributo de los subelementos.
Múltiples subelementos con el mismo nombre se sobrescriben entre sí en el orden de recuperación. La fusión en el nodo principal agrega un subelemento en caso de equivalencia de nombres.
Véase también
sp_xml_preparedocument
sp_xml_removedocument
Openxml
©1988-2000 Microsoft Corporation. Reservados todos los derechos.
Recuperar y escribir datos XML
Puede ejecutar consultas SQL para devolver resultados en formato XML en lugar de conjuntos de filas estándar. Estas consultas pueden ejecutarse directamente o desde los procedimientos almacenados. Para recuperar directamente los resultados, puede utilizar la cláusula FOR XML de la instrucción SELECT y especificar, dentro de la cláusula, un modo XML: RAW, AUTO o EXPLICIT.
Por ejemplo, la instrucción SELECT recupera información de las tablas Customers y Orders en la base de datos Northwind. Esta consulta especifica el modo AUTO en la cláusula FOR XML:
SELECT Customers.CustomerID, ContactName, CompanyName,
Orders. CustomerID, OrderDate
FROM Customers, Orders
WHERE Customers.CustomerID = Orders.CustomerID
AND (Customers.CustomerID = N'ALFKI'
OR Customers.CustomerID = N'XYZAA')
ORDER BY Customers. CustomerID
Mientras pueda utilizar la cláusula FOR XML para recuperar datos como un documento XML, también puede utilizar la función OPENXML de Transact-SQL para insertar datos representados como un documento XML. OPENXML es un proveedor de conjuntos de filas similar a una tabla o una vista, lo que proporciona un conjunto de filas en documentos XML en memoria. OPENXML permite el acceso a los datos XML como si fuera un conjunto de filas relacional mediante una vista del conjunto de filas de la representación interna de un documento XML. Los registros del conjunto de filas pueden almacenarse en tablas de base de datos. OPENXML puede utilizarse en instrucciones SELECT y SELECT INTO en el lugar de una tabla o una vista de origen.
El siguiente ejemplo muestra el uso de OPENXML en las instrucciones INSERT y SELECT. El documento XML de ejemplo consiste en <Customers> y <Orders>. Primero, el procedimiento almacenado sp_xml_preparedocument analiza el documento XML. El documento analizado es una representación en árbol de los nodos (elementos, atributos, texto, comentarios, etc.) del documento XML. A continuación, OPENXML se refiere a este documento XML analizado y proporciona una vista del conjunto de filas de todo o una parte de dicho documento. De esta forma, una instrucción INSERT puede insertar datos de dicho conjunto de filas en una tabla de la base de datos mediante OPENXML. Es posible utilizar varias llamadas OPENXML para proporcionar una vista del conjunto de filas de varias partes del documento XML y procesarlas, por ejemplo, insertarlas en distintas tablas (este proceso también se llama "Descomponer XML en tablas"). En el siguiente ejemplo, el documento XML se descompone de forma que los elementos <Customers> se almacenan en la tabla Customers y los elementos <Orders>, en la tabla Orders, mediante dos instrucciones INSERT.
Este ejemplo también muestra una instrucción SELECT con OPENXML que recupera CustomerID y OrderDate del documento XML.
DECLARE @hDoc intDECLARE @hDoc int
EXEC sp_xml_preparedocument @_hDoc OUTPUT, EXEC sp_xml_preparedocument @hDoc OUTPUT,
N'<ROOT>
<Customers CustomerID="XYZAA" ContactName="Joe"
CompanyName="Company1">
<Orders CustomerID="XYZAA"
OrderDate="2000-08-25T00:00:00"/>
Orders CustomerID="XYZAA"
OrderDate="2000-10-03T00:00:00"/>
</Customers>
<Customers CustomerID="XYZBB" ContactName="Steve"
CompanyName="Company2">No Orders yet!
</Customers>
</ROOT>'
-- Use OPENXML to provide rowset consisting of customer data.-- Use OPENXML to provide rowset consisting of customer data.
INSERT Customers INSERT Customers
SELECT *
FROM OPENXML(@hDoc, N'/ROOT/Customers') FROM OPENXML(@hDoc, N'/ROOT/Customers')
WITH CustomersWITH Customers
-- Use OPENXML to provide rowset consisting of order data.-- Use OPENXML to provide rowset consisting of order data.
INSERT Orders INSERT Orders
SELECT *
FROM OPENXML(@hDoc, N'//Orders') FROM OPENXML(@hDoc, N'//Orders')
WITH OrdersWITH Orders
-- Using OPENXML in a SELECT statement.-- Using OPENXML in a SELECT statement.
SELECT * FROM OPENXML(@hDoc, N'/ROOT/Customers/Orders') with (CustomerID nchar(5) '../@CustomerID', OrderDate datetime)SELECT * FROM OPENXML(@hDoc, N'/ROOT/Customers/Orders') with (CustomerID nchar(5) '../@CustomerID', OrderDate datetime)
-- Remove the internal representation of the XML document.-- Remove the internal representation of the XML document.
EXEC sp_xml_removedocument @hDocEXEC sp_xml_removedocument @hDoc
Esta ilustración muestra el árbol XML analizado del documento XML anterior, creado con sp_xml_pareparedocument.
Véase también
Openxml
Escribir XML mediante OPENXML
Recuperar documentos XML mediante FOR XML
©1988-2000 Microsoft Corporation. Reservados todos los derechos.
Exportar a XML
Puede exportar cualquier tipo de metadatos almacenado en el depósito a un archivo XML, incluidos datos de instancia de la carpeta Contenido y elementos del modelo de información de la carpeta Modelos de información.
El formato del archivo XML está definido por la codificación MDC OIM XML. Para obtener más información, consulte Using XML Encoding.
Para exportar a XML, haga clic con el botón secundario en un elemento y, a continuación, haga clic en Exportar a XML.
El ámbito de una exportación varía si el elemento seleccionado está relacionado con otros elementos. Para aquellos elementos con relaciones de contenido o agregación, el archivo de exportación XML incluye los datos relacionados. En la carpeta Contenido, donde la relación entre los elementos primarios y secundarios es de contenido, el archivo de exportación incluye varios elementos con etiqueta XML. Por el contrario, las relaciones entre los elementos de la carpeta Modelos de información normalmente no son de contenido. Como resultado, los archivos de exportación XML de los elementos de la carpeta Modelos de información incluyen los datos XML sólo del nodo seleccionado.
Véase también
Trabajar con Contenido en el Explorador de metadatos
Trabajar con modelos de información en el Explorador de metadatos
©1988-2000 Microsoft Corporation. Reservados todos los derechos.
Export Automation Object Example
The following examples show how to use the Export object in Microsoft® Visual Basic®.
Exporting to a File
The following example shows how to export object instance data for two repository objects. You do not need to bracket an export within a transaction. To release the objects after the export concludes, set the objects to nothing.
dim oExp as new Export
dim oMyObj1 as RepositoryObject
dim oMyObj2 as RepositoryObject
dim oRep as new Repository
dim oRoot as RepositoryObject
set oRoot=oRep.Open "SERVER=MyServer;DATABASE=MyDB;UID=sa;PWD=MyPassword;"
set oMyObj1=oRep.Object(objid1)
set oMyObj2=oRep.Object(objid2)
oExp.add oMyObj1
oExp.add oMyObj2
oExp.Export "c:\temp\myXmlFile.xml", INDENTATION
Set oMyObj1=Nothing
Set oMyObj2=Nothing
Set oRoot=Nothing
Set oRep=Nothing
Set oExp=Nothing
Exporting Multiple Objects in a Relationship
In the following example, oMyObj1 is a collection object that relates multiple objects. The COLLECTION_CONTAINING flag, which is set on the collection object, makes exporting a relationship possible. This flag is set in the information model and does not appear in your export code. Another flag, ADDCONTAINING_BASE (you can also use ADDCONTAINING_MOSTDERIVED) does appear in your export code. This flag supports the selection of objects in a relationship for the export process. This flag depends on the COLLECTION_CONTAINING flag to enable the selection.
dim oExp as new Export
dim oMyObj1 as RepositoryObject
dim oRep as new Repository
dim oRoot as RepositoryObject
set oRoot=oRep.Open "SERVER=MyServer;DATABASE=MyDB;UID=sa;PWD=MyPassword;"
set oMyObj1=oRep.Object(objid1)
oExp.add oMyObj1, ADDCONTAINING_BASE
oExp.Export "c:\temp\myXmlFile.xml", INDENTATION
Set oMyObj1=Nothing
Set oRoot=Nothing
Set oRep=Nothing
Set oExp=Nothing
Exporting to a String
The following example shows how to export the same object instance data to a string stored in memory:
dim oExp as new Export
dim oMyObj1 as RepositoryObject
dim oMyObj2 as RepositoryObject
dim oRep as new Repository
dim oRoot as RepositoryObject
set oRoot=oRep.Open "SERVER=MyServer;DATABASE=MyDB;UID=sa;PWD=MyPassword;"
set oMyObj1=oRep.Object(objid1)
set oMyObj2=oRep.Object(objid2)
oExp.add oMyObj1
oExp.add oMyObj2
set sXMLStr=Export.GetXML, INDENTATION
Set oMyObj1=Nothing
Set oMyObj2=Nothing
Set oRoot=Nothing
Set oRep=Nothing
Set oExp=Nothing
See Also
Exporting XML
Import Automation Object Example
XML IExport Interface Overview
©1988-2000 Microsoft Corporation. All Rights Reserved.
Import Automation Object Example
The following examples show how to use the Import object in Microsoft® Visual Basic®.
Importing from a File
The following example shows how to import object instance data from a file that contains exported data. The ImportXML method returns a collection. After you get the collection, you can enumerate the objects. To release the objects after the import concludes, set the objects to nothing.
dim oImp as new Import
dim oRep as new Repository
dim oRoot as RepositoryObject
dim ObjCol as TransientObjCol
set oRoot=oRep.Open "SERVER=MyServer;DATABASE=MyDB;UID=sa;PWD=MyPassword;"
set ObjCol = oImp.ImportXML(oRep, "c:\temp\myXmlFile.xml",NEWVERSION)
for each obj in ObjCol
. . .
next
Set oRoot=Nothing
Set oRep=Nothing
Set oImp=Nothing
Importing from a String
The following example shows how to import object instance data from a string stored in memory:
dim oImp as new Import
dim oRep as new Repository
dim oRoot as RepositoryObject
set oRoot=oRep.Open "SERVER=MyServer;DATABASE=MyDB;UID=sa;PWD=MyPassword;"
oImp.ImportXMLString oRep, sXMLStr, NEWVERSION
Set oRoot=Nothing
Set oRep=Nothing
Set oImp=Nothing
See Also
Export Automation Object Example
Importing XML
XML IImport Interface Overview
©1988-2000 Microsoft Corporation. All Rights Reserved.
Importing XML
Importing an XML document is the process of adding meta data to a target repository. You can import meta data that was previously exported through the IExport interface, the Export object, or some other mechanism that you define.
To import object data, you can use the IImport interface and the Import object. You can handle the XML document as a string to import it from memory. More likely, however, you will want to import an XML document from a file.
Import requires the following conditions:
The XML documents you import must be structured in the format described by Meta Data Coalition (MDC) Open Information Model (OIM) XML Encoding.
The type information of the target repository or tool must be identical to the type information of the source objects or model. For example, if you export objects from a Unified Modeling Language (UML) information model, you must install an identical UML information model in the target repository database prior to importing. If the information models do not correspond exactly, you will lose data during the import. Rows that fail to import are logged to an error file. This file is named MSMDCXML.log and it is created in your Temp directory.
You can set flags on an import object to determine import behavior. For more information, see IImport::ImportXMLString Method and IImport::ImportXML Method.
Import returns a collection of top-level objects that your application can manipulate. To view and manipulate imported data in a repository database, the imported data must be related to the repository root object. When the information model in the target database corresponds to the information model in the source database, a relationship to the root object may be established automatically. However, whether this linkage occurs depends on the structure and content of the imported data. If your imported data is not related to the root object, you must programmatically add an object from the imported data to a collection of the root object. This step is necessary to support navigation and to define relationships with objects in other information models.
See Also
Exporting XML
Import Automation Object Example
Installing Information Models
Using the Model Installer ActiveX Component
XML Encoding Errors
Using XML Encoding
XML Encoding Reference
XML IImport Interface Overview
©1988-2000 Microsoft Corporation. All Rights Reserved.
XML Import Export
This section describes the methods used for importing, exporting, and transferring data from one Microsoft® SQL Server? 2000 Meta Data Services repository to another.
XML Exporter is a utility that exports objects from a Microsoft repository by using Open Information Model (OIM) XML Encoding. The export is handled by a COM component that has the MSMDCXML. IExport program identifier (ID). The component publishes one interface, IExport. Through this interface, the client can specify which repository objects to export and initiate the export process. Because it is a dual interface, it can be used by both COM and Automation.
Topic Description
XML IExport Interface Overview Describes the IExport interface and shows the Interface Definition Language (IDL) definition
IExport::_NewEnum Method Explains the NewEnum method of the IExport interface and provides Automation syntax
IExport::Add Method Explains the Add method of the IExport interface and provides Automation syntax
IExport::Clear Method Explains the Clear method of the IExport interface and provides Automation syntax
IExport::Count Property Explains the Count property of the IExport interface and provides Automation syntax
IExport::Export Method Explains the Export method of the IExport interface and provides Automation syntax
IExport::GetXML Method Explains the GetXML method of the IExport interface and provides Automation syntax
IExport::Item Method Explains the Item method of the IExport interface and provides Automation syntax
IExport::Remove Method Explains the Remove method of the IExport interface and provides Automation syntax
The import process uses an Extensible Markup Language (XML) document to create OIM instances in a Meta Data Services repository. The OIM describes the structure as well as the semantics of the transferred elements. The COM component is used for XML importing MSMDCXML. IImport program ID. The component publishes one interface, IImport. Through this interface, the client can specify which objects to import and initiate the import process. Because it is a dual interface, it can be used by both COM and Automation.
Topic Description
XML IImport Interface Overview Describes the IExport interface and IDL definition
IImport::ImportXML Method Explains the ImportXML method of the IImport interface and provides Automation syntax
IImport::ImportXMLString Method Explains the ImportXMLString method of the IImport interface and provides Automation syntax
See Also
Using XML Encoding
XML Encoding Errors
XML Encoding Reference
©1988-2000 Microsoft Corporation. All Rights Reserved.
Integración en XML de datos relacionales
¿El motor de base de datos relacional de Microsoft® SQL Server? 2000 admite de forma nativa el Lenguaje de marcado extensible (XML).
Ahora puede tener acceso a SQL Server 2000 mediante HTTP utilizando un Localizador de recursos universal (URL). Puede definir una raíz virtual en un servidor con Servicios de Internet Information Server (IIS) de Microsoft, que le proporciona acceso HTTP a los datos y la funcionalidad XML de SQL Server 2000.
Puede utilizar HTTP, ADO u OLE DB para trabajar con la funcionalidad XML de SQL Server 2000:
Puede definir vistas XML de bases de datos de SQL Server 2000 mediante la anotación de esquemas XML simplificado (XDR) para asignar las tablas, vistas y columnas asociadas a elementos y atributos del esquema. Después, se puede hacer referencia a las vistas XML en las consultas Xpath, que recuperan los resultados de la base de datos y los devuelven como documentos XML.
Los resultados de las instrucciones SELECT se pueden devolver como documentos XML. La instrucción Transact-SQL SELECT de SQL Server 2000 admite una cláusula FOR XML en la que se especifica que el resultado de la instrucción debe devolverse en forma de documento XML en lugar de un conjunto de datos relacional. Las consultas complejas, o aquellas que desea asegurar, se pueden almacenar como plantillas en una raíz virtual IIS y ejecutar mediante referencias al nombre de la plantilla.
Puede representar los datos de un documento XML como un conjunto de filas relacionales mediante la nueva función de conjunto de filas OPENXML. OPENXML se puede utilizar siempre que se pueda utilizar una función de conjunto de filas en una instrucción de Transact-SQL, por ejemplo, en lugar de una referencia de tabla o vista en una cláusula FROM. Esto permite utilizar los datos de los documentos XML para insertar, actualizar o eliminar los datos en las tablas de la base de datos, incluso modificar múltiples filas de múltiples tablas en una sola operación.
Véase también
SQL Server y compatibilidad con XML
Introducción al soporte de XML e Internet
©1988-2000 Microsoft Corporation. Reservados todos los derechos.
Procedimientos almacenados del sistema XML
¿Microsoft® SQL Server? 2000 proporciona estos procedimientos de sistema almacenados que se utilizan junto con OPENXML:
sp_xml_preparedocument
sp_xml_removedocument
Para escribir consultas con OPENXML, primero debe crear una representación interna del documento XML llamando a sp_xml_preparedocument. El procedimiento almacenado devuelve un controlador a la representación interna del documento XML. A continuación, este controlador se pasa a OPENXML, que proporciona vistas del conjunto de filas del documento según XPath; principalmente un patrón de filas y uno o más patrones de columnas.
La representación interna de un documento XML se puede quitar de la memoria se llama al procedimiento almacenado sp_xml_removedocument del sistema.
Véase también
Openxml
©1988-2000 Microsoft Corporation. Reservados todos los derechos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas