jueves, 13 de junio de 2013

4.1. Características del lenguaje.


Dedinicion de XML

XML, siglas en inglés de eXtensible Markup Language('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C). Deriva del lenguaje SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML) para estructurar documentos grandes.
 
A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo útil cuando varias aplicaciones se deben comunicar entre sí o integrar información. (Bases de datos Silberschatz).

XML no ha nacido sólo para su aplicación para Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.


XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.
 
 

Ventajas de XML

  • Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicación alguna.
  • El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones.
  • Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podríamos tener una aplicación en Linux con una base de datos Postgres y comunicarla con otra aplicación en Windows y Base de Datos MS-SQL Server.
  • Transformamos datos en información, pues se le añade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos.

Estructura de un documento XML

La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de trozos de información. Ejemplos son un tema musical, que se compone de compases, que están formados a su vez por notas. Estas partes se llaman elementos, y se las señala mediante etiquetas.

Una etiqueta consiste en una marca hecha en el documento, que señala una porción de éste como un elemento. Un pedazo de información con un sentido claro y definido. Las etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se está señalando.
 
 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Edit_Mensaje SYSTEM "Edit_Mensaje.dtd">

<Edit_Mensaje>
<Mensaje>
<Remitente>
<Nombre>Nombre del remitente</Nombre>
<Mail> Correo del remitente </Mail>
</Remitente>
<Destinatario>
<Nombre>Nombre del destinatario</Nombre>
<Mail>Correo del destinatario</Mail>
</Destinatario>
<Texto>
<Asunto>
Este es mi documento con una estructura muy sencilla
no contiene atributos ni entidades...
</Asunto>
<Parrafo>
Este es mi documento con una estructura muy sencilla
no contiene atributos ni entidades...
</Parrafo>
</Texto>
</Mensaje>
</Edit_Mensaje>


Aquí está el ejemplo de código del DTD del documento «Edit_Mensaje.dtd»:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Este es el DTD de Edit_Mensaje -->

<!ELEMENT Mensaje (Remitente, Destinatario, Texto)*>
<!ELEMENT Remitente (Nombre, Mail)>
<!ELEMENT Nombre (#PCDATA)>
<!ELEMENT Mail (#PCDATA)>
<!ELEMENT Destinatario (Nombre, Mail)>
<!ELEMENT Nombre (#PCDATA)>
<!ELEMENT Mail (#PCDATA)>
<!ELEMENT Texto (Asunto, Parrafo)>
<!ELEMENT Asunto (#PCDATA)>
<!ELEMENT Parrafo (#PCDATA)>


Generalized Markup Language


Generalized Markup Language (GML) (Lenguaje de marcado generalizado en español) es un conjunto de macros que aplican la base de las etiquetas de marcas para el SCRIPT un formateador de texto de la IBM, "SCRIPT". SCRIPT es el componente principal de IBM Document Composition Facility (DCF). Un conjunto de etiquetas de arranque en GML se proporciona en el producto DCF.

 

GML simplifica la descripción de un documento en términos de su formato, estructura de organización, piezas contentas y su relación, y otras características. El margen de beneficio de GML (o las etiquetas) describe las piezas tales como los capítulos, las secciones importantes, y las secciones menos importantes (especificando niveles del título), párrafos, listas, tablas, y así sucesivamente.

 

 

 

 

 

4.2. Lenguaje de Marcado Generalizado



El lenguaje de marcado (markup language), también denominado lenguaje de anotaciones o de etiquetas, se define como un conjunto de reglas para estructurar y dar formato a un documento electrónico. Suelen utilizar etiquetas para definir el inicio y el final de un elemento: un párrafo, un título, un elemento subrayado, etc
 
lenguajes de marcas más utilizados son HTML y XML, ambos basados en el metalenguaje SGML (standard generalized markup language). Un lenguaje de marcado cumple con dos objetivos esenciales para diseñar y procesar un documento digital:


 
 
 
Ventajas del XML
 
 
 
  • Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicación alguna.

  • El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones.

  • Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podríamos tener una aplicación en Linux con una base de datos Postgres y comunicarla con otra aplicación en Windows y Base de Datos MS-SQL Server.

  • Transformamos datos en información, pues se le añade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos


  •  
     
     
     
     
     
     
     

    4.3. Lenguaje Extensible de Marcado de Hipertexto


    XHTML, Siglas del inglés eXtensible HyperText Markup Language. XHTML es básicamente HTML expresado como XML válido. Es más estricto a nivel técnico, pero esto permite que posteriormente sea más fácil al hacer cambios o buscar errores entre otros.
     


     
     
     En su versión 1.0, XHTML es solamente la versión XML de HTML, por lo que tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas, de XML. Su objetivo es avanzar en el proyecto del World Wide Web Consortium de lograr una web semántica, donde la información, y la forma de presentarla estén claramente separadas. La versión 1.1 es similar, pero parte a la especificación en módulos. En sucesivas versiones la W3C planea romper con los tags clásicos traídos de HTML.

     
     
     

    Ventajas respecto del HTMLLas principales ventajas del XHTML sobre el HTML son:

    • Se pueden incorporar elementos de distintos espacios de nombres XML (como MathML y Scalable Vector Graphics).
    • Un navegador no necesita implementar heurísticas para detectar qué quiso poner el autor, por lo que el parser puede ser mucho más sencillo.
     
     
     
    • Como es XML se pueden utilizar fácilmente herramientas creadas para procesamiento de documentos XL genéricos (editores, XSLT, etc.).

     

     

    4.4. Definición de Tipo de Documento.


    Una definición de tipo de documento o DTD (siglas en inglés de document type definition) es una descripción de estructura y sintaxis de un documento XML o SGML. Su función básica es la descripción de la estructura de datos, para usar una estructura común y mantener la consistencia entre todos los documentos que utilicen la misma DTD.
     
    De esta forma, dichos documentos pueden ser validados, conocen la estructura de los elementos y la descripción de los datos que trae consigo cada documento, y pueden además compartir la misma descripción y forma de validación dentro de un grupo de trabajo que usa el mismo tipo de información.


    ¿Qué describe una DTD?

     

    Las DTD se emplean generalmente para determinar la estructura de un documento mediante etiquetas (en inglés tags) XML o SGML. Una DTD describe:

     

    • Elementos: indican qué etiquetas son permitidas y el contenido de dichas etiquetas.
    • Estructura: indica el orden en que van las etiquetas en el documento.
    • Anidamiento: indica qué etiquetas van dentro de otras.



    Ejemplo

    Un ejemplo de una DTD XML muy simple, para describir una lista de personas:

    < !ELEMENT lista_de_personas (persona*)>
    < !ELEMENT persona (nombre, fechanacimiento?, sexo?, numeroseguridadsocial?)>
    < !ELEMENT nombre (#PCDATA) >
    < !ELEMENT fechanacimiento (#PCDATA) >
    < !ELEMENT sexo (#PCDATA) >
    < !ELEMENT numeroseguridadsocial (#PCDATA)>

    Un ejemplo de un fichero XML que hace uso de esta DTD:

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <!DOCTYPE lista_de_personas SYSTEM "ejemplo.dtd">

    <lista_de_personas>

      <persona>

        <nombre>José García</nombre>

        <fechanacimiento>25/04/1984</fechanacimiento>

        <sexo>Varón</sexo>

      </persona>

    </lista_de_personas>

     

    Limitaciones de la DTD

     

    Un esquema basado en una DTD tiene bastantes limitaciones. Una DTD no permite definir elementos locales que

    sólo sean válidos dentro de otros elementos. Por ejemplo, si queremos tener un elemento <Manager> que describa

    al gestor de una compañía o al de unaelegación, y la definición de Manager es diferente en cada caso, con una DTD

     tendríamos que crear los elementos “CompanyManager” y “DelegationManager” para evitar el conflicto de nombres.

     Es decir, la falta de jerarquía en una DTD obliga a introducir una jerarquía a base de guiones o puntos en el espacio de nombres

    (Name Space). En una DTD es poco flexible la definición de elementos con contenido mixto, es decir, que incluyan

    otros elementos además de texto. Además no es posible indicar a qué tipo de ato (número, fecha, moneda) ha de

     corresponder un atributo o el texto de un elemento.

    la necesidad de superar estas

    limitaciones propicia la aparición de otros lenguajes de esquema como XMLSchema, herramientas más completas de

    descripción que son una alternativa a las DTD.

    4.5. XSL y CSS.


    XSL (siglas de Extensible Stylesheet Language, expresión inglesa traducible como "lenguaje extensible de hojas de estilo").


    Es una familia de lenguajes basados en el estándar XML que permite describir cómo la información contenida en un documento XML cualquiera debe ser transformada o formateada para su presentación en un medio.
     
     
     
     
     

    Esta familia está formada por tres lenguajes:

     

    • XSLT (siglas de Extensible Stylesheet Language Transformations, lenguaje de hojas extensibles de transformación), que permite convertir documentos XML de una sintaxis a otra (por ejemplo, de un XML a otro o a un documento HTML).

    • XSL-FO (lenguaje de hojas extensibles de formateo de objetos), que permite especificar el formato visual con el cual se quiere presentar un documento XML, es usado principalmente para generar documentos PDF.









    • XPath, o XML Path Language, es una sintaxis (no basada en XML) para acceder o referirse a porciones de un documento XML.


    Ventajas



     

    • Control centralizado de la presentación de un sitio web completo con lo que se agiliza de forma considerable la actualización del mismo.

    • Separación del contenido de la presentación, lo que facilita al creador, diseñador, usuario o dispositivo electrónico que muestre la página, la modificación de la visualización del documento sin alterar el contenido del mismo, sólo modificando algunos parámetros del CSS.

    • Optimización del ancho de banda de la conexión, pues pueden definirse los mismos estilos para muchos elementos con un sólo selector; o porque un mismo archivo CSS puede servir para una multitud de documentos.

    • Mejora en la accesibilidad del documento, pues con el uso del CSS se evitan antiguas prácticas necesarias para el control del diseño (como las tablas), y que iban en perjuicio de ciertos usos de los documentos, por parte de navegadores orientados a personas con algunas limitaciones sensoriales.

    4.6 API simple para XML y modelo en objetos para la representación



    API simple para XML y modelo en objetos para la representación de documentos


    SAX son las siglas de "Simple API for XML", originalmente, una API únicamente para el lenguaje de programación Java, que después se convirtió en la API estándar de facto para usar XML en JAVA. Existen versiones de SAX no sólo para JAVA, si no también para otros lenguajes de programación (como python).
     
     
     
     
     
     

    Analizador o parser SAX

    Detecta cuándo empieza y termina un elemento o el documento, o un conjunto de caracteres, etc. (genera eventos) Gestiona los espacios de nombres. Comprueba que el documento está bien formado.

    Las aplicaciones necesitan implementar manejadores de los eventos notificados.

    SAX lee secuencialmente de principio a fin, sin cargar todo el documento en memoria.

    Ventaja y desventajas

    Eficiencia en cuanto al tiempo y la memoria empleados en el análisis

    No dispone de la estructura en árbol.

    Es más difícil de manipular.

    Realiza una lectura secuencial del documento por lo que una vez leído no se puede volver atrás, algo que DOM sí permite.




    El DocumentObjectModel o DOM ('Modelo de Objetos del Documento' o 'Modelo en Objetos para la Representación de Documentos') es esencialmente una interfaz de programación de aplicaciones (API) que proporciona un conjunto estándar de objetos para representar documentos HTML y XML, un modelo estándar sobre cómo pueden combinarse dichos objetos, y una interfaz estándar para acceder a ellos y manipularlos. A través del DOM, los programas pueden acceder y modificar el contenido, estructura y estilo de los documentos HTML y XML, que es para lo que se diseñó principalmente