You are on page 1of 41

ETIQUETAS, ATRIBUTO, COMENTARIO,ELEMENTO

En XML, las etiquetas se disean para describir claramente los datos que contienen. Si alguien le pregunta qu significan todas esas etiquetas, puede contestar que significan lo que usted necesita que signifiquen.
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 en XML tienen el siguiente formato: <!--- Esto es un comentario ---> <!-- Otro comentario -->

Los elementos son la base de las marcas XML, y deben ajustarse a un tipo de documento declarado en una DTD (definicin de tipo de documento) para que el documento XML sea considerado vlido. Las declaraciones de tipo de elemento deben empezar con: "<!ELEMENT" seguidas por el identificador genrico del elemento que se declara. A continuacin tienen una especificacin de contenido.

Por ejemplo: <!ELEMENT receta (titulo, ingredientes, procedimiento)> En este ejemplo, el elemento <receta> puede contener dentro elementos <titulo>, <ingredientes> y <procedimiento>, que, a su vez, estarn definidos tambin en la DTD (definicin de tipo de documento) y podrn contener ms elementos.
Siguiendo la definicin de elemento anterior, este ejemplo de documento XML sera vlido: <receta> <titulo>...</titulo> <procedimiento>...</procedimiento> </receta> <ingredientes>...</ingredientes>

Pero no este: <receta> <parrafo>Esto es un prrafo</parrafo> <titulo>...</titulo> <ingredientes>...</ingredientes> <procedimiento>...</procedimiento> </receta>

Ejemplo de un archivo XML: <?xml version="1.0" encoding="UTF-8" ?> <!-- Aqu va el tipo de documento --> <!DOCTYPE Edit_Mensaje SYSTEM "Edit_Mensaje.dtd"> <!-- Construccion del DTD que especifica os elementos contenidos en este documento--> <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 cdigo 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)>

Reglas Sintcticas XML:


-Elemento y contenido.

- Siempre comienzan con una <etiqueta>. - Siempre termina con una </etiqueta> del mismo nombre. - Elemento vacio <etiqueta/>. - Es case-sensitive, es decir <autor> no es igual a <Autor>. - No se permiten espacios en blanco ni saltos de lnea en el nombre.

- Atributo:

-Como escribir los atributos?. -Los atributos son un par de: nombre_atributo=valor atributo - Los valores de los atributos siempre deben estar entre comillas simples () o dobles (). - Un elemento puede llevar uno o mas atributos. -Se expresan en la etiqueta inicial del elemento, ejemplo: <MENSAJE: prioridad= mxima>. -Si existen varios pueden expresarse en cualquier orden. - Cuando un dato es atributo o elemento?.

Cuando el valor sea unico. Cuando sea necesario especificar alguna propiedad del elemento.

-Como debo escribir los nombres de atributos y elementos? - Empezar por una letra. - Continuar con letras, dgitos, guiones, rayas, puntos o dos puntos. - No se permiten espacios en blanco. - No usar la palabra XML como comienzo de un nombre.
- Como debo escribir el contenido de la informacin?: - No usar entidades predefinidas. - Usar el conjunto de caracteres segn la codificacin especificada (encoding). - Si deben usarse entidades predefinidas identificar como CDATA.

- Entidades predefinidas: XML 1.0 define 5 entidades de caracteres especiales: < &lt; >&gt; & &amp; <temperatura> &lt; 0</temperatura> &apos; &quot;
- Comentarios: a modo informativo para el programador, son ignorados por XML. El formato es: <!- - se entiende? - ->.

Seccin CDATA (Character Data)


- Comienza con <![CDATA[ y termina con ]]> - Puede contener cualquier carcter incluso entidades predefinidas sin codificar, excepto la cadena de cierre ]]>. - Uso insertar HTML o Javascript - Ejemplos: <temperatura>&lt; 0</temperatura> <temperatura><![CDATA[<0]]></temperatura>

- Estructura:

Como escribir el prologo?


