Documentos de Académico
Documentos de Profesional
Documentos de Cultura
XML DTD Pedro
XML DTD Pedro
Abril / 2002
Una alternativa que est teniendo xito son los Xschemas. Un Xschema utiliza la sintaxis XML, tiene la misma potencia que los DTD pero adems puede definir tipos de datos.
El lenguaje XML y su aplicacin a la Construccin de Sitios WEB
Universidad Internacional de Andaluca / Sede Antonio Machado de Baeza
Abril / 2002
libro
titulo
texto
Una aplicacin XML necesita que el comienzo y fin de todas las etiquetas y la presencia de elementos vacos sea no ambigua.
El lenguaje XML y su aplicacin a la Construccin de Sitios WEB
Universidad Internacional de Andaluca / Sede Antonio Machado de Baeza
Abril / 2002
Todas las etiquetas deben estar balanceadas. Todos los valores de los atributos deben ir entrecomillados. Un elemento vaco debe terminar con /> o hacerlo no vaco:
<img src=fichero.gif/> <img src=fichero.gif></img>
Si no se usa DTD, los atributos de etiquetas deben ser del tipo #CDATA.
El lenguaje XML y su aplicacin a la Construccin de Sitios WEB
Universidad Internacional de Andaluca / Sede Antonio Machado de Baeza
Abril / 2002
La definicin para ese tipo de documento debe ser accesible para la aplicacin XML: localmente <!DOCTYPE libro SYSTEM libro.dtd> descargndola de la red
El lenguaje XML y su aplicacin a la Construccin de Sitios WEB
Universidad Internacional de Andaluca / Sede Antonio Machado de Baeza
Abril / 2002
ejemplo de las tarjetas ejemplo de los artculos EJERCICIO: un DTD para describir coches. ]>
La declaracin empieza con <!DOCTYPE raiz [ y termina con Las etiquetas (y su contenido) se definen con <!ELEMENT
El lenguaje XML y su aplicacin a la Construccin de Sitios WEB
Universidad Internacional de Andaluca / Sede Antonio Machado de Baeza
Abril / 2002
Ejemplo vlido:
<receta> <titulo>titulo</titulo> <ingredientes>cosas</ingredientes> <procedimiento>pasos</procedimiento> </receta>
Ejemplo no vlido:
<receta> <titulo>titulo</titulo> <ingredientes>cosas</ingredientes> <procedimiento>pasos</procedimiento> <advertencias>texto</advertencias> </receta>
Abril / 2002
EMPTY
Etiquetas que se cierran en la misma apertura. La informacin la tienen en forma de atributos:
<!ELEMENT br EMPTY> <br/>
ANY
La etiqueta puede tener cualquier contenido (texto o cualquier elemento):
<!ELEMENT batiburrillo ANY>
Mixed
La etiqueta puede tener texto u otras etiquetas (segn la especificacin):
<!ELEMENT texto (#PCDATA|parrafo)>
Element
Slo contendr aquellas etiquetas especificadas:
<!ELEMENT mensaje (remite,destinatario,texto)> EJERCICIO: un DTD y XML para describir email
El lenguaje XML y su aplicacin a la Construccin de Sitios WEB
Universidad Internacional de Andaluca / Sede Antonio Machado de Baeza
Abril / 2002
Modelos de Contenido
Son patrones que especifican el orden de definicin de etiquetas.
Declaracin de Atributos
Los atributos aaden informacin adicional a las etiquetas. Comienza con <!ATTLIST, seguido del elemento al que se aplica, el nombre del atributo, el tipo de datos y el valor por defecto.
Tipos de Atributos
ID e IDREF:
asigna un identificador nico que ser referenciado por un atributo de tipo IDREF:
ID
<!ELEMENT enlace (#PCDATA)> <!ATTLIST enlace apuntador IDREF #REQUIRED> <!ELEMENT capitulo (parrafo*)> <!ATTLIST capitulo identificador ID #IMPLIED>
Declaracin de Entidades
Se usan para referenciar a imgenes, pg.webs, ficheros, etc. Se declaran mediante <!ENTITY
http://frontier.userland.com/stories/storyReader$1092 http://www.xml.com/tools/ruwf/check.html
http://www.cogsci.ed.ac.uk/~richard/xml-check.htm
http://www.stg.brown.edu/service/xmlvalid/
El lenguaje XML y su aplicacin a la Construccin de Sitios WEB
Universidad Internacional de Andaluca / Sede Antonio Machado de Baeza
con
con
Abril / 2002
RXP
Disponible para Linux y Windows. Por defecto slo comprueba la sintaxis. Con validacin con la opcin V. Salida con detalles con la opcin v.
rxp s V ejemplo-sin-error.xml rxp s V ejemplo-con-error.xml
EXPAT
Disponible para Linux y Windows.
xmlwf ejemplo-sin-error.xml xmlwf ejemplo-con-error.xml
XERCES
El que usa el proyecto Apache (Cocoon).
$ cd /home/user/xerces-c1_3_0-linux/ $ export LD_LIBRARY_PATH /home/user/xercesc1_3_0-linux/lib/ $ ./bin/SAXPrint bin/SAXPrint ejemplo-sin-error.xml $ ./bin/SAXPrint bin/SAXPrint ejemplo-con-error.xml
sub Text { tr/\n/ /; s/^\s+//; s/\s+$//; return if $_ eq ""; $parabuf=$_; } sub EndTag { my ($expat,$eltype)=@_; if ($eltype eq "esquema") { } elsif ($eltype eq "secc") { --$indlevel; } elsif ($eltype eq "para") { my $ind=' ' x (4*$indlevel); print wrap($ind,$ind,$parabuf),"\n\n" unless $opts{c}; } }