Desarrollo con XML
lunes, 7 de abril de 2014
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>
<!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
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.
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
Suscribirse a:
Comentarios (Atom)










