13
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 

XML en SQL Server

Embed Size (px)

Citation preview

Page 1: XML en SQL Server

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 

Page 2: XML en SQL Server

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

Page 3: XML en SQL Server

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

Page 4: XML en SQL Server

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.

Page 5: XML en SQL Server

8/17/2019 XML en SQL Server

http://slidepdf.com/reader/full/xml-en-sql-server 5/13

Page 6: XML en SQL Server

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.

Page 7: XML en SQL Server

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

 

Page 8: XML en SQL Server

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.

Page 9: XML en SQL Server

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)

Page 10: XML en SQL Server

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

 

Page 11: XML en SQL Server

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.

 

Page 12: XML en SQL Server

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

 

Page 13: XML en SQL Server

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