0% encontró este documento útil (0 votos)
58 vistas9 páginas

Introducción A XML

Cargado por

Mayra Mendieta
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas9 páginas

Introducción A XML

Cargado por

Mayra Mendieta
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

INTRODUCCIÓN

Debemos empezar aprendiendo qué es la web y las características de este medio de


comunicación. Aprenderemos también qué es HTML, el lenguaje hipertexto con el que
están construidas todas las páginas web. Asimismo, introduciremos un concepto básico
para poder clasificar los distintos lenguajes disponibles, el de páginas dinámicas.

INTRODUCCIÓN A XML

QUE ES XML

XML es una tecnología en realidad muy sencilla que tiene a su alrededor otras tecnologías
que la complementan y la hacen mucho más grande y con unas posibilidades enormes y
básicas para la sociedad de la información. Vamos a ver a lo largo de varios capítulos una
introducción al mundo XML, es decir, al lenguaje así como a las tecnologías que trabajan
con él, sus usos, ventajas y modos de llevar a cabo las tareas.

XML, con todas las tecnologías relacionadas, representa una manera distinta de hacer las
cosas, más avanzada, cuya principal novedad consiste en permitir compartir los datos con
los que se trabaja a todos los niveles, por todas las aplicaciones y soportes. Así pues, el
XML juega un papel importantísimo en este mundo actual, que tiende a la globalización y
la compatibilidad entre los sistemas, ya que es la tecnología que permitirá compartir la
información de una manera segura, fiable, fácil. Además, XML permite al programador y
los soportes dedicar sus esfuerzos a las tareas importantes cuando trabaja con los datos,
ya que algunas tareas tediosas como la validación de estos o el recorrido de las
estructuras corre a cargo del lenguaje y está especificado por el estándar, de modo que el
programador no tiene que preocuparse por ello.

Vemos que XML no está sólo, sino que hay un mundo de tecnologías alrededor de él, de
posibilidades, maneras más fáciles e interesantes de trabajar con los datos y, en definitiva,
un avance a la hora de tratar la información, que es en realidad el objetivo de la
informática en general. XML, o mejor dicho, el mundo XML no es un lenguaje, sino varios
lenguajes, no es una sintaxis, sino varias y no es una manera totalmente nueva de
trabajar, sino una manera más refinada que permitirá que todas las anteriores se puedan
comunicar entre si sin problemas, ya que los datos cobran sentido.

HISTORIA DEL XML

El XML proviene de un lenguaje que inventó IBM allá por los años 70. El lenguaje de IBM
se llama GML (General Markup Language) y surgió por la necesidad que tenían en la
empresa de almacenar grandes cantidades de información de temas diversos.
Imaginar por un momento la cantidad de documentación que generaría IBM sobre todas
las áreas en las que trabajaba e investigaba, y la cantidad de información que habrá
generado hasta hoy. Así pues, necesitaban una manera de guardar la información y los
expertos de IBM se inventaron GML, un lenguaje con el que poder clasificarlo todo y
escribir cualquier documento para que se pueda luego procesar adecuadamente.

Este lenguaje gustó mucho a la gente de ISO, una entidad que se encarga de normalizar
cuantas cosas podáis imaginar para los procesos del mundo actual, de modo que allá por
el 86 trabajaron para normalizar el lenguaje, creando el SGML, que no era más que el GML
pero estándar (Standar en inglés).

SGML es un lenguaje muy trabajado, capaz de adaptarse a un gran abanico de problemas


y a partir de él se han creado los siguientes sistemas para almacenar información.

Por el año 89, para el ámbito de la red Internet, un usuario que había conocido el lenguaje
de etiquetas (Markup) y los hiperenlaces creo un nuevo lenguaje llamado HTML, que fue
utilizado para un nuevo servicio de Internet, la Web. Este lenguaje fue adoptado
rápidamente por la comunidad y varias organizaciones comerciales crearon sus propios
visores de HTML y riñeron entre ellos para hacer el visor más avanzado, inventándose
etiquetas como su propia voluntad les decía. Desde el 96 hasta hoy una entidad llamada
W3C ha tratado de poner orden en el HTML y establecer sus reglas y etiquetas para que
sea un estándar. Sin embargo el HTML creció de una manera descontrolada y no cumplió
todos los problemas que planteaba la sociedad global de Internet.