- El prologo es opcional. - La primera lnea debe comenzar con <?xml y terminar con ?>. - La primera lnea especifica la versin y la codificacin de caracteres del documento: - UTF-8 (por defecto) de 7 bits. - ISO-8859-1 de 8 bits (caracteres no estndar ASCII). - La primer lnea tambin si es del tipo standalone. - Yes => el documento no necesita ningn otro (p.e. DTD). - No (por defecto) => El documento requiere algn otro. - La segunda lnea especifica documentos asociados (DTD, Schema, XSL). - Ejemplo de declaraciones XML: - <?xml version=1.0?> - <?xml version=1.0 encoding= ISO-8859-7?> - <?xml version=1.0 encoding= UTF-16 standalone=yes?> - <?xml version=1.0 encoding= UTF-16 standalone=no?> <!DOCTYPE clima SYSTEM clima.dtd> - <?xml version=1.0?> <?xml:stylesheet type=text/xsl href=prueba.xls?>

ESTRUCTUR A:

El cuerpo de un archivo XML tiene una estructura jerrquica: - Estructura de rbol correctamente anidados. - No se pueden sper poner elementos. - Debe haber un elemento raz por documento XML. - Todas las etiquetas deben cerrarse.

Ejemplos:
- Incorrectamente anidado: <libro> <autor>Deepak Chopra <titulo>El sendero del mago</autor></libro></titulo> - Correctamente anidado: <libro> <autor>Deepak Chopra</autor> <titulo>El sendero del mago</titulo> </libro> Estructura Jerrquica de rbol:

Comprobacin de XML bien formado: - Uso un analizador sintctico: Por ejemplo: - Internet Explorer - Aplicacin para editar XML (p.e. XML Spy). - Analizadores en lnea (w3c) - XML Copy Editor.

- Otro ejemplo:

Nombres de espacios en xml

Espacios de Nombres XML NameSpaces permite especificar espacios de nombres para evitar colisiones de identificadores.

<establecimiento> <nombre>Pizzera Al Capone</nombre> <direccin>C/ Gnova N 3,Oviedo, Espaa</direccin > <telfono>985203040 </telfono> </establecimiento

<persona> <nombre>Vito Corleone</nombre> <telfono>985223344 </telfono> <dni> 98765432 </dni> </persona>

y si queremos aadir informacin del dueo?


<establecimiento> <nombre>Pizzera Al Capone</nombre> <direccion>C/ Gnova N 3,Oviedo, Espaa</direccion > <telfono>985203040 </telfono> <dueo> <persona> <nombre>Vi to Corleone</nombre> <telfono>985223344 </telfono> <dni> 98765432 </dni> </persona> </dueo> </establecimiento

<nombre> se refiere a persona o a establecimiento?

Un alias se crea asignando un nombre a una URL.

* El mbito del alias abarca al nodo y a sus hijos


Espacio por defecto (no se pone alias)

<alias:etiqueta xmlns:alias=direccion URL> <alias:subetiquetas / > </alias:etiqueta <etiqueta xmlns=direccion URL> <subetiquetas / > </etiqueta>

<establecimiento xmlns= establecimiento. d t d xmlns :p=persona.d t d> <nombre>Pizzera Al Capone</nombre> <direccion>C/ Gnova N 3,Oviedo, Espaa</direccion > <telfono>985203040 </telfono> <dueo> <p:persona> <p:nombre>Vi to Corleone</p:nombre> <p:telfono>985223344 </p:telfono> <p:dni> 98765432</p:dni> </p:persona> </dueo> </establecimiento>

Introduccin a XML

Definition Type Document (DTD)

Es preciso especificar los elementos vlidos que pueden ser incluidos en un documento XML. Las dos formas ms comunes de especificar definiciones son:

DTD XML Schema Describen la estructura del documento XML. Declara y define todos los tipos de de elementos del documento. Define el orden de los tipos de elementos. Especifica el tipo de atributos y los valores por defecto.

Son documentos basados en XML que:


Importancia a la hora de transferir datos entre sistemas. El DTD/XML Schema especifica a los sistemas la estructura de datos que es transferida mediante XML.

En este ejemplo, gracias a DTD, se especifica que una libreta de direcciones se compone de personas (registros), definiendo los campos vlidos de cada registro

DTD: introduccin

Nos permite definir los tipos de elementos vlidos de un documento XML. Semejante a una sentencia CREATE DATABASE en SQL. Nos sirve para validar el documento XML. Hay que examinar la adecuacin de un documento XML en dos niveles:
Cuando el documento cumple con la DTD se dice que es

vlido. Cuando cumple con las reglas XML diremos que est bien formado.

Tipos de DTD:
Internas: situadas dentro del documento XML Externas: archivo independiente

Las DTD no siguen la sintaxis de XML

DTD: DOCTYPE

Tanto las DTD internas como las externas deben empezar por una declaracin DOCTYPE:
<!DOCTYPE root SYSTEM externalDTD [internalDTD]>
Root: elemento raz del documento XML. externalDTD: la DTD es externa. Debe sealar el archivo entre

comillas dobles y tener la extensin .dtd

Ejemplo:
<!DOCTYPE libreria SYSTEM librera.dtd>

internalDTD: por defecto, interna. Ejemplo:


<!DOCTYPE libreria [ <!ELEMENT libro (#PCDATA)> ]>

El elemento raz sealado en DOCTYPE debe coincidir con el nodo raz del documento. La DTD debe contener todos los elementos, atributos y entidades que se utilizarn en el documento XML

DTD: Ejemplo
libreria2.dtd

libreria2.xml

DTD: Elementos

Un ELEMENT es un componente, un item, que define un dato. No confundirlo con atributos, entidades o relaciones del diseo de una base de datos, ya que puede ser cualquiera de las tres cosas. Un elemento es como una etiqueta de un documento HTML. Sintaxis:
<!ELEMENT nombre tipo> Tipo, puede ser:

EMPTY: no incluye ningn otro elemento ni texto, pero si permiten la inclusin de atributos. Elementos: los elementos contenidos. Smbolos:

Asterisco (*): el elemento puede aparecer cualquier nmero de veces. Coma (,): separador de elementos, que adems especifica el orden de aparicin de los elementos. Interrogante (?): El elemento aparece una o ninguna vez. Ms (+): el elemento debe aparecer al menos una vez. Parntesis: contienen la secuencia de elementos. Sin signo: el elemento aparece slo una vez. Tubera (|): separa elementos alternativos

Mixtos: permiten combinacin de elementos y texto, se especifican: <!ELEMENT nombre (#PCDATA)> (parsed character data ) ANY: cualquiera de los anteriores: <!ELEMENT nombre ANY>

DTD: Ejemplo de la librera

Supongamos que queremos definir la estructura de una biblioteca donde los libros pueden tener varios autores y donde algunos libros tienen una rebaja del precio. DTD:
<!ELEMENT libreria3 ( libro+ ) > <!ELEMENT libro ( autor*, titulo, precio,rebaja? ) > <!ELEMENT autor ( #PCDATA ) > <!ELEMENT titulo ( #PCDATA ) > <!ELEMENT precio ( #PCDATA ) > <!ELEMENT rebaja ( #PCDATA ) >

Esta definicin permite el siguiente documento XML:


<libro> <autor>Miguel De Cervantes</autor> <titulo>El Quijote</titulo> <precio>18</precio> </libro> <libro> <autor>Antonio Lopez</autor> <autor>Ana Perez</autor> <titulo>Cmo crecer</titulo> <precio>25</precio> <rebaja>10%</rebaja> </libro>

DTD: Atributos

Explicaremos algunas caractersticas de los atributos de forma muy resumida. La sintaxis de los atributos es:
<!ATTLIST nombre_elemento nombre_atributo_1 tipo valor nombre_atributo_n tipo valor> El tipo puede ser CDATA (cadena), ENUMERATION (lista de valores, ID (identificador nico), etc El valor puede ser #REQUIRED (obligatorio), #IMPLIED (opcional), etc.

Ejemplo de DTD:
<!ELEMENT ordenador (#PCDATA) > <!ATTLIST ordenador cpu CDATA #REQUIRED mhz CDATA #IMPLIED >

Ejemplo de XML:
<ordenador cpu=PentiumIII/> <ordenador cpu=PentiumIII mhz=300/>

DTD: Ejemplo de la librera


Vamos a ampliar el ejemplo de la librera. Un libro puede tener un resumen, este elemento tiene como atributos el autor del resumen y el archivo donde se guarda:
<?xml version="1.0" encoding="UTF-8" ?> <!ELEMENT libreria3 ( libro+ ) > <!ELEMENT libro (autor*, titulo, precio,rebaja?,resumen?)> <!ELEMENT autor ( #PCDATA ) > <!ELEMENT titulo ( #PCDATA ) > <!ELEMENT precio ( #PCDATA ) > <!ELEMENT rebaja ( #PCDATA ) > <!ELEMENT resumen (#PCDATA ) > <!ATTLIST resumen autor CDATA #IMPLIED archivo CDATA #REQUIRED > <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE libreria3 SYSTEM "libreria3.dtd"> <libreria3> <libro> <autor>Miguel De Cervantes</autor> <titulo>El Quijote</titulo> <precio>18</precio> </libro> <libro> <autor>Antonio Lopez</autor> <autor>Ana Perez</autor> <titulo>Cmo crecer</titulo> <precio>25</precio> <rebaja>10%</rebaja> <resumen archivo="ert34.doc" /> </libro> </libreria3>

Documentos invlidos, vlidos y bien formados


Documentos invlidos no siguen las reglas de sintaxis definidas por la especificacin XML. Si un desarrollador tiene reglas definidas de lo que ese documento puede contener en una DTD o Esquema, y el documento no las sigue, ese documento es invlido.

Documentos vlidos siguen tanto las reglas de sintaxis XML como las reglas definidas en su propio DTD o Esquema.

Documento bien formado sigue las reglas de sintaxis XML, pero no tiene un Esquema o DTD.

Es una declarativa , XML basado en el lenguaje utilizado para la transformacin de documentos XML.

El documento original no se cambia; Ms bien, un nuevo documento se crea basndose en el contenido de uno ya existente. El nuevo documento puede ser serializada (salida) del transformador en la sintaxis estndar de XML o en otro formato, como HTML o texto plano

XSLT es el ms usado para convertir datos entre diferentes esquemas XML o para convertir datos XML en pginas web o PDF de los documentos.

Las aplicaciones suelen usar XSLT para convertir datos XML en HTML o XHTML para la visualizacin de documentos como una pgina web .

La transformacin puede ocurrir de forma dinmica ya sea en un cliente o en un servidor, o puede ser hecho como parte del proceso de publicacin.

DOM
El analizador DOM implementa el API DOM y crea un rbol DOM en la memoria de un documento XML. La mayora de los navegadores tienen incorporado un analizador de XML para leer y manipular XML. El analizador convierte en un objeto XML JavaScript accesible (XML DOM).

El DOM XML contiene mtodos (funciones) para recorrer los rboles XML, acceso, insertar y eliminar nodos. Sin embargo, antes de que un documento XML puede ser accedido y manipulado, se debe cargar en un objeto XML DOM.

Un analizador de XML lee, y lo convierte en un objeto XML DOM que se puede acceder con JavaScript. La mayora de los navegadores tienen un analizador integrado en XML.

XML Spy
XML Spy puede definirse como un editor XML de propsito general. Con esta aplicacin podemos crear y editar distintos tipos de documentos. XML Spy tambin ofrece funciones especializadas para la creacin de esquemas XML, hojas de estilo XSLT, etc.

Una de las principales funciones de XML Spy es servir como editor de documentos XML. XML Spy es capaz de reconocer el contexto en el que estamos situados, y slo nos permitir aadir en una posicin determinada los elementos vlidos en dicha posicin, segn las reglas especificadas en el esquema vinculado al documento.

dom4j biblioteca de cdigo abierto para trabajar con XML, XPath y XSLT en la plataforma Java xstream Xstream es una biblioteca sencilla para serializar objetos a XML y viceversa. VTD-XML rpido, el procesador XML eficiente de la memoria Joost Puesta en marcha de Streaming transformaciones para XML que se acumula en la parte superior de SAX.

SimpleXML manera muy sencilla de manejar XML. XMLBeans acceso a XML mediante la unin a los tipos Java. StAX Streaming API para la implementacin XML de la especificacin JSR-173 JDOM una implementacin de Java DOM

Castor Una solucin fiable XML vinculantes, con las herramientas para generar objetos a partir de esquemas, al igual que JAXB. Spring OXM Proporciona objetos - admite la asignacin XML. Apache Digester Ofrece una configuracin de un mdulo de mapeo objeto-XML para la lecturay el uso de configuraciones XML. WAX escritura de la API para XML. Al igual que en SAX, excepto que permite escribir de nuevo a XML.

You might also like