| Creación de una DTD que valida documentos XML |
| Paso 2: Operativa |
Nota: La síntesis de las palabras clave y la sintaxis de las DTDs la podemos encontrar en Apéndice - Palabras clave y sintaxis de las DTDs
Añadir un par de elementos <coche> al documento coches.xml
Uno de ellos es de la marca Renault y el otro de la marca Skoda
Esta es la ampliación del documento coches.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE coches SYSTEM 'coches.dtd'>
<coches>
<coche>
<marca>Renault</marca>
</coche>
<coche>
<marca>Skoda</marca>
</coche>
</coches> |
Para que un parser pueda validar los cambios que hemos realizado en el documento coches.xml tenemos que modificar el documento coches.dtd teniendo en cuenta la siguiente sintaxis
| <!ELEMENT nombreElemento modeloDeContenido> |
- modeloDeContenido
- se especifica por medio de una combinación de símbolos especiales
- los símbolos describen la relación que hay entre los elementos secundarios
y el elemento contenedor
- (...) paréntesis
- engloba una secuencia o un grupo de elementos secundarios
- elementoA , elementoB
- comas
- separa los elementos de una secuencia y establece el orden de aparición
- elementoA & elementoB
- ampersands
- separa los elementos de una secuencia y no establece el orden de aparición
- elementoA | elementoB
- canalización
- separa los elementos de un grupo de alternativas
- elementoA
- ningún símbolo
- ElementoA debe aparecer una sola vez
- elementoA+
- signo más
- ElementoA debe aparecer una o más veces
- elementoA?
- signo interrogación
- ElementoA debe aparecer cero o una vez
- elementoA*
- signo asterisco
- ElementoA puede aparecer cero o más veces
- -(elementoA)
- signo menos
- ElementoA no debe aparecer
| <!ELEMENT nombreElemento (#PCDATA)> |
- #PCDATA
- se utiliza para indicar que que el elemento contiene datos
de caracteres analizados sintácticamente. Es decir
un parseador interpretará que el simbolo "<" pertenece al principio de una etiqueta
Esta es la ampliación del documento coches.dtd
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT coches (coche+)>
<!ELEMENT coche (marca)>
<!ELEMENT marca (#PCDATA)> |