Javadabbadoo.org - Tu comunidad Java parlante XML
Inicio | Cursos infosintesis.net liberados | Java SE Avanzado | Creación de una DTD que valida documentos XML
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

Entidades paramétricas externas

Antes de modificar los códigos de los documentos coches.xml y coches.dtd vamos ha hacer una copia para mantener intacto todo lo que hemos hecho hasta ahora en los documentos coches_2.xml y coches_2.dtd

Ahora vamos a modificar el documentos coches.dtd para que pueda realizar una llamada a una entidad paramétrica externa.

Para añadir estas entidades paramétricas internas en el documento coches.dtd tenemos que definirlas con la siguiente sintaxis

<!ENTITY % nombreEntidad SYSTEM URI>

y tenemos que referenciarlas de la siguiente forma

%nombreEntidad;

Ahora vamos a crear una entidad paramétrica externa. Nos situamos en la ventana Projects y con el botón derecho del ratón seleccionamos el proyecto proxml y elegimos new | Other...

En el cuadro de diálogo New File seleccionamos XML | XML Parsed Entity y hacemos clic sobre el botón Next.

en el cuadro de diálogo New XML Parsed Entity rellenamos el campo de texto File Name: con el nombre de la entidad paramétrica externa. En este caso fechainiciofin. Como podemos observar en el campo de texto Created File: vemos que el Asistente de NetBeans ha añadido la extentesión del fichero con el sufijo .ent. Seguidamente hacemos clic sobre el botón Finish.

Ahora vamos a implementar el documento fechainiciofin.ent teniendo en cuenta los siguientes cambios que vamos a realizar al documento coches.dtd

<?xml version="1.0" encoding="UTF-8"?>

<!ENTITY % ... SYSTEM "....">
<!ELEMENT coches (coche+)>
<!ELEMENT coche (marca, modelo, motor, precio, oferta*)>
<!ELEMENT marca (#PCDATA)>
<!ELEMENT modelo (#PCDATA)>
<!ATTLIST modelo categoria (monovolumen | berlina | deportivo | lujo | otro) #REQUIRED>
<!ELEMENT motor (cilindrada)>
<!ATTLIST motor tipo (gasolina | diesel) "gasolina">
<!ELEMENT cilindrada (#PCDATA)>
<!ATTLIST cilindrada unidad CDATA #FIXED "cc">
<!ELEMENT precio (#PCDATA)>
<!ATTLIST precio moneda (dolares_americanos | euros | libras_esterlinas) #REQUIRED>
<!ELEMENT oferta (descripcion, fechaInicio, fechaFin)>
<!ELEMENT descripcion (#PCDATA)>
%fechaInicioFin;


Compara tu código con la solución propuesta

Página anterior
Ignasi Pérez Valls
Infosintesis Solutions Group


Marzo 2009
Dudas y comentarios: Foro [2-05] XML - DTD
 
 
 
 
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...