lunes, 21 de noviembre de 2016

Se trabaja por primera vez con la generación de un XML para los datos de prueba

(2 horas)

Para el día de hoy se aprendió a hacer XML con los datos de prueba. Y así poder permitir a algunos compañero trabajar con los datos que hemos generado. Para hacer XML es muy sencillo, solo se hace un SELECT normal con sus clausulas, pero al final se le agregar FOR XML PATH(' ruta ') TYPE. De esta manera es muy sencillo crear archivos XML.

Nuestro SELECT quedó de la siguiente forma:

USE [III Proyecto - WebNews]
GO

SELECT (SELECT T.Nombre, T.Cod AS CodigoTema
        FROM dbo.Temas T
        FOR
        XML PATH('Temas'),
        TYPE),
        (SELECT S.Nombre AS NombreSubtema, S.Cod AS CodigoSubtema, S.Fk_Tema, T.Nombre AS NombreTema, T.Cod AS CodigoTema
        FROM dbo.Subtemas S, dbo.Temas T
        WHERE S.Fk_Tema = T.ID
        FOR
        XML PATH('Subtemas'),
        TYPE),
        (SELECT A.Nombre, A.Email
        FROM dbo.Autores A
        FOR
        XML PATH('Autores'),
        TYPE),
        (SELECT U.Nombre, U.Email
        FROM dbo.Usuarios U
        FOR
        XML PATH('Usuarios'),
        TYPE),
        (SELECT N.Titulo, N.Texto, N.Fecha, N.Fk_Autor, A.Nombre AS NombreAutor, A.Email AS EmailAutor, N.Fk_Subtema, S.Nombre AS NombreSubtema, S.Cod AS CodigoSubtema
        FROM dbo.Noticias N, dbo.Autores A, dbo.Subtemas S
        WHERE N.Fk_Autor = A.ID
        AND N.Fk_Subtema = S.ID
        FOR
        XML PATH('Noticias'),
        TYPE),
        (SELECT U.Nombre AS NombreUsuario,
               U.Email AS EmailUsuario,
               N.IDTipoFk,
               N.Fk_Tema,
               (SELECT Nombre FROM Temas WHERE ID = N.Fk_Tema) AS NombreTema,
               (SELECT Cod FROM Temas WHERE ID = N.Fk_Tema) AS CodTema,
               N.Fk_Subtema,
               (SELECT Nombre FROM Subtemas WHERE ID = N.Fk_Subtema) AS NombreSubtema,
               (SELECT Cod FROM Subtemas WHERE ID = N.Fk_Subtema) AS CodSubtema,
               N.Fk_Autor,
               (SELECT Nombre FROM Autores WHERE ID = N.Fk_Autor) AS NombreAutor,
               (SELECT Email FROM Autores WHERE ID = N.Fk_Autor) AS EmailAutor
        FROM dbo.Usuarios U, dbo.NotificacionesXUsuarios NU, dbo.Notificaciones N
        WHERE NU.Fk_Usuario = U.ID
        AND NU.Fk_Notificacion = N.ID
        FOR
        XML PATH('SolicitudNotificacion'),
        TYPE),
        (SELECT C.Calificacion, C.Fecha, C.Fk_Usuario, U.Nombre AS NombreUsuario, U.Email AS EmailUsuario, C.Fk_Noticia, N.Titulo AS TituloNoticia
        FROM dbo.Usuarios U, dbo.Calificaciones C, dbo.Noticias N
        WHERE C.Fk_Usuario = U.ID
        AND C.Fk_Noticia = N.ID
        FOR
        XML PATH('Calificaciones'),
        TYPE),
        (SELECT C.Comentario, C.Fecha, C.Fk_Usuario, U.Nombre AS NombreUsuario, U.Email AS EmailUsuario, C.Fk_Noticia, N.Titulo AS TituloNoticia
        FROM dbo.Usuarios U, dbo.Comentarios C, dbo.Noticias N
        WHERE C.Fk_Usuario = U.ID
        AND C.Fk_Noticia = N.ID
        FOR
        XML PATH('Comentarios'),
        TYPE)
FOR XML PATH(''),
ROOT('ProyectoIII')
GO
 Como podemos apreciar, en la ruta PATH, se genrará una nueva entrada </ > para el XML. Para las noticias buscamos en el noticiero en linea nacion.com y copiamos algunas noticias.

De esta manera se finaliza la parte lógica del proyecto programado.

No hay comentarios:

Publicar un comentario