Bueno, aquí empezamos con la tercera parte del curso de XML, lo primero que veremos son los comentarios.
Comentarios
Los comentarios en XML son así:
<--!--- Codigo yo que se que --->
Y es más o menos así, así se comentan los archivos, no hay mucho más que comentar
CDATA
¿Que es el CDATA?, el CDATA es un termino heredado de SGML que fue una de las inspiraciones para la creacion de XML en la practica es algo que se usa para que cuando introduzcamos por ejemplo código en lenguajes de programación el parser pase de él, pero si hacemos algo para mostrar el contenido por pantalla se seguirá viendo ahí como un texto por eso, para el uso de caracteres reservados o la propia palabra XML que también está reservada podemos usar el CDATA, esto es bueno para curarnos en salud cuando tenemos algo muy grande lleno de palabras reservadas, ejemplo de uso de CDATA, ademas tu si pones un contenido que no este bien formado en una seccion CDATA este no falla. En esencia CDATA nos permite introducir caracteres sin que se interpreten como marcado XML lo cual puede ser conveniente en ciertas situaciones como las especificadas previamente
<![CDATA Esto es un texto en XML que indica la siguiente web https://foro.linuxchad.org]]>
Esto en XML no se podría poner por dos motivos por que la palabra XML está reservada y la barra se usa para definir una etiqueta de cierre, pero entre el CDATA podemos ponerlo, el parser lo ignora, pero si hacemos algo que se muestre por pantalla se muestra, el CDATA tambien puede ser usado para meter codigo HTML
Ejercicios
Informacion la solucion de los ejercicios es que recomendable que sea puesta en los comentarios usando el borron de spoiler o usando la funcion de ocultar detalles siendo esta segunda más recomendable y se revisara a posteriori yo pondre aqui con la ocultacion de detalles una solucion pero no vayais a esa a menos que sea imprescindible
- Corrige el siguiente documento Xml
<?xml version="1.2" encoding="ISO-8859-7"?>
<lista_hoteles formato_archivo=XML>
<hotel>
<nombre>漢</nombre>
<direccion>
<calle>Princesa
<numero>4></numero>
</direccion>
</calle>
<habitaciones>
<individuales>"4"</individuales>
<_dobles>'2'<doble>
<suites>1&</suites>
</habitaiones>
</hotel>
<Lista hoteles>
La solucion esta aqui abajo:
Solucion ejercico 1
En primer punto la versión esta mal ya que no existe una versión 1.2 de XML, además de todo eso el encoding tambien esta mal porque estamos usando una codificación para letras griegas y ahí tenemos un kanji no lo soporta y va da error, además en el atributo raíz tenemos un atributo sin comillas que aún por encima usa una palabra reservada, además tengo la etiqueta calle esta dentro de direccion, pero la etiqueta calle se cierra después de dirección, en las habitaciones hay caracteres reservados que no tienen la adecuada sustitución, además la etiqueta habitaciones no está bien cerrada, ya que el cierre está como habitaciones y bueno luego el cierre del elemento raíz tiene una letra en mayúsculas y espacio ya no es el mismo nombre, por tanto, la solución sería la siguiente, tambien hay un caracter inadecuado en el numero de la calle, bueno el parser me lo acepta como valido sin especificar encoding y version asi que la codificacion por defecto UTF-8 o UTF-16 debe ser valida
<lista_hoteles formato_archivo="documento">
<hotel>
<nombre>漢</nombre>
<direccion>
<calle>Princesa</calle>
<numero>4></numero>
</direccion>
<habitaciones>
<individuales>"4"</individuales>
<_dobles>'2'</_dobles>
<suites>1&</suites>
</habitaciones>
</hotel>
</lista_hoteles>
Algo que se puede ver aquí arriba es que se pueden usar caracteres o palabras prohibidas como atributos, por eso ese XML con comillas no está mal pero sin comillas en cualquier otro sitio si obviamente
- Crea un documento XML para la lista de participantes en un foro online, especificando el nombre del foro para distinguir de otras listas (hipotéticas) solo los participantes con sus nombres de usuario, algunos títulos, un identificador único y una ligera descripción y además el tiempo de registro.
Los datos te los puedes inventar siempre que cumplas los criterios,
Aquí abajo mi propuesta para solucionar este segundo ejercicio
Solucion ejercicio 2
<listas_part_foros>
<participantes_foro nombre_foro="Foro LinuxChad">
<participante id="0A">
<nombre>Mester</nombre>
<titulos>Profesor</titulos>
<descripcion>Algo otaku y fan de la tecnologia</descripcion>
</participante>
<participante id="0B">
<nombre>5ombr4</nombre>
<titulos>Profesor</titulos>
<descripcion>Último capítulo de mi curso de Python</descripcion>
</participante>
</participantes_foro>
</listas_part_foros>
Bien ahora expliquemos un poco esta solucion, en primer lugar el identificador lo puse asi porque si en este ejemplo @Chad por ejemplo ya que usamos su foro para el ejemplo, quisiera ver la lista de usuarios a lo mejor no quiere ver el ID unico que nos asigna el programa así que podemos asignarlo como atributo, luego cuando el programa queramos que el programa nos filtre internamente por ejemplo en nuestros posts en vez de asignar el nombre de usuario se asignaria el ID interno que no se necesitaria ver solo tendria que estar ligado al participante, el motivo por el cual he usado participante sin añadir nada más es porque a la hora de automatizarlo funcionaria mejor, ya que si no habria que programar que se añadieran los numeros manualmente en el sistema que usemos para hacer este tipo de XML y sería más engorroso, para un programa que use esto y lo lea, un participante es un participante lo unico que cambia son los datos que contiene en su interior.
Bueno esto ha sido todo por hoy en el curso de XML, en la proxima parte explicaremos como definir el lenguaje en el que estara el contenido de una etiqueta, y recuerdo yo tambien estoy aprendiendo asi que si me equivoco en algo que me lo digan