Você está na página 1de 4

Prctica XI 11 abril de 2013 XML

Introduccin: Las aplicaciones web han requerido de diversos estndares de transferencia de datos que permiten arquitecturas diferentes compartir informacin de manara transparente. Propsito del curso: 1. Esta prctica est directamente relacionada con el propsito de disear y ejecutar

actividades de administracin de base de datos que permitan conocer la problemtica generada en bases de datos operando, su respectivo mantenimiento, solucionar problemas de desempeo, cuidar la seguridad, la integridad, el traslado de informacin en estndares como XML, generar respaldos y restaurarlos en circunstancias diversas.
Objetivos Particulares: Se deber comunicar entre bases de datos y archivos XML que contienen informacin relevante. Por otro lado se estudian objetos que provee SQL server para favorecer la comunicacin con XML. Conceptos: SQL server provee diferentes objetos y herramientas que facilitan la comunicacin con XML. Existe por ejemplo el campo tipo XML que permite almacenar archivos XML, existen tambin ciertos procedimientos almacenados que permiten manipular informacin con esta naturaleza. El sp de SQL server sp_xml_preparedocument es usa para obtente y transferir archivos XML a un objeto y a cdigo SQL. Actividades: 1. La importacin de archivos XML a SQL Server, directamente a una tabla, se puede ejemplificar con el siguiente cdigo (probar) Utiliza funciones sp_xml_preparedocument y openxml

declare @XmlDocumentHandle int declare @XmlDocument nvarchar(1000) set @XmlDocument = '<ROOT> <Cliente> <Nombre>Luis</Nombre> <Paterno>Otero</Paterno>

</Cliente> <Cliente> <Nombre>Juan</Nombre> <Paterno>Cuerdas</Paterno> </Cliente> </ROOT>' -- Se crea tabla temporal create table #Cliente ( Nombre varchar(20), Paterno varchar(20) ) -- Crea representacin interna para el documento xml. exec sp_xml_preparedocument @XmlDocumentHandle output, @XmlDocument -- Insert using openxml allows us to read the structure insert into #Cliente select Nombre = XmlNombre, Paterno = XmlPaterno from openxml ( @XmlDocumentHandle, '/ROOT/Cliente',2 ) with ( XmlNombre varchar(20) 'Nombre', XmlPaterno varchar(20) 'Paterno' ) -- en caso que se quiera un solo registro se puede poner un where, ej: -- where ( XmlNombre = 'Luis' and XmlPaterno = 'Otero' ) -- Libera documento xml exec sp_xml_removedocument @XmlDocumentHandle -- Muestra datos select * from #Cliente -- Quita tabla temporal drop table #Cliente 2. Para generar cdigo XML a partir de SQL : <EjemploXML> <CD> <grupo>Pink Floyd</grupo> <anio>1980</anio> <tipo>Rock</tipo> <nombre>Animals</nombre>

</CD> <ReproductorMP3> <marca>Ipod</marca> <fabricante>Apple</fabricante> <modelo>nano</modelo> <capacidad>16GB</capacidad> </ReproductorMP3> </EjemploXML> Las siguientes sentencias SQL generan este cdigo (probar ):

SELECT ( SELECT 'Pink Floyd' AS grupo, '1980' AS anio, 'Rock' AS tipo, 'Animals' AS 'nombre' FOR XML PATH('CD'), TYPE ), ( SELECT 'Ipod' AS marca, 'Apple' AS fabricante, 'nano' AS modelo, '16GB' AS capacidad FOR XML PATH('ReproductorMP3'), TYPE ) FOR XML PATH(''), ROOT('EjemploXML') GO

3. Crear cdigo que exporte a XML los datos de una nota en la base de datos de Pintura. 4. Crear cdigo que importe de un archivo XML los datos de la factura. 5. Escribir un documento donde den razn de estas actividades realizadas y sus propias conclusiones Ejemplo Factura XML: <?xml version="1.0" encoding="UTF-8" ?> - <Comprobante xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0" serie="I" folio="311" fecha="2011-03-02T10:57:56" sello="o7+BPr7SezjZVTK8EumI8GOcd8XsivL/zxSdpb0L8+5gnhIvCaI1PkL67tY CsO66K4MHGCFQBcjJiW5cp7sddBGVcFm3ZoUeEtmBOLaezS1/p5s+easEmNYji

wSnEaRU9SCmbd3oSisZxv+pkdMF6bcPX3Kj1XPXA/FdgXso=" noAprobacion="3146" anoAprobacion="2013" formaDePago="Pago en una sola exhibicion" noCertificado="0000100002140551" subTotal="1444.57" descuento="0.00" total="1275.70" tipoDeComprobante="ingreso"> - <Emisor rfc="AMA030303HK6" nombre="Industrias Occidentales, S.A. de C.V."> <DomicilioFiscal calle="NINOS HEROES 44" colonia="Colli" municipio="Zapopan" estado="Jalisco" pais="Mexico" codigoPostal="45235" /> </Emisor> - <Receptor rfc="SMU040505PY3" nombre="Simbra Moderna, S.A de C.V"> <Domicilio calle="Olmo # 500" colonia="Las Ceibas" municipio="San Juan" estado="Jalisco" pais="Mexico" codigoPostal="47440" /> </Receptor> - <Conceptos> <Concepto cantidad="1.00" unidad="Tam 200 L" descripcion="ACEITE SOLUBLE RL8 T/200 L" valorUnitario="1444.57" importe="1444.57" /> </Conceptos> - <Impuestos totalImpuestosTrasladados="131.13" totalImpuestosRetenidos="NULL"> - <Retenciones> <Retencion impuesto="IVA" importe="NULL" /> </Retenciones> - <Traslados> <Traslado impuesto="IVA" importe="131.13" tasa="16.00" /> </Traslados> </Impuestos> </Comprobante> Bibliografa: Tipo de dato XML as como las funciones sp_xml_preparedocument y openxml (http://msdn.microsoft.com/en-us/library/ms187897(SQL.90).aspx)

Você também pode gostar