Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos

ORIGEN:

Fecha

3-2-2006

------------------------------------------------------

Inicio > Tutoriales > Internet > XML > Apuntes de XML
-Tutoriales

Apuntes de XML


Otros temas de interés

. XLink

  • Es un lenguaje XML que nos permite especificar enlaces entre documentos XML.
  • Ofrece muchas más posibilidades de enlace que el elemento <a href=...> ... </a> recogido en el estándar HTML.
  • Veamos un ejemplo de código:
    <environment xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended"> 
      <artist xlink:type="locator" xlink:label="artist" xlink:href="modigliani.xml"/> 
      <influence xlink:type="locator" xlink:label="inspiration" xlink:href="cezanne.xml"/>
      <influence xlink:type="locator" xlink:label="inspiration" xlink:href="lautrec.xml"/> 
      <influence xlink:type="locator" xlink:label="inspiration" xlink:href="rouault.xml"/> 
      <history xlink:type="locator" xlink:label="period" xlink:href="paris.xml"/> 
      <history xlink:type="locator" xlink:label="period" xlink:href="kisling.xml"/> 
      <bind xlink:type="arc" xlink:from="artist" xlink:to="inspiration"/> 
      <bind xlink:type="arc" xlink:from="artist" xlink:to="period"/> 
    </environment> 
  • En XLink existen dos tipos de enlaces: simples (como los elementos a ó img de HTML) y extendidos.
  • Los recursos y enlaces se representan con elementos, pudiendo elegir libremente el nombre de los mismos.
  • Para recursos externos se usa el tipo locator, para recursos internos resource.
  • Para especificar finalmente los enlaces se usa el tipo arc.
  • Como se puede observar, la característica más atractiva de XLink es que podemos tener enlaces múltiples.
  • Existe un lenguaje complementario, Xpointer (basado en Xpath), que permite realizar enlaces a partes de un documento o incluso a elementos individuales.
  • Para que XLink y Xpointer sean realmente útiles se deben ir implementando progresivamente en los navegadores.

. JDOM

. Otra API más

  • Es otra API para manipular documentos XML, pero sólo desde programas escritos en Java.
  • Pretende ser una alternativa a la API DOM, con las siguientes características principales:
    • Más fácil de usar.
    • Más adecuada a Java.
    • Más rápida.
    • Independiente de cualquier analizador (recordar problemas con la creación y serialización de documentos).
    • Que se integre bien con SAX y DOM.
  • A continuación se muestra un ejemplo que extrae el título y los capítulos del documento del libro, utilizando para ello JDOM:
    import java.io.File;
    import java.util.List;
    import org.jdom.input.DOMBuilder;
    import org.jdom.*;
    
    public class PeqEjemplo {
                   
      public static void main(String[] args) {
        if (args.length != 1) {
                System.out.println("Debe haber un parámetro (el fichero)");
        }
        else {
          String fich = args[0];
          System.out.println("Generando árbol para: " + fich + "\n");
          try {
            DOMBuilder b = 
              new DOMBuilder("org.jdom.adapters.XercesDOMAdapter");
            Document doc = b.build(new File(fich));
            Element raiz = doc.getRootElement();
            Namespace ns = Namespace.getNamespace
                    ("http://www.mislibros.com/libros/javaxml");
            Element tit = raiz.getChild("Titulo", ns);
            System.out.println(tit.getText() + "\n");
            Element cont = raiz.getChild("Contenido", ns);
            List caps = cont.getChildren("Capitulo", ns);
            for (int i=0; i<caps.size(); i++) {
              Element cap = (Element)caps.get(i);
              System.out.println(cap.getChildText("Tema", ns));
            }
          } catch (JDOMException e) {
              System.out.println(e);
          }
        }
       }
    }

. Ventajas y desventajas

  • Como aspectos positivos de JDOM, a modo de ejemplo, se pueden observar los siguientes, que facilitan el trabajo con los documentos XML:
    • El método getText() devuelve directamente el texto contenido en un elemento, mientras que la forma más simple de hacerlo con DOM sería getFirstChild().getNodeValue().
    • Otro método muy útil es getChildText(), que devuelve el texto de un hijo. Esta misma tarea con DOM requeriría bastante más código.
    • Se utilizan clases estándar del estilo List y Map, incluidas en Java desde su versión 1.2, en lugar de las clases NodeList y NamedNodeMap que vienen con DOM.
    • Existen una serie de adaptadores que permiten construir un documento especificando un determinado analizador, pero sin necesidad de importar explícitamente la clase necesaria (portabilidad).
  • En cuanto a los aspectos negativos de JDOM, también a modo de ejemplo:
    • No existe un método equivalente al muy útil getElementsByTagName que con DOM nos permitía obtener elementos de cualquier nivel por debajo del actual.
    • Es necesario especificar el espacio de nombres, incluso cuando se trabaja sin prefijo alguno.

