Ejercicio de DTD - Corregir errores de "ciudades.xml"
El siguiente documento XML ("ciudades.xml") está bien formado. Sin embargo, no es válido. Para que lo sea, realizar los cambios necesarios en la DTD interna de dicho documento.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ciudades [
<!ELEMENT ciudades (ciudad)>
<!ELEMENT ciudad (nombre, capital)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT capital EMPTY>
]>
<ciudades>
<ciudad>
<nombre>Buenos Aires</nombre>
<capital/>
</ciudad>
<ciudad>
<nombre>Liverpool</nombre>
</ciudad>
<ciudad>
<nombre>Osaka</nombre>
</ciudad>
<ciudad>
<nombre>Oslo</nombre>
<capital/>
</ciudad>
</ciudades>
Solución:
En este documento se almacena información sobre ciudades.
<!DOCTYPE ciudades [
<!ELEMENT ciudades (ciudad*)>
<!ELEMENT ciudad (nombre, capital?)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT capital EMPTY>
]>
Errores detectados y corregidos en la DTD
- Para que el elemento "ciudad" pueda aparecer más de una vez, hay que utilizar el operador * (asterisco) o + (signo más).
- Por otra parte, para que el elemento "capital" se pueda escribir opcionalmente, esto se tiene que indicar con el operador ? (interrogación).