El mismo W3C en el 98 empezó y continúa, en el desarrollo de XML (Extended Markup


Language). En este lenguaje se ha pensado mucho más y muchas personas con grandes
conocimientos en la materia están trabajando todavía en su gestación. Pretendían
solucionar los carencias del HTML en lo que se respecta al tratamiento de la información.
Problemas del HTML como:

 El contenido se mezcla con los estilos que se le quieren aplicar.


 No permite compartir información con todos los dispositivos, como pueden ser
ordenadores o teléfonos móviles.
 La presentación en pantalla depende del visor que se utilice.

Imagínese, una persona que conoce el HTML y lo difícil que puede llegar a ser entender su
código, que tuviese que procesarlo para extraer datos que necesite en otras aplicaciones.
Sería muy difícil saber dónde está realmente la información que busca, siempre mezclada
entre etiquetas <FONT>, <TABLE>, <TD>, etc... Esto es una mala gestión de la información
y el XML la soluciona.

COMPONENTES DE UN DOCUMENTO EN XML


Comentarios

Los comentarios en los documentos XML empiezan por <!-- y acaban por -->. Pueden
contener cualquier cadena de texto excepto el literal --. Pueden colocarse en cualquier
parte del documento.

Ej:
   <!-- Esto es comentario <ñññññ-d#dd -->

Secciones CData
Le indican al parser que ignore todos los caracteres de marcas que se encuentren en el
interior de esta/s sección/es. (ed, son como comentarios a lo bestia). Son muy útiles
cuando queremos (x ej. a modo de tutorial) visualizar código XML como parte del texto.
Todos los caracteres que existan entre <!--[CDATA[ y ]]--> son pasados directamente a la
aplicación sin interpretación. El único literal q no puede ser utilizado dentro de la sección
es, lógicamente, el ]]>.

Ej.

<![CDATA[ <!ENTITY amp "&"> <!-- &= ampersand -->

<CODIGO>

*p=&q->campo;
a=(x<y)?33:44;
</CODIGO>
]]>

Elementos

Son las etiquetas más frecuentemente utilizadas dentro de un documento XML.


Están delimitadas por los símbolos < y >, sintaxis de todos conocida, puesto q era la usada
en HTML. Si el contenido de la etiqueta es vacío (al igual q <BR> ó <IMG> en HTML),
entonces se delimitan por los símbolos < y />.

Las etiquetas de apertura (las que empiezan por >) pueden incluir atributos, los cuales son
pares nombre/valor al estilo color="verde". (x ej, en HTML <font color="green">).
OJO!! En XML los atributos siempre deben ir encerrados entre comillas dobles.

Ejs:

<nombre id="surname">Perez</nombre>
<vacia color="verde"/>

Referencias a entidades
Las entidades(entity) se usan en XML básicamente como representación alternativa de los
caracteres especiales (como por ejemplo las comillas dobles ó la marca de apertura en un
elemento), aunque también pueden emplearse para incluir el contenido de otros
documentos ó para hacer referencia a trozos de texto repetitivos.

Sintaxis: &xxx;     donde xxx es el nombre de la entidad, y , &xxx; es la manera de referirse
a la entidad.

Ej: &ampeacute; ----> Representa al símbolo é.

Existe una referencia a entidades "especial", denominada referencia a caracteres.


Ésta se usa para representar caracteres que no pueden ser escritos desde el teclado.
No tienen un nombre de cadena (como eacute x ej) sino q su nombre es, ó un nº decimal,
ó un nº hexadecimal.

Ej: &#38; <!-- Ampersand -->

Tambien se pueden crear constantes (ó macros) para que no nos tengamos q acordar de
los números. Para ello usamos la definición "real" de entidad:

Ej:

<!ENTITY amp "&#38;"&ampgt;

Para referenciarlo: &ampamp;

SINTAXIS DEL XML

Dicen que el XML es un 10% del SGML y de verdad lo es, porque en realidad las normas
que tiene son muy simples. Se escribe en un documento de texto ASCII, igual que el HTML
y en la cabecera del documento se tiene que poner el texto

<?xml version="1.0"?>

