(eXtensible Markup
Language o Lenguaje de marcas extensible) se está convirtiendo a
pasos agigantados en la lengua franca del mundo de las nuevas
tecnologías, en un lenguaje de marcas universal mediante el que se
puede representar cualquier otro lenguaje independientemente de cuál
sea la plataforma en la que se ejecute. Si bien SQL Server 2000 es
la primera versión de SQL Server compatible con XML, la versión
preliminar de la tecnología XML que está desarrollando Microsoft y
que se encuentra disponible en la sede web http://msdn.microsoft.com/downloads/betas/default.asp,
puede utilizarse con cualquier versión de SQL Server. Esta versión
preliminar, que es el resultado de 11 revisiones, es sólida y se
utiliza ya en numerosas instalaciones de SQL Server en las que se
integra XML. (El recuadro «Versión preliminar de la tecnología
XML de Microsoft» ofrece una visión general de dicha
tecnología.) Pero las prestaciones XML que ofrece dicha versión
preliminar, difieren de las prestaciones XML que ofrece SQL Server
2000. No en vano incluye algunas funciones, como los grams de
actualización o updategrams de XML y un modelo de objeto de
automatización, de las que SQL Server 2000 carece. Del mismo modo,
SQL Server 2000 incluye algunas funciones como, por ejemplo, las
consultas XPath, que no se encuentran disponibles en la versión
preliminar. Microsoft asegura tener la intención de fusionar la
aplicación ISAPI (Internet Server API o API para servidores de
Internet) que incluye la versión preliminar de XML con la aplicación
ISAPI de SQL Server 2000 en una nueva versión web que aparecerá
después de la salida al mercado SQL Server 2000. Con el fin de que
no haya lugar a confusiones y de optimizar las prestaciones XML que
ofrecen ambos productos, vamos a centrarnos en las diferencias
existentes entre uno y otro.
VERSIÓN PRELIMINAR DE LA TECNOLOGÍA XML DE
MICROSOFT |
La funcionalidad de
la versión preliminar de la tecnología XML de Microsoft se
basa en una aplicación ISAPI (Internet Server API o API para
servidores de Internet), sqlxml.dll, que acepta la entrada de
datos de SQL Server en determinados formatos XML. Pero, ¿cómo
funciona esta tecnología XML? En primer lugar, el programa de
registro, que es un complemento de la consola MMC (Microsoft
Management Console o Consola de administración de Microsoft),
asocia la totalidad de un directorio virtual de Microsoft IIS
a la aplicación ISAPI. A continuación, IIS envía las
solicitudes de las páginas que se encuentran en dicho
directorio virtual (incluso las típicas páginas HTML) a la
aplicación ISAPI. Esta aplicación admite la introducción de
datos XML en una serie de formatos compatibles y los
transforma en sentencias de SQL que envía a SQL Server. La
versión preliminar puede procesar consultas SQL y grams de
actualización (sentencias de actualización, inserción y
eliminación basadas en XML), así como procedimientos
almacenados y consultas parametrizadas. Sea cual sea el caso,
la aplicación ISAPI sólo envía sentencias SQL puras a SQL
Server.
Como ni SQL Server 7.0 ni las
versiones anteriores de este software reconocen la cláusula
FOR XML de SQL Server 2000, la aplicación ISAPI se limita a
guardar las palabras claves para utilizarlas durante el
procesamiento de la respuesta que reciba de SQL Server. SQL
Server le devuelve los resultados en forma de filas y
columnas, resultados que la aplicación ISAPI transforma en
datos XML de salida. Dependiendo del estilo de datos de salida
que se haya especificado (FOR XML AUTO, FOR XML RAW o FOR XML
EXPLICIT), sqlxml.dll generará un flujo XML u otro de las
filas y columnas devueltas. También se puede solicitar a
sqlxml.dll que aplique una hoja de estilo XSL (Extensible
Style Language o Lenguaje de estilos extensible) al documento
XML o que añada un esquema de formato DTD (Document Type
Definition o Definición de tipo de documento) o XDR (XML Data
Reduced o Versión reducida de XML Data) al principio del
documento. Además, sqlxml.dll puede devolver una columna de
datos del tipo IMAGE en forma de un solo flujo XML para su
visualización directa en el navegador del cliente. Si se
encontrara la aplicación con algún error, devolvería el código
de error de ODBC correspondiente. En el caso de los grams de
actualización, sqlxml.dll no devuelve, por lo general, un
resultado del tipo «número de filas afectadas»; para que la
aplicación ISAPI devuelva un mensaje distinto al de «200 OK»
de HTTP, que contiene un documento en blanco, es preciso
incluir, después de la consulta de actualización, una
sentencia SELECT que consulte las filas que se acaban de
insertar.
LISTADO A. Carga de los resultados en un
documento DOM |
- DOM
Dim
oSQL Dim oDOMDoc Set oSQL =
CreateObject(“Microsoft.SQLXMLRequest“) oSQL.Connection
= “driver=SQL
Server;server=someserver;uid=pubsuser;password=pass“ oSQL.ExecuteQuery(“Select
* from jobs for XML RAW“) oDOMDoc.loadXML
oSQL.Result |
Como la versión preliminar envía
sentencias SQL a la base de datos mediante ODBC, Microsoft
tiene previsto mejorar dicha versión preliminar para que sea
compatible con otras fuentes de datos ODBC además de la de SQL
Server. La versión preliminar es un servicio web por
naturaleza, ya que sus prestaciones XML sólo se encuentran
disponibles a través de una aplicación ISAPI. Y, aparte de su
capacidad para generar de forma directa datos de salida XML y
HTML por medio de las hojas de estilo, la versión preliminar
ofrece un modelo de objeto (osqlxml.dll) para el acceso
directo a XML a través de programas como Excel, de Microsoft.
A dicho modelo de objeto se puede acceder a través de un
programa de Visual Basic (VB) y el resultado se puede cargar
en un documento DOM (Document Object Model o Modelo de objeto
documento) como el que muestra el Listado A. La aplicación
ISAPI equivalente de SQL Server 2000 no incluye, en cambio,
ningún modelo de objeto, pero sí lo incluirá la versión web
que aparecerá después de que SQL Server 2000 salga al mercado,
que también contendrá todas las funciones importantes de XML,
tanto de la versión preliminar como de SQL Server
2000. |
Composición y
descomposición Algunas de las
prestaciones XML se consiguen a través de una nueva función de
T-SQL, de la nueva cláusula FOR XML de la sentencia SELECT y de dos
nuevos procedimientos almacenados de sistema, mientras que otras se
obtienen a través de una API específica de acceso a datos o mediante
la ejecución de una aplicación ISAPI en Microsoft Internet
Information Server (IIS).
Página anterior | Página
siguiente >>>
|