. Una API en desarrollo

  • De cualquier forma, la API JDOM todavía se encuentra en fase beta, por lo que es previsible que cambie algo hasta la finalización de la versión 1.0.
  • Actualmente forma parte del JCP (Java Community Process) mediante una JSR (Java Specification Request), por lo que seguramente formará parte de una versión futura del JDK.

. Marcos de publicación web

. El problema

  • Imaginemos un gran sitio web formado por decenas o incluso cientos de páginas HTML.
  • Se desea permitir un acceso múltiple al contenido a través de un navegador o a través de móviles WAP (sin descartar más formas de acceso en el futuro), e incluso que se puedan imprimir los contenidos con calidad utilizando un formato como PDF.
  • También es deseable que se pueda realizar sin demasiada dificultad un completo cambio de imagen en todo el sitio web.

. Soluciones con tecnología conocida

  • Las hojas de estilo en cascada (CSS) pueden ayudar un poco en esta tarea, pero no lo suficiente.
  • Con un sistema basado en Java Servlets se debería cambiar el código de éstos, e incluso añadir más servlets, con las consiguientes recompilaciones, configuraciones y riesgos para el funcionamiento del sistema.
  • Una solución bastante buena es el uso de páginas JSP, sobre todo si se combina con el uso de beans y librerías de etiquetas.

. Contenido y presentación

  • De lo que se trata en el fondo es de hallar la mejor forma de separar contenido y presentación.
  • Por un lado tendríamos el contenido, los datos, y por otro lado distintas vistas o formas de presentar los datos.
  • De esta forma un cambio de imagen sólo afecta a una o varias vistas. La necesidad de mostrar los datos en otro formato sólo implica la creación de otra vista.

. La solución: marcos de publicación web

  • Un marco de publicación es un sistema que sirve contenido web aplicando los principios de la separación entre contenido y presentación que hemos visto.
  • Para el contenido se utiliza XML y para la presentación XSL (tanto XSLT como XSL-FO).
  • Más en detalle, un marco de publicación web XML/XSL es un sistema que:
    • Admite peticiones de documentos en diversos formatos.
    • Obtiene la información adecuada de las posibles fuentes de datos XML.
    • Obtiene la información sobre las transformaciones XSL necesarias y se las aplica a los datos.
    • Formatea el resultado final y lo sirve como respuesta a la petición inicial.

. Ventajas

  • Separación limpia entre contenido y presentación (que lleva consigo la separación clara entre distintos roles de trabajo).
  • Proporciona una mejora muy notable del mantenimiento: se puede realizar un cambio radical de imagen de todo un site web con tan solo modificar las hojas XSL y sin tocar ni una sola línea de código.
  • A partir de un solo documento XML con el contenido, se pueden obtener páginas HTML para su presentación web, páginas WML para dispositivos WAP, documentos PDF para imprimir, etc.
  • Aunque no hay ningún estándar que regule cómo debe ser un sistema de publicación, si que está basado en estándares con mucha fuerza en el mercado, por lo que es más sencillo pasar de usar uno a usar otro.
  • Es compatible con el resto de tecnologías web como servlets, JSPs...

. Un ejemplo de marco de publicación: Cocoon

  • La principal desventaja de estos sistemas es la poca madurez de la mayoría.
  • El más maduro y reconocido en este momento es Cocoon, cuya versión 2.0 ya se encuentra disponible, con muchas mejoras en cuanto a facilidad de uso y eficiencia sobre la serie 1.x.
  • Veamos algunas de sus características:
    • Forma parte del proyecto colaborativo de código abierto Apache.
    • Es altamente configurable. Por ejemplo, podemos elegir el analizador XML y el procesador XSLT que más nos gusten.
    • Permite diferenciar el procesado del documento en función del dispositivo o tipo de software que realiza la petición.
    • Incorpora un sistema de caché que permite un rendimiento muy elevado.
    • Puede trabajar como un programa en línea de comandos pero su uso normal es como un sistema de servlets para la publicación a través de la Web.
    • Incorpora las páginas XSP, que son documentos XML que aparte de contenido estático incluyen lógica para crear XML dinámicamente. Son parecidas a las páginas JSP, pero pretenden solucionar algunos problemas de éstas.
 
Patrocinados
 

Copyright © 1999-2005 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados