Professional Documents
Culture Documents
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>
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>
<?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)>
- 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: < < >> & & <temperatura> < 0</temperatura> ' "
- Comentarios: a modo informativo para el programador, son ignorados por XML. El formato es: <!- - se entiende? - ->.
- Estructura:
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:
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
<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
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.
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
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
Ejemplo:
<!DOCTYPE libreria SYSTEM librera.dtd>
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>
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 ) >
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/>
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.