En el resto del documento se deben escribir etiquetas como las de HTML, las etiquetas
que nosotros queramos, por eso el lenguaje se llama XML, lenguaje de etiquetas
extendido. Las etiquetas se escriben anidas, unas dentro de otras.

<ETIQ1>...<ETIQ2>...</ETIQ2>...</ETIQ1>

Cualquier etiqueta puede tener atributos. Le podemos poner los atributos que queramos.

<ETIQ atributo1="valor1" atributo2="valor2"...>

Los comentarios de XML se escriben igual que los de HTML.


<!-- Comentario -->

Y esto es todo lo que es el lenguaje XML en si, aunque tenemos que tener en cuenta que
el XML tiene muchos otros lenguajes y tecnologías trabajando alrededor de él. Sin
embargo, no cabe duda que la sintaxis XML es realmente reducida y sencilla.

Para definir qué etiquetas y atributos debemos utilizar al escribir en XML tenemos que
fijarnos en la manera de guardar la información de una forma estructurada y ordenada.
Por ejemplo, si deseamos guardar la información relacionada con una película en un
documento XML podríamos utilizar un esquema con las siguientes etiquetas.

<?xml version="1.0"?>
<PELICULA nombre="El Padrino" año=1985>
<PERSONAL>
</DIRECTOR nombre="Georgie Lucar">
</INTERPRETE nombre="Marlon Brando" interpreta-a="Don Corleone">
</INTERPRETE nombre="Al Pacino" interpreta-a="Michael Corleone">
</PERSONAL>
</ARGUMENTO descripción="Pelicula de mafias sicilianas en Estados Unidos">
</PELICULA>

Como podéis ver, nos hemos inventado las etiquetas que nos venían en gana para poner
este ejemplo y las hemos anidado de manera que la etiqueta más grande es la PELICULA y
dentro de ella tenemos el PRESONAL y el ARGUMENTO. A su vez, dentro de PERSONAL
tenemos tanto al DIRECTOR como a los actores (INTERPRETE).

