Está en la página 1de 15

OOP aplicada

Creacin de un scanner para xml

Estructura de un documento XML


La tecnologa XML busca dar solucin al problema de expresar informacin estructurada de la manera ms abstracta y reutilizable posible. Que la informacin 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 informacin. Ejemplos son un tema musical, que se compone de compases, que estn formados a su vez por notas. Estas partes se llaman elementos, y se las seala mediante etiquetas.

Estructura de un documento XML cont


Una etiqueta consiste en una marca hecha en el documento, que seala una porcin de ste como un elemento. Un pedazo de informacin con un sentido claro y definido. Las etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se est sealando.

Estructura de un documento XML cont


A continuacin se muestra un ejemplo para entender la estructura de un documento XML:

Documentos XML bien formados


Los documentos han de seguir una estructura estrictamente jerrquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente incluida en otra, es decir, las etiquetas deben estar correctamente anidadas. Los elementos con contenido deben estar correctamente cerrados. Los documentos XML slo permiten un elemento raz del que todos los dems sean parte, es decir, solo pueden tener un elemento inicial. Los valores atributos en XML siempre deben estar encerrados entre comillas simples o dobles. El XML es sensible a maysculas y minsculas. Existe un conjunto de caracteres llamados espacios en blanco (espacios, tabuladores, retornos de carro, saltos de lnea) que los procesadores XML tratan de forma diferente en el marcado XML. Es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc. En XML los nombres tienen alguna caracterstica en comn. Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan marcas; son partes del documento que el procesador XML espera entender. El resto del documento entre marcas son los datos entendibles por las personas.

Partes de un documento XML


Prologo Cuerpo Elementos Atributos Entidades predefinidas

Prologo
Aunque no es obligatorio, los documentos XML pueden empezar con unas lneas que describen la versin XML, el tipo de documento y otras cosas. El prlogo de un documento XML contiene: Una declaracin XML. Es la sentencia que declara al documento como un documento XML. Una declaracin de tipo de documento. Enlaza el documento con su DTD (definicin de tipo de documento), o el DTD puede estar incluido en la propia declaracin o ambas cosas al mismo tiempo. Uno o ms comentarios e instrucciones de procesamiento.

Cuerpo
A diferencia del prlogo, el cuerpo no es opcional en un documento XML, el cuerpo debe contener solo un elemento raz, caracterstica indispensable tambin para que el documento est bien formado. Sin embargo es necesaria la adquisicin de datos para su buen funcionamiento.

Cuerpo
Elementos Los elementos XML pueden tener contenido (ms elementos, caracteres o ambos), o bien ser elementos vacos. Atributos Los elementos pueden tener atributos, que son una manera de incorporar caractersticas o propiedades a los elementos de un documento. Deben ir entre comillas. Ejemplo, un elemento estudiante puede tener un atributo Mario y un atributo tipo, con valores come croquetas y talento respectivamente. <Estudiante Mario="come croquetas" tipo="talento">Esto es un da que Mario va paseando</Estudiante>

Estructura XML a reconocer

Componentes del Scanner


Un scanner lee la entrada carcter a carcter, en base al carcter actual y el estado actual del autmata toma la decisin de seguir leyendo o retornar un token o componente lxico. Autmata: grafo dirigido que nos ayuda a analizar la entrada de caracteres Token: componente lxico que deseamos identificar Lexema: cadena de caracteres que conforman un componente lxico.

Tabla de tokens de nuestro scanner


Token MENOR_QUE MAYOR_QUE IGUAL COMILLA_DOBLE DIAGONAL MENOS DIGITO LETRA Codigo 100 101 102 103 104 105 106 107 Patron < > = / - {0|1|2|3|4|5|6|7|8|9} {A|B|C||Z|a|b|c||z}

CADENA NUMERO

108 109

LETRA ( LETRA | DIGITO)* DIGITO+

Automata
Token: MENOR_QUE Lexema:< Token: MAYOR_QUE Lexema:> Token: IGUAL Lexema:=

1 < 0
(A||Z|a||z) (0||9)

2 > = /

Token: COMILLA_DOBLE Lexema:

4
Token: DIAGONAL Lexema:/

-
6
Token: MENOS Lexema:-

(A||Z|a||z)

7
(0||9)

Token: CADENA Lexema:Lexema+car

Token: NUMERO Lexema:Lexema+car

También podría gustarte