Continuación DTD
En la clase de hoy hemos continuado con el temario relacionado con el DTD o Document Type Definition. La clase anterior terminó con un ejercicio práctico de validación de un documento en formato XML, utilizando el DTD. Para ello se creaba en Visual Studio Code un archivo en formato XML, con un contenido en el que se producían algunos errores que había que revisar y solucionar, aparte se creaba otro documento en formato DTD para la validación. El error estaba sobre todo en la etiqueta principal de lo que equivale al "body de HTML5" del documento XML, la cual tenia un error en el nombre de esa etiqueta, había que declarar el elemento en el documento DTD, añadiendo una etiqueta del tipo "ELEMENT" con el nombre del documento, etc. "<!ELEMENT Edit_Mensaje (Mensaje)>". Aparte había que solucionar otros dos errores dentro del código XML donde dos etiquetas tenían el mismo nombre a la hora de declararlo en el documento DTD. Había que modificar ligeramente los nombres de dos de ellos para que ya no sean idénticos, tanto en el documento XML como en el de DTD. En este caso era "nombre y mail", los que debían ser modificados por ejemplo como "maild y nombred".
Aparte hemos seguido viendo contenido nuevo de DTD como el "EMPTY" cuando queremos dejarlo como vacío de contenido.
También si queremos utilizar una misma etiqueta, por ejemplo "<Mensaje>" más de una vez (1-n), podemos añadir en el documento de validación DTD un símbolo "+" en la declaración de ese elemento, por ejemplo: "<!ELEMENT Edit_Mensaje (Mensaje+)>". Podemos añadir un símbolo de interrogación "?" en esa misma declaración si queremos remarcar que podría aparecer o no una declaración (0-1). Al igual que con el símbolo asterisco "*" para señalar que una declaración puede no aparecer o varias (0-n). Estos son los operadores de cardinalidades en DTD.
A continuación hemos visto los CDATA, se utiliza cuando el atributo contiene una serie de caracteres sin restricciones, por ejemplo:
"<!DOCTYPE ejemplo [
<!ELEMENT ejemplo EMPTY>
<!ATTLIST ejemplo color CDATA #>REQUIRED>
>"
(Recordatorio: el #REQUIRED indica que es obligatorio o requerido el atributo, en el caso de ser opcional habría que escribir #IMPLIED. En otro caso si se indica como #FIXED "(un número entre las comillas)" significa que el atributo debe contener ese número determinado de contenido).
El NMTOKEN se utiliza cuando se quiere indicar una cadena de caracteres de cualquier tipo (números, letras, puntos, comas, signos como guiones bajos, etc.), pero sin espacios, saldría error si se utilizan espacios.
Existen los de tipo Valores, los cuales se indican en la declaración en el DTD, por ejemplo: "<!ATTLIST Nombre limite (4|5|6) #REQUIRED>". Esto significa que en el documento XML, en esa etiqueta, solo puede contener los valores indicados, en este caso 4, 5 y 6.
Los de tipo ID, indican que solo puede la declaración contener un atributo de valor único o identificador, no pueden ser números.
De tipo IDREF, se utiliza cuando el valor del atributo debe coincidir con el valor del atributo ID de otro elemento. Si con anterioridad se ha declarado otra etiqueta con un atributo de tipo ID, el atributo de la nueva declaración debe ser el mismo nombre que el ID del otro elemento. Si es en plural IDREFS, es lo mismo pero con varios valores separados por espacios en blanco, es decir, la nueva etiqueta debe contener dos ID ya declarados anteriormente.
No hay comentarios:
Publicar un comentario