8/17/2019 XML en SQL Server http://slidepdf.com/reader/full/xml-en-sql-server 1/13 XML en SQL Server Recuperar datos XML utilizando FOR XML
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 1/13
XML en SQL Server Recuperar datos XML utilizando
FOR XML
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 2/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
Contenido1. Introducción a la Cláusula FOR XML............................................................................................ 2
2. Crear la base de datos BD_XML .................................................................................................. 2
2.1. Diagrama de la BD ............................................................................................................... 2
2.2. Insertamos los siguientes datos, en el campo fecha utilizar la función getdate(). ............. 3
3. FOR XML RAW ............................................................................................................................. 3
4. FOR XML AUTO ............................................................................................................................ 5
5. FOR XML EXPLICIT ....................................................................................................................... 7
5.1. Requisitos para FOR XML EXPLICIT...................................................................................... 8
5.2. Patrón de nombre de cada columna ................................................................................... 8
6. Configuración de columnas en FOR XML XPATH ...................................................................... 10
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 3/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
1. ntroducción a la Cláusula FOR XML
Extiende la Sintaxis del
SELECT.
Recuperar datos como
XML en vez de filas y
columnas.
Posible recuperación de
datos personalizando atributos, elementos, y esquemas.
Beneficios del uso de XML en aplicaciones clientes, tal y como muestra la imagen adjunta.
2.
Crear la base de datos BD_XML
2.1. Diagrama de la BD
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 4/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
2.2.
Insertamos los siguientes datos, en el campo fecha utilizar la
función getdate().
3.
FOR XML RAW
Representaciones de un conjunto de filas en XML.
El resultado puede contener tanto elementos y atributos.
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 5/13
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 6/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
4. FOR XML AUTO
FOR XML AUTO crea estructuras XML anidadas.
Por cada tabla que se especifica en la columna SELECT, se crea un nuevo nivel en la
estructura XML
EL orden de anidamiento depende se basa en el orden de las columnas definidas en
SELECT.
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 7/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 8/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
5. FOR XML EXPLICIT
Ofrece un mayor nivel de control en la generación de documentos XML complejos.
Se debe seguir un patrón especial denominada tabla universal.
En una tabla universal debe existir un número finito de columnas.
Se debe construir un conjunto de resultados según requisitos.
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 9/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
5.1.
Requisitos para FOR XML EXPLICIT
Columna TAG
Debe ser la primera columna en el conjunto de resultados, la columna de etiqueta
indica la profundidad de la estructura XML, empezando por 1.
Columna PARENT
Debe ser la segunda columna en el conjunto de resultados. Indica el nodo padre en la
estructura XML. El identificador TAG identifica al nodo padre.
5.2. Patrón de nombre de cada columna
Formato:
ElementName!TagNumber!AttributeName!Directive!
Las columnas de datos deben tener un alias que siga este patrón.
ElementName es el nombre que queremos asignar al elemento XML.
TagNumber indica el nivel en el que se debe localizar este nodo(dependiendo de la
columna Tag)
AttributeName es opcional y se utiliza si indicamos una directiva; indica el nombre del
atributo XML que contiene el valor.
Directive: Es opcional; ofrece información adicional al mecanismo de formato XML.
Puede incluir (hide, element, elementxsinil,cdata)
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 10/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 11/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
6. Configuración de columnas en FOR XML XPATH
‘elementName’: Crea un elemento XML <elementName> con el contenido de la
columna en el contexto del nodo.
‘@attributeName’: Crea un atributo XML attributeName con el contenido de la
columna en el contexto del nodo.
‘elementName/nestedElement’: Crea un elemento XML <elementName>, Debajo
de este elemento, se crea un elemento XML <nestedElement> con el contenido de
la columna.
‘elementName/@attributeName’: Crea un elemento XML <elementName> y un
atributo XML attributeName con el contenido de la columna.
Text(): Inserta el contenido de la columna como un nodo de texto en la estructura
XML.
Comment(): Inserta el contenido de la columna como comentario XML en la
estructura XML.
Node(): El contenido de la columna se inserta como si no existiera un nombre
específico para la misma. Data() El contenido de la columna es tratado como valor atómico. Se añade un
espacio al XML cuando el siguiente elemento en la serialización es también un
valor atómico.
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 12/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro
8/17/2019 XML en SQL Server
http://slidepdf.com/reader/full/xml-en-sql-server 13/13
XML EN SQL SERVER > FOR XML GUIA 02
Ing Hernan Nina Hanco Ing Willian Zamalloa Paro