Universidad de Costa Rica
|
|
<P align=" center "></P> <BLOCKQUOTE> <TABLE> <TR> <TD> <PRE>Contenedor primero <BOOOM /> </PRE> </TD> </TR> <TR> <TD> <PRE> Cambios y pruebas </PRE> </TD> </TR> </TABLE> </BLOCKQUOTE> |
<P align=" center "></P> <BLOCK_QUOTE> <TABLE> <TR> <TD> <PRE>Contenedor primero <BOOOM /> </PRE> </TD> </TR> <TR> <TD> <PRE> Cambios y pruebas </PRE> </TD> </TR> <TABLE> </BLOCKQUOTE> |
XML es estándard
internacional para el intercambio de datos entre aplicaciones. Los
documentos XML contienen etiquetas que abren y cierran un bloque de
datos, con la ventaja de que también pueden estar anidadas. La
etiquetas se encierran entre paréntesis angulares, y la
etiqueta que cierra un bloque de datos tiene el mismo nombre que la
que lo abre, con la diferencia de incluye el caracter
"/
". En la Figura, el documento XML de
la izquierda está bien formado, mientras que el de la derecha
no, pues en el de la derecha la etiqueta
<TABLE>
está mal cerrada
porque no aparece el caracter "/
", no existe la etiqueta
de cierre para <BLOCK_QUOTE>
y
sobra al etiqueta de cierre
</BLOCKQUOTE>
. Si no hace falta
usar un bloque de etiquetas se puede poner el caracter
"/
" al final de la etiqueta, como en el caso de
<BOOOM />
. El valor de los
datos del documento, representado en este ejemplo por las hileras
"Contenedor primero
" y "Cambios y prueba"
,
no pueden contener los caracteres
"<
",
">
" o
"&
".
Su trabajo consiste en hacer un programa que lea un archivo XML y que identifique cada uno de los componentes XML del documento. Por ejemplo, para el documento XML que se muestra en el cuadro, su programa debe identificar éstos componentes XML (tokens):
|
|
|
No es difícil ver que las etiquetas son las palabras que aparecen entre paréntesis angulares, y que los valores son las hileras que aparecen entre comillas después de una etiqueta.
Su programa puede ser generado automáticamente usando un
programa generador de analizadores sintácticos, como por
ejemplo Lex o Flex, los que son parte del generador de compiladores
Bison/Yacc disponible en de la organización
GNU en este sitio Internet:
http://www.fg-soup.com/files/bfwizard-1.6.zip
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
|
Adolfo Di Mare <adolfo@di-mare.com>.
|