xml dtd pedro

23
 El lenguaje XML y su aplicación a l a Construcción de Sitios WEB Universidad Internacional de Andalucía / Sede Antonio M achado de Baeza Abril / 2002 DTD Definiciones de Tipo de Documento D. Pedro Ángel Castillo Valdivieso Dpto. de Arquitectura y Tecnología de Computadores Univ. de Granada [email protected]  

Upload: aaron-tonatiuh-noxpanco

Post on 30-Oct-2015

62 views

Category:

Documents


1 download

TRANSCRIPT

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 1/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEB

Universidad Internacional de Andalucía / Sede Antonio M achado de Baeza

Abril / 2002 

DTD

Definiciones de Tipo deDocumento

D. Pedro Ángel Castillo ValdiviesoDpto. de Arquitectura y Tecnología de ComputadoresUniv. de Granada

[email protected] 

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 2/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Los DTD se desarrollaron para ser utilizados con SGML.Son un conjunto de reglas sintácticas para definiretiquetas.Indica cuáles se pueden usar en un documento,aparecer dentro de otras, cuáles tienen atributos, etc.

No siguen la sintaxis XML que conocemos, sino una propia:<?xml encondig=“UTF-8”?> <!ELEMENT listado (elemento)+><!ELEMENT elemento (#PCDATA)>

Una alternativa que está teniendo éxito son los Xschemas.Un Xschema utiliza la sintaxis XML, tiene la misma potencia

que los DTD pero además puede definir tipos de datos.

Definiciones de Tipo de Documento

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 3/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Definiciones de Tipo de Documento

SGML utiliza DTD para describir las etiquetas de undocumento.Los documentos XML podemos utilizarlos con o sin DTD:Un documento sin DTD define las etiquetas por la

existencia y localización de éstas cuando son creadas.<?xml version=“1.0”?> <libro><titulo>...</titulo><texto>......</texto>

</libro>Una aplicación XML necesita que el comienzo y fin de todas

las etiquetas y la presencia de elementos vacíos sea noambigua.

libro

titulo texto

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 4/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Definiciones de Tipo de Documento

Todos los documentos XML deben ser bien formados . Si no se usa DTD, el XML debe comenzar con la

declaración de documento único:<?xml version=“1.0” standalone=“yes”?> 

Todas las etiquetas deben estar balanceadas. Todos los valores de los atributos deben ir

entrecomillados. Un elemento vacío debe terminar con /> o hacerlo no

vacío:<img src=“fichero.gif”/> <img src=“fichero.gif”></img> 

Si no se usa DTD, los atributos de etiquetas deben serdel tipo #CDATA.

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 5/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Definiciones de Tipo de Documento

Los documentos XML válidos tienen un DTD asociado.Deben ser documentos bien formados y comenzar con la

declaración de tipo de documento:<?xml version=“1.0” encoding=“UTF-7”?> 

<!DOCTYPE libro SYSTEM “http://www.host.dom/libro.dtd”> <libro>....</libro> 

La definición para ese tipo de documento debe ser

accesible para la aplicación XML: localmente  <!DOCTYPE libro SYSTEM “libro.dtd”> 

descargándola de la red

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 6/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Definiciones de Tipo de Documento

La DTD puede estar en fichero externo o en el mismo XML: <?xml version=“1.0” encoding=“UTF-7”?> <!DOCTYPE etiqueta [

<!ELEMENT etiqueta (nombre,direccion)><!ELEMENT nombre (#PCDATA)>

<!ELEMENT direccion (#PCDATA)>]><etiqueta><nombre>Julio</nombre><direccion>Jerez de la Frontera</direccion>

</etiqueta> 

La declaración empieza con <!DOCTYPE raiz [ y termina con ]> 

Las etiquetas (y su contenido) se definen con <!ELEMENT

Utilizaremos esta

forma ya que son

ejemplos simples

• ejemplo de las tarjetas

• ejemplo de los artículos

• EJERCICIO: un DTD

para describir coches.

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 7/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Declaraciones de Tipo de Documento

Las etiquetas utilizadas deben ajustarse a las reglas dadas en elDTD para que el XML sea válido.Las declaraciones empiezan por <!ELEMENT seguidas por el

identificador de la etiqueta declarada y la especificación delcontenido: 

<!ELEMENT etiqueta (titulo,ingredientes,procedimiento)><!ELEMENT titulo (#PCDATA)>........

Ejemplo válido: Ejemplo no válido: <receta> <receta>

<titulo>titulo</  titulo> <titulo>titulo </titulo><ingredientes>cosas </ingredientes> <ingredientes>cosas </ingredientes><procedimiento>pasos </procedimiento> <procedimiento>pasos </procedimiento></receta> <advertencias>texto </advertencias>

</receta> 

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 8/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Declaraciones de Tipo de Documento

Tipos de contenido: EMPTY 

Etiquetas que se cierran en la misma apertura. La información latienen en forma de atributos: 

<!ELEMENT br EMPTY><br/> 

 ANY 

La etiqueta puede tener cualquier contenido (texto o cualquier

elemento): <!ELEMENT batiburrillo ANY> 

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 9/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Declaraciones de Tipo de Documento

Tipos de contenido (cont.):

Mixed

La etiqueta puede tener texto u otras etiquetas (según la

especificación): <!ELEMENT texto (#PCDATA|parrafo)> 

Element

Sólo contendrá aquellas etiquetas especificadas: 

<!ELEMENT mensaje (remite,destinatario,texto)>

EJERCICIO: un DTD y

XML para describir email

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 10/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Modelos de Contenido

Son patrones que especifican el orden de definición deetiquetas. Sencillo : uno que tenga texto o un solo tipo de elemento: 

<!ELEMENT aviso (parrafo)><!ELEMENT parrafo (#PCDATA)> 

Secuencia : usando la coma “ ,” se especifica qué etiquetava detrás de otra: 

<!ELEMENT aviso (titulo,parrafo)> 

Opción : usando la “|” se dan las etiquetas que puede

contener otra dada (son opciones excluyentes): <!ELEMENT aviso (parrafo|imagen)> 

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 11/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Modelos de Contenido (cont.)

 Agrupación  usando los paréntesis “()” 

Frecuencia :? Opcional (0 ó 1 vez)

* Opcional (0 ó más veces) <!ELEMENT aviso (titulo?,(parrafo*,grafico)+)>+ necesario y repetible (1 ó más veces)

EJERCICIO: un DTD y

XML para describir artículos

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 12/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Declaración de Atributos

Los atributos añaden información adicional a lasetiquetas.

Comienza con <!ATTLIST, seguido del elemento al quese aplica, el nombre del atributo, el tipo de datos yel valor por defecto.

Opcional con valor por defecto : debe tomar unvalor dado en la lista de opciones, pero si seomite, toma el valor por defecto: 

<!ELEMENT mensaje (de,a,texto)><!ATTLIST mensaje prioridad (normal|urgente) normal> 

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 13/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Declaración de Atributos (cont.) Obligatorio : con #REQUIRED , no toma valor por defecto yaque hay que especificarlo:

<!ELEMENT texto (#PCDATA)><!ATTLIST texto idioma CDATA #REQUIRED> 

Opcional sin valor por defecto : con#IMPLIED

, si no seespecifica no toma un valor por defecto: <!ELEMENT img EMPTY><!ATTLIST img url CDATA #REQUIRED alt CDATA #IMPLIED> 

EJERCICIO: un DTD y

XML para describir mensajes

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 14/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Tipos de Atributos

CDATA: puede contener cualquier carácter: <!ATTLIST mensaje fecha CDATA #REQUIRED><mensaje fecha=“15 de julio de 2000”> 

NMTOKEN : sólo acepta letras, números, puntos,guiones, subrayados y los dos puntos: 

<!ATTLIST mensaje fecha NMTOKEN #REQUIRED><mensaje fecha=“15-7-2000”> 

Enumerados y notaciones : sólo acepta un valor

de entre los dados como opciones: <!ATTLIST mensaje prioridad (normal|urgente) normal> 

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 15/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Tipos de Atributos (cont.) Notaciones : el valor se debe ajustar a unanotación declarada : 

<!NOTATION HTML SYSTEM “http://www.w3.org/Markup”> <!ATTLIST mensaje fecha NOTATION (ISO-DATE|EUROPEAN-DATE)

#REQUIRED> 

ID e IDREF : ID asigna un identificador único queserá referenciado por un atributo de tipo IDREF: 

<!ELEMENT enlace (#PCDATA)><!ATTLIST enlace apuntador IDREF #REQUIRED>

<!ELEMENT capitulo (parrafo*)><!ATTLIST capitulo identificador ID #IMPLIED>

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 16/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Declaración de Entidades

Se usan para referenciar a imágenes, pág.webs, ficheros, etc.Se declaran mediante <!ENTITY 

Entidades internas : abreviaturas de contenido XML que sereemplaza en el documento: 

<!DOCTYPE texto [<!ENTITY alf “Alien Life Form”> ]> <texto>ALF significa: &alf;</texto>

Entidades externas analizadas : son similares, pero obtienenel contenido de un documento, pág.web, etc.:

<! ENTITY ayuda SYSTEM “http://www.servidor.com/ayuda.xml”> 

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 17/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Declaración de Entidades (cont.)

Entidades no analizadas : si el contenido de la entidad es unarchivo binario, el procesador XML no debe intentar interpretarlocomo si fuera texto XML:

<!ENTITY logo SYSTEM “http://www.servidor.com/logo.gif”> 

Entidades parámetro : similares a las internas, pero sereemplazan en el DTD en lugar del documento XML:

<!DOCTYPE texto [<!ENTITY % meta-alf “<!ELEMENT alf (#PCDATA)>”> %meta-alf;

] >

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 18/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Ejemplo de DTD y XML

Definición de un lenguaje de marcado para una BD depersonas.

<?xml version=“1.0”?> 

<!DOCTYPE agenda [<!ELEMENT agenda (persona+)><!ELEMENT persona (nombre,tlf)><!ATTLIST persona id ID #REQUIRED><!ELEMENT nombre (#PCDATA)>

<!ELEMENT tlf (#PCDATA)>]>

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 19/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Ejemplo de DTD y XML (Cont.)

<agenda><persona id=“rick”> 

<nombre>Ricardo</nombre><tlf>952459823</tlf>

</persona><persona id=“pili”> 

<nombre>Pilar</nombre><tlf>957294875</tlf>

</persona></agenda>

EJERCICIO: ampliar este ejemplo para especificar

relaciones de amistad.

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 20/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Elegir un Parser XML

Parsers sin validación o con validación.Las aplicaciones que usemos incluyen sus propios parsers

(MS IExplorer utiliza el parser incluido en MSXML.DLL)Parsers on-line :

http://geneura.ugr.es/~pedro/xml/progs/parserJS/   sinvalidación

http://frontier.userland.com/stories/storyReader$1092  sinvalidación

http://www.xml.com/tools/ruwf/check.html  sin

validaciónhttp://www.cogsci.ed.ac.uk/~richard/xml-check.htm  con

validaciónhttp://www.stg.brown.edu/service/xmlvalid/   con

validación

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 21/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Elegir un Parser XML

Parsers de línea de comandos :RXP 

Disponible para Linux y Windows. Por defecto sólocomprueba la sintaxis. Con validación con la opción – V.

Salida con detalles con la opción –v.rxp –s – V ejemplo-sin-error.xmlrxp –s – V ejemplo-con-error.xml 

EXPAT 

Disponible para Linux y Windows. xmlwf ejemplo-sin-error.xmlxmlwf ejemplo-con-error.xml

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 22/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Elegir un Parser XML

Parsers de línea de comandos (cont.): XERCES 

El que usa el proyecto Apache (Cocoon).

$ cd /home/user/xerces-c1_3_0-linux/$ export LD_LIBRARY_PATH /home/user/xerces-

c1_3_0-linux/lib/

$ ./bin/SAXPrint bin/SAXPrint ejemplo-sin-error.xml$ ./bin/SAXPrint bin/SAXPrint ejemplo-con-error.xml

7/16/2019 XML Dtd Pedro

http://slidepdf.com/reader/full/xml-dtd-pedro 23/23

 

El lenguaje XML y su aplicación a la Construcción de Sitios WEBUniversidad Internacional de Andalucía / Sede Antonio M achado de BaezaAbril / 2002 

Usar Perl para programar un Parser#!/usr/bin/perl -wuse strict;

use XML::Parser ;use Text::Wrap;use Getopt::Std;my ($indlevel,@sectnums,$parabuf,%opts);getopts('c',\%opts);

my $p=new XML::Parser(Style=>'Stream'); 

$p->parsefile($ARGV[0]); 

sub StartTag {my ($expat,$eltype)=@_;

if ($eltype eq "esquema") {$indlevel=-1;$sectnums[0]=0;$parabuf="";

} elsif ($eltype eq "secc") {++$sectnums[++$indlevel];$sectnums[$indlevel+1]=0;print ' ' x (4*$indlevel),join('.',@sectnums[0..$indlevel])," $_{titulo}\n";print "\n" unless $opts{c};

} elsif ($eltype eq "para") {} else {die "invalid element: $eltype";

}}

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};

}}