UF2 Flashcards
- Aplicación de los lenguajes de marcas a la
sindicación de contenidos (RSS)
- RSS (Really Simple Syndication, Sindicación Realmente Simple), son las siglas correspondientes a una tecnología que tiene como función principal, compartir o distribuir la información que se encuentre en la web.
- Es conveniente que, al principio, se haga uso de un software específico que esté diseñado para leer contenidos RSS (feed reader).
- La información que se encuentra disponible en un sitio web, se puede compartir de
varias formas diferentes:
1) Una bastante sencilla es suscribiendo la fuente con un agregador de noticias.
2) Otra, si compartimos aquella información insertada en otros lugares web, así, la persona encargada de recibir las noticias, actúa también como emisor. De
esta forma, existe un proceso al que denominamos redifusión web.
- Por tanto, RSS hace referencia
- Por tanto, RSS hace referencia a una técnica que podemos utilizar para conseguir extender aquellos contenidos que se encuentran en un sitio web. Es un lenguaje derivado de XML mediante el cual podemos construir los diferentes archivos que almacenan el contenido que se puede difundir.
- Atom
- Es necesario, que señalemos también que existe otro programa que realiza las mismas funciones, como Atom, que deriva también de XML, aunque añade una serie de ventajas.
- Estos dos lenguajes se utilizan para guardar diferentes contenidos que se deseen distribuir. Son distintos, ya que el primero (RSS) se refiere a la redifusión web mientras que el segundo, hace referencia a un archivo determinado que posee la información que se desea difundir.
- Entre sus ventajas principales, destacamos las siguientes:
- Aquellos usuarios que utilicen este programa no necesitan hacer una comprobación para saber si la información está actualizada en los lugares en
los que se encuentran los contenidos de interés.
− Sigue un formato para los datos de tipo texto plano. Presenta bastante rapidez a la hora de transmitir los datos por lo que es bastante recomendable para los dispositivos móviles.
− Ofrece la posibilidad de poder filtrar información de diferentes sitios sin perder tiempo utilizando la agrupación.
- Ámbitos de aplicación
- La sindicación o redifusión web no está relacionado con los web blogs. Es un repositorio de contenidos compartiéndolo con otros usuarios o todo tipo de
información XML. - De esta forma podemos ofrecer contenidos propios para que sean mostrados en otras páginas web de forma integrada. Esto hace que la página origen
también se vea afectada positivamente. Todo tipo de datos se puede realizar la redifusión de contenidos web. - Para permitir la visualización de los contenidos debe
suscribirte en el enlace web correspondiente. Desde el punto de vista de los suscriptores, la redifusión de contenidos permite, entre otras cosas, la actualización
profesional.
- Estructura de los canales de contenidos
- Siempre comienza con el siguiente prólogo:
>?xml versión=”1.0” encoding=”utf-8”?>
>rss versión=”2.0”> - La primera línea hace referencia a la declaración XML, que se encarga de definir la versión seleccionada para trabajar con XML junto con la codificación de caracteres
utilizados. En este ejemplo, la versión seleccionada es la 1.0 de XML que utiliza los caracteres Unicode. - La segunda línea es la declaración de tipo de documento, que nos permite identificar el lenguaje que deriva de XML, en el ejemplo, RSS versión 2.0.
- El contenido del código debe encontrarse entre las etiquetas: contenido
- Y, a continuación, viene seguido del prólogo del documento en cuestión, que vendrá identificado entre:
>channel>prólogo>/channel>
- Este elemento puede contener uno o más elementos . >?xml versión=”1.0” encoding=”utf-8”?> >rss versión=”2.0”> >channel> >tittle>Hola mundo>/tittle> >link>...>/link> >description>...>/description> >item> ... >/item> >/channel> >/rss>
- Elementos principales de un RSS: >channel> y >item>
1) >channel>
- Su función principal es describir la fuente RSS mediante tres elementos obligatorios, que son:
− >tittle>. Hace referencia al nombre del canal.
− >link>. Define el hipervínculo al canal.
− >description>. Se encarga de describir el contenido correspondiente al canal.
- Este elemento >channel> tiene posibilidad de contener un elemento o varios >item>.
- Esta lista que contiene aquellos elementos opcionales en >channel>: ELEMENTO / DESCRIPCIÓN
• >category> Define una o más cateogrías para el canal.
• >cloud> Permite información inmediata de los cambios en el canal.
• >copyright> Notifica sobre el contenido con derechos de autor.
• >docs> Indica una dirección para la documentación del formato utilizado.
• >generator> Especifica el programa utilizado para generar el canal.
• >image> Presenta una imagen cuando los agregadores muestren un canal.
• >Language> Especifica el idioma en que está escrito en el canal.
• >lastBuildDate> Define la fecha de la última modificación del contenido.
• >link> Define el hipervínculo del canal.
• >pubDate> Define la última fecha de publicación en el canal.
• >rating> La valoración PICS del canal.
• >skipDays>
• >skipHours> Especifica los días/horas durante los cuales los agregadores deben omitir la actualización del canal.
• >textInput> Especifica un campo de entrada de texto que aparece con el canal.
• >ttl> Especifica el tiempo en minutos, que el canal puede permanecer en la caché, antes de actualizarse desde la fuente (“time to live”).
• >WebMaster> Define la dirección e-mail del webmaster del canal.
- > item>
- Cada elemento >item> cuenta con la posibilidad de poder definir un determinado artículo en el canal RSS.
- En este caso, también debe contar con tres elementos
fundamentales, como:
• >tittle>. Hace referencia al título del artículo.
• >link>. Define el hipervínculo al artículo.
• >description>. Se encarga de describir el canal. - Los elementos opcionales más importantes de son los siguientes: ELEMENTO / DESCRIPCIÓN
• >author> Especifica el email del autor del artículo.
• >category> Define la categoría/s a las que pertenece el artículo.
• >comments> Permite enlazar a los comentarios sobre ese tema.
• >enclosure> Permite incluir un archivo multimedia.
• >guid> Define un identificador único para el artículo.
• >pubDate> Define la fecha de la última publicación para el artículo.
• >source> Especifica una fuente para el artículo mediante un link.
- Tecnologías de creación de canales de contenidos
- Para la creación de un canal de contenido, lo único que hace falta es un editor de XML y página web.
- Para facilitar la creación de páginas de sindicación podemos utilizar las herramientas de Joomla o DRupal. Estos programas que permiten crear una estructura de soporte para la creación y administración de contenidos.
- Presentan la ventaja de ser de código abierto y con implementación mayoritariamente en php, utiliza también servidores web Apache y gestores de bases de datos Mysql.
- Validación y publicación: Validación del archivo RSS
- Después de haber creado un archivo RSS, ya podemos realizar la validación de dicho archivo mediante la herramienta de validación del W3C.
- En la siguiente dirección podemos validar los distintos archivos desarrollados en RSS o Atom:
https: //validator.w3.org/feed/ - También contamos con la posibilidad de seleccionar entre las opciones:
• Validación por URI, si hemos conseguido subir el archivo al servidor.
• Validación pegando el archivo directamente.
- Publicación del archivo RSS
- Una vez que ya hemos escrito el código y hemos realizado su validación correspondiente, debemos subirlo a un servidor web.
- Para conseguirlo, debemos seguir una serie de pasos, que definimos a continuación:
• Primero insertaremos el enlace en la página de inicio y debemos conseguir que apunte al archivo RSS. De esta forma, podremos consultarlo mediante el navegador.
• Seguidamente, debemos insertar un elemento >link> para que los lectores RSS encuentren el archivo RSS para leerlo. Se suscriben a nuestro feed.
• A continuación, enviamos la dirección URI correspondiente desde el archivo RSS hasta el sitio web determinado. Se catalogan y almacenan feeds para que los diferentes buscadores los puedan visitar.
- Directorios de canales de contenidos
- Existen una serie de canales de contenidos de donde podemos coger la información que deseemos. Estos canales están catalogados por temática.
- Por tanto, podemos suscribirnos al canal deseado, de esta forma se actualizará el contenido integrado en
mi portal. Todo esto es gracias al lenguaje XML. - El geoportal de Infraestructuras de Datos Espaciales de España, es un listado de canales de Rss para suscribirnos a los que nos interesen.
http: //www.idee.es/suscripcion-canales-rss
- Agregación
- Es necesario que el usuario disponga de un agregador.
- Podemos diferenciar entre una gran variedad de lectores RSS, que vamos a clasificar en tres categorías
distintas, que son:
• Agregadores de escritorio. Aquellas que se pueden instalar en el ordenador de un usuario.
• Agregadores en línea. No es necesario que el usuario las instale. Solo es necesario darse de alta en el sitio para utilizarlo.
• Agregadores como plugins. Existen algunos navegadores, como FireFOX, Nestcape, Opera y algunos más, que lo incluyen entre sus programas para
ofrecer un servicio al usuario. - Cuando el usuario ya ha seleccionado el agregador adecuado, tiene que seleccionar, a continuación, qué feeds o archivos RSS va a necesitar para poder llevar a cabo la correspondiente sindicación de contenidos.
- Cómo utilizar RSS para ofrecer información
- Para poder ofrecer una determinada información desde nuestro sitio web, es necesario un creador de contenidos que cuente con conocimientos sobre XML.
- El código necesario a la hora de crear un feed (documento RSS) debe contener la información necesaria referente al sitio web. Esta información no varía, aunque, sus datos, se irán actualizando cada cierto período de tiempo.
- Por tanto, estos datos, deben estar ordenados mediante las etiquetas de inicio y fin según el lenguaje XML. De esta forma, iremos creando nuestro feed propio que puede tener distintos ítems.
- Cuando terminemos de crear el archivo RSS, debemos validarlo y comprobar que funciona correctamente. De esta forma, iremos registrando diferentes agregadores y así podremos comprobar cuántos usuarios están interesados por la información que ofrecemos a través del feed.
- Conversión y adaptación de documentos XML
- Existen una serie de lenguajes, basados en XML, como es XSL (eXtensible Stylesheet Language) que consta de las siguientes partes:
• XSLT. Este lenguaje, puede transformar aquellos documentos XML a diferentes formatos.
• XPtah. Es un tipo de lenguaje funcional que puede tener acceso a determinadas secciones de un documento XML.
• XSL- FO. Hace referencia al vocabulario XML para poder determinar las distintas semánticas de formateo.
- XSLT (eXtensible Stylesheet Language for transformations)
- Es un lenguaje estándar de W3C que se recomienda por primera vez en 1999. Basado en XML, por lo que, podemos decir que, cada hoja de transformaciones es un documento XML bien formado.
- Se trata de un lenguaje de programación (declarativo) que es capaz de generar documentos en diferentes formatos, como pueden ser: XML, HTML, texto, PDF, etc. partiendo de un documento XML.
- Lo definimos como un lenguaje declarativo porque está basado en definir una serie de reglas o plantillas que deben ser aplicadas a un documento XML para conseguir transformarlo en la salida seleccionada.
- Estas reglas, que suelen tener extensión .xls, unidas al documento .xml, se van a pasar como parámetros a un procesador XSLT que será el encargado de generar
(como salida) el nuevo documento ya transformado.
- Técnicas de transformación de documentos XML: Hojas de estilos: CSS vs XSLT:
- Existen dos familias diferentes de normas definidas por W3C: CSS y XSLT.• CSS
- Ofrece la posibilidad de definir las propiedades asociadas a los diferentes elementos de marcado (letra negrita, de un tamaño determinado, con o sin bordes, etc.), aunque presenta una serie de inconvenientes como:
− No puede cambiar orden de los elementos pertenecientes a un documento HTML.
− No tiene permitido llevar a cabo distintas operaciones con los elementos.
− Y los elementos no se pueden combinar entre ellos.• XSLT- Supera los inconvenientes anteriores ya que puede determinar el contenido que tiene un documento XML, y elegir el orden en el que se va a mostrar.
- También cuenta con la posibilidad de llevar a cabo las distintas operaciones que sean necesarias.
- Es posible decantarse por una de las dos o, incluso tenemos la opción de utilizar CSS y complementarlo con XSLT
- Procesador XSLT
- Formado por una serie de aplicaciones que permiten procesar aquellos documentos XML mediante las hojas de transformaciones XSLT.
• Primero, el procesador XSLT lee un documento XML
• A continuación, puede representar el documento mediante un árbol de nodos.
• Estos nodos pueden ser: elementos, atributos, texto, comentarios, instrucciones o espacios de nombres. Los nodos actúan de la misma forma que
un árbol (padres, hijos, ascendientes, etc.).
• El procesador XSLT recorre y procesa nodo a nodo. El nodo que se está tratando en un instante determinado, se denomina nodo de contexto
- Proceso de transformación
- Desde XML podemos llevar a cabo las transformaciones a:
• Texto
• XML
• HTML - Para llevar a cabo este proceso de transformación, debemos disponer del XML de partida junto con la hoja de estilos XLST.
- Podemos llevarlo a cabo desde tres sitios diferentes:
• En el servidor web. Utiliza una serie de lenguajes de servidor como pueden ser: PHP, JSP, etc. para aplicar la XSLT al XML, de tal forma que permite enviar de vuelta el HTML.
• En el cliente web. En este caso, es el cliente el encargado de realizar las transformaciones necesarias mediante determinados programas, como puede ser JavaScript que cuenta con una serie de funcionalidades como pueden ser: tratamiento de documentos XML, transformaciones XSLT, etc.
• En una aplicación diferente. Permite utilizar distintos programas independientes para llevar a cabo este proceso de transformación.
- Pasos para la transformación
− Debe analizar la hoja de instrucciones pasando a convertirse en una estructura árbol.
− Debe procesar el documento XML y convertirlo en una estructura árbol.
− El procesador XSLT debe posicionarse en la raíz del documento XML
− Aquellos elementos que no formen parte del espacio de nombres (con prefijo xsl), se pasan a la cadena de salida sin que haya existido modificación alguna.
− El procesador XSLT solo puede llevar a cabo una única regla a cada nodo.
- Descripción y utilización de estructura, sintaxis y plantillas: Estructura básica de una hoja de transformaciones
Una hoja de transformaciones debe ir compuesta por lo siguiente:
• Declaración del documento XML.
>?xml versión=”1.0?”>
• Elemento raíz. >xsl:stylesheet versión=”1.0” xmlns= “http://www.w3.org/1999/XSL/Transform” ... /xsl:stylesheet>
• Espacio de nombres. http://www.w3.org/1999/XSL/Transform, donde xsl corresponde al prefijo.
• Otra serie de elementos que denominamos de nivel superior que, es conveniente que aparezcan en la hoja de transformaciones, siempre como hijos de >xsl:stylesheet>.
- Algunas transformaciones especiales
− A continuación, vamos a ver una serie de casos en los que es conveniente hacer uso de diferentes trasformaciones especiales, como:
• Si tenemos una hoja de transformación sin plantillas (template), el contenido de texto del documento XML se va a enviar directamente a la salida, sin tener en cuenta los distintos valores de los atributos, ni los comentarios ni las instrucciones específicas de procesamiento. • Si la hoja de transformación solo tiene una plantilla, la asocia al nodo raíz del documento XML sin contenido alguno, es decir, no va a enviar nada a la salida. • Si tenemos una hoja de transformaciones, pero esta no tiene asociada ninguna plantilla al nodo raíz, aunque, sí cuenta con otras que pueden ir asociadas a otros elementos, se va a ir realizando un recorrido por el árbol del documento XML. De esta forma, puede enviar contenido textual a la salida y aplicar las reglas que se hayan definido en cuanto se localice el elemento con la plantilla asociada. • Si tenemos una hoja de transformaciones con alguna plantilla, se va a ir realizando un recorrido por el árbol del documento XML en el mismo orden en el que está escrito y, cuando encuentre una plantilla que coincida con el elemento que nos encontramos, se aplicará a la plantilla.
- Elementos básicos de una hoja de transformaciones
− Existen un grupo de instrucciones que nos van a permitir poder generar un gran número de salidas, entre los que destacamos:
1) xsl:stylesheet y xsl:transform
- Son unos elementos que podemos utilizar para poder definir el elemento raíz en la hoja de transformaciones.
• Atributos obligatorios
a) versión: determina la versión seleccionada XSLT del documento.
b) xmlns: hace referencia al espacio de nombres del documento XML.
• Atributos optativos principales
a) exclude-result-prefixes: lista los espacios de nombres separados por un espacio. Estos no se deben enviar a la salida.
____________________
2) xsl:output
− Es el elemento encargado de definir el formato del documento de salida. Este elemento corresponde a un nivel superior y tiene que aparecer como “hijo de”.
>xsl:stylesheet> o >xsl: transform>
• Atributos optativos principales a) method: tiene como valor por defecto, XML y va a definir el formato de salida. b) versión: determina la versión del formato de salida. c) encoding: apunta al juego de caracteres de salida. e) indent: determina si la salida está preparada conforme a la estructura jerárquica. f) omit-xml-declaration: determina si la instrucción declarada para procesar el documento se puede omitir en la salida. g) standalone: determina si es necesario añadir el atributo standalone a la instrucción que declara el tipo. Su valor asignado por defecto es, no. \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ 3) xsl:template − Es una de las instrucciones más importantes de las hojas de transformaciones, junto con >xsl:apply-templates>.
− Puede representar una plantilla que dispone de una serie de acciones encargadas de realizar el patrón de una plantilla.
− Si aplicamos una plantilla a un nodo determinado, se va a aplicar solo a ese nodo, pero lo que hace es sustituir al nodo y a sus descendientes por el resultado que hemos obtenido de la aplicación de la plantilla. Este hecho nos va a eliminar toda la información de los descendientes.
• Atributos optativos principales a) name: asigna un nombre a una plantilla. b) match: señala el patrónXPath al que se le va a aplicar la plantilla. c) priority: valor que oscila entre -9 y 9 (de menos a más prioridad) que le asignamos a las diferentes reglas de resolución de conflictos. d) mode: diferencia entre dos plantillas con el mismo atributo match. \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ 4) xsl:apply-templates − Es otra de las funciones principales en el ámbito del lenguaje de las transformaciones XSLT. Si comprendemos su funcionamiento sin ningún tipo de problema, vamos a conseguir sacar el máximo rendimiento a la hora de trabajar con las distintas transformaciones. • Atributos optativos principales a) select: selecciona los nodos que se van a procesar. b) mode: diferencia entre distintas plantillas que tengan el mismo atributo match.
- Reglas de resolución de conflictos en plantillas
− Existen unas reglas que se deben aplicar a los elementos siguiendo un orden. Cada una de estas reglas, va a tener una prioridad asociada (-9,9) que, cuando las aplicamos de forma automática, va a tener los valores: PATRON / PRIORIDAD
* “*”, “@*”, “text ()”, y otros patrones para los que no se indica un nombre concreto. | -0.5 * “Prefijo:*”, “@prefijo:*”, y otros patrones para los que se indica el espacio de nombres, pero no un nombre concreto. | -0.25 * “producto”, “@unidades”, y otros patrones donde se indiquen nombres de elementos y atributos concretos. | 0 * “proveedor/representante”, “productos/producto/precio”, “precio/@unidades”, y otros patrones para los que se indique una jerarquía (además del nombre del elemento y/o atributo. | 0.5
− En caso de existir diferentes plantillas con la misma prioridad, puede que se produzca un error o puede que se aplique a la última plantilla.
- Modos de las plantillas
− Es bastante frecuente que una hoja de estilo acceda distintas veces a un mismo nodo, devolviendo valores diferentes a la salida cada vez. Para estas ocasiones,
debemos utilizar el atributo de las plantillas mode, que nos permite etiquetar cada plantilla para que se puedan llamar por el texto de la etiqueta.
1) xsl:call-template.
− Podemos utilizarla para llamar a una plantilla por su nombre.
− Cuando la aplicamos, no cambia el nodo de contexto, por tanto, en la plantilla que invoquemos tenemos que utilizar el mismo direccionamiento de aquellos elementos que existían en la que realizaba la llamada.
• Atributos obligatorios a) name: nombre de la plantilla a la que se va a llamar. \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ 2) xsl:value-of. − Nos permite visualizar el contenido que se indica en el atributo select junto con todos sus descendientes. • Atributos obligatorios a) select: expresión XPath que determina el elemento o atributo del que debemos extraer el contenido. • Atributos optativos principales a) Disable-output-escaping: indica si algunos caracteres especiales (