DECLARACIONES DE TIPO DE DOCUMENTO (DTD'S)

XML tiene una ventaja que se puede convertir en un inconveniente: cada persona/autor
puede crear sus propias etiquetas.

Esto no trae problemas si trabajamos solos; pero, ¿y si trabajamos en equipo?, ¿y si


queremos exportar nuestros documentos? ¿qué estándar seguiremos?

Ej:

    "A" puede escribir el nombre como sigue:


        <nombre>Juan</nombre>
    Sin embargo, "B" puede hacerlo así:
       <nombre id="Juan"/>

Las 2 versiones son igual de correctas pero son diferentes; si extrapolamos esto a muchas
marcas, entonces la lectura y/o modificación de documentos por diferentes personas
puede ser un caos.
Nota: Como me enseñaron en la universidad, "no es plan" que hagas una aplicación que
sólo entiendas tú, de forma que, si se quiere modificar, la empresa tenga que pedirte de
rodillas que lo hagas.

Para resolver estos problemas, proporcionando un pequeño estandar acerca de la sintaxis


a utilizar, XML ofrece dos posibles soluciones:

 Las DTD's.
 Los XML Schemas.

En las DTD's podemos hacer 4 tipos de declaraciones:

1. Declaraciones de tipo de elemento (Element Type Declarations).


2. Declaraciones de listas de atributos (Attribute List Declarations).
3. Declaraciones de Entidades (Entity Declarations).
4. Declaraciones de notación (Notation Declarations).

Las trataré una a una en los siguientes apartados.

Declaraciones de tipo de elemento

Estas declaraciones establecen qué elementos pueden formar parte del documento y
cuáles pueden formar parte de su interior (los elementos se anidan unos dentro de otros).

Sintaxis:

Los elementos que puede contener cada elemento (valga la redundancia) van siempre
encerrados entre paréntesis y precedidos de la etiqueta <!ELEMENT.

Dentro de las etiquetas, cada elemento (atributo) podrá llevar uno de los siguientes
símbolos detrás de su nombre:

SÍMBOLO SIGNIFICADO (Indica...)


, Secuencia de elementos
? 0 o 1 ocurrencias
* 0 o más ocurrencias
+ 1 o más ocurrencias
que el elemento está vacío.
Empty
Estos elementos NO tienen etiqueta de cierre.
Cualquier contenido es válido.
Any
Yo no recomiendo su uso.
#PCDATA que el contenido de la cadena puede ser una cadena de texto.
Ejs:

<!ELEMENT nombre (#PCDATA)>


<!ELEMENT nombre EMPTY>
<!ELEMENT cliente (nombre,apellidos,nif?,tlf*,direccion+)>

Este último ej. quiere expresar lo siguiente:


El elemento cliente debe contener a nombre y apellidos, puede contener a nif y tlf - a este
incluso más de una vez- y debe contener al menos una vez la dirección del cliente (para
poder enviarle el pedido a casa).

Nota: Luego podemos hacer una redefinición de los subelementos si queremos.

EJ:
<!ELEMENT cliente (nombre,apellidos,nif?,tlf*,direccion+)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellidos(ape1,ape2?)>
.....

Además de esto, tambien podemos indicar que existen varias alternativas; para ello se usa
el símbolo | (relación OR). Ej:

<!ELEMENT apellidos (#PCDATA|(ape1,ape2))>>


<!ELEMENT ape1 (#PCDATA)>
<!ELEMENT ape2 (#PCDATA)>

indica q se puede elejir entre teclear los 2 apellidos juntos o por separado:

 <apellidos> Perez López </apellidos>


 <apellidos> <ape1> Perez </ape1> <ape2> López </ape2> </apellidos>

Declaraciones de listas de atributos

Ya hemos visto como denotar los elementos que puede tener el documento. Pero, ¿qué
pasa con los atributos (si es que tienen) de todos y acada uno de los elementos?

Para definirlos se usan las declaraciones de listas de atributos, cuya sintaxis es la siguiente:

Sintaxis:

Todas las definiciones de atributos empezarán por: <!ATTLIST


Cada atributo está formado por 3 partes:

Nombre
Tipo del atributo
Valor por defecto

Las posibilidades para describir el tipo de un atributo (campo) y el valor por defecto del
mismo las podeis ver en las siguientes tablas:

Tipo del atributo

VALOR SIGNIFICADO
El atributo será una cadena de caracteres.
No todos los caracteres son válidos.
CDATA
Usaremos secciones PCDATA cuando queramos incluir los carácteres
no válidos.
El atributo sirve para identificar al elemento dentro del documento.
ID
Sólo puede haber un atributo de tipo ID por elemento.
Este atributo se empleará para referenciar a otros elementos del
IDREF/S
documento a partir de su ID.
ENTITY/S Contiene nombres de entidades. Ver siguiente apdo.
NMTOKEN/S Contiene una única cadena de texto (ed, una sola palabra).
Aquí especificamos EL conjunto de valores q puede tomar el atributo;
(<<enumerados>>)
esto lo hacemos separandolos con |.
Nota: El valor para los atributos acabados en S (ej. IDEREFS) será una lista de valores
separados por espacios en blanco.

Valores por defecto

VALOR SIGNIFICADO
#REQUIRED Con esto indicamos que es obligatorio darle un valor al atributo.
#IMPLIED Con esto indicamos que es opcional darle un valor al atributo.
Podemos poner un valor (NO lista de valores) opcional directamente;
entonces, si no se le otorga un nuevo valor posteriormente, asumirá el
<<valor>>
dado (ed, es el valor x por defecto).
No es obligatorio darle un valor en el doc.
#FIXED Con esto obligamos a q el atributo tome necesariamente el valor
<<valor>>> especificado en <<valor>>

EJ:
<!ATTLIST cliente
    numcli ID #REQUIRED
    edad ("Menos de 18" | "entre 18 y 65" | "Más de 65") #IMPLIED
>

Al ser numcli de tipo ID indicamos q no puede haber 2 clientes con idéntico numcli.
Edad es un atributo no obligatorio q sólo puede tomar los valores de la lista enumerada.

BIBLIOGRAFIA

http://www.desarrolloweb.com/articulos/449.php

http://www.desarrolloweb.com/articulos/450.php

http://www.desarrolloweb.com/articulos/2228.php

http://www.desarrolloweb.com/articulos/451.php

http://www.desarrolloweb.com/articulos/2263.php

También podría gustarte