Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. DTD DTD es un estndar que nos permite definir una gramtica que deben cumplir nuestros documentos XML para considerarlos vlidos. Una definicin DTD para n documentos XML especifica: Qu elementos pueden existir en un documento XML, Qu atributos pueden tener stos, Qu elementos pueden o deben aparecer contenidos en otros elementos y en qu orden. < !ml version"#$.%# & <Receta> <Nombre>Tortilla de patatas</Nombre> <Descripcin> La tradicional ' t(pica tortilla de patatas, tal como la )acen todas las madres. </Descripcin> <Ingredientes> <*n+rediente& <,antidad unidad"#pie-a#&.</,antidad& <*tem&0atata</*tem& </*n+rediente& <*n+rediente& <,antidad unidad"#pie-a#&1</,antidad& <*tem&2uevos</*tem& </*n+rediente& <*n+rediente& <,antidad unidad"#litro#&%.$</,antidad& <*tem&3ceite</*tem& </*n+rediente& </Ingredientes> <Instrucciones> <0aso& 0elar ' cortar la patata en roda4as </0aso& <0aso& 0oner aceite en una paella </0aso& <566 7 as( se+uimos... 66& </Instrucciones> </Receta> 8eamos un posible DTD para la receta del e4emplo que nos definir la forma que deben tener las recetas escritas en 9ecetaXML: <!-- DTD de ejemplo para RecetaXML --> <!ELEMENT Receta (Nombre, Descripcion?, n!redientes?, nstr"cciones?#> <!ELEMENT Nombre ($%&D'T'#> <!ELEMENT Descripcion ($%&D'T'#> <!ELEMENT n!redientes ( n!rediente(#>
<!ELEMENT n!rediente (&antidad, tem#> <!ELEMENT &antidad ($%&D'T'#> <!'TTL )T &antidad "nidad &D'T' $RE*+ RED> <!ELEMENT tem ($%&D'T'#> <!'TTL )T tem opcional &D'T' ,-. /e!etariano &D'T' ,si.> <!ELEMENT nstr"cciones (%aso0#> <!ELEMENT %aso ($%&D'T'#> De este documento DTD podemos inferir una descripcin de las re+las de valide- que sea un poco ms le+ible: Una receta consta de un nombre :obli+atorio;, una descripcin :opcional;, unos in+redientes :opcionales; ' unas instrucciones :opcionales;. <l nombre ' la descripcin pueden contener caracteres alfanum=ricos :0,D3T3 corresponde a Parsed Character Data;. Los in+redientes son una lista de elementos ingrediente. Un in+rediente consta de un (tem ' la cantidad. La cantidad es un valor alfanum=rico, teniendo la etiqueta un atributo, unidad que nos describe qu= unidad de medida estamos utili-ando. Un (tem de la receta consta del nombre :un valor alfanum=rico; ' puede tener dos atributos: opcional :si el in+rediente es o no obli+atorio; ' ve+etariano :si el in+rediente es apto para ve+etarianos;. Las instrucciones de elaboracin son una lista de pasos. Un paso consta de un te!to alfanum=rico descriptivo del paso.
2 !"structura de un D#D
<l dtd puede aparecer inte+rado en el propio documento XML, en un arc)ivo independiente:con e!tensin dtd; e incluso puede tener una parte interna ' otra e!terna.La opcin del documento e!terno permitir reutili-ar el mismo DTD para distintos documentos XML, facilitando las posibles modificaciones . >iempre que se quiera declarar un DTD se )ar al comien-o del documento XML. Las re+las que lo constitu'en son las que podrn aparecer a continuacin de la declaracin : dentro del propio documento XML; o en un arc)ivo independiente. Declaracin del DTD: <$D%&#'("> <s la instruccin donde se indica qu= DTD validar el XML. 3parece al comien-o del documento XML. "l primer dato que aparece es el nombre del elemento raz del documento XML. <n funcin del tipo de DTD la sinta!is var(a. Las caracter(sticas que definen el tipo son: Ubicacin :donde se locali-an las re+las del DTD *nterno: las re+las aparecen en el propio documento XML <!terno: las re+las aparecen en un arc)ivo independiente. Mi!to: me-cla de los anteriores. Las re+las aparecen en ambos lu+ares .Las re+las internas tienen prioridad sobre las e!ternas. ,arcter. >i es un DTD para uso privado o p?blico 0ara uso privado: se identifica con la palabra >7>T<M
0ara uso p?blico: >e identifica con la palabra 0U@L*,. Debe ir acompaAado del B0*:Bormal public *dentifier:*dentificador 0?blico Bormal;,una etiqueta que identifica al DTD de manera CuniversalD.
>inta!is
<5DE,T70< <5DE,T70< <5DE,T70< <5DE,T70< <5DE,T70< elementoFrai- :re+las;& elementoFrai- >7>T<M U9L& elementoFrai- >7>T<M U9L :re+las;& elementoFrai- 0U@L*, B0* U9L & elementoFrai- 0U@L*, B0* U9L :re+las;&
Tipo de DTD *nterno :lue+o privado; <!terno ' privado Mi!to ' privado <!terno ' public Mi!to ' p?blico
La combinacin interno ' public no tiene sentido, 'a que el )ec)o de ser public fuer-a que el DTD est= en un documento independiente. )tributos Gombre del elemento ra(- del documento XML: aparece 4usto a continuacin de la palabra DE,T70<. Declaracin de privacidad/publicidad: aparece a continuacin del nombre del elemento ra(- e indica si el DTD es de uso p?blico:0U@L*,; o de uso interno de la or+ani-acin que lo desarrolla:>7>T<M; *dentificador: slo e!iste cuando el dtd es public e indica el fpi por el que se conoce el DTD Url :solo e!iste cuando el DTD : en parte o en su totalidad; se encuentra declarado en un arc)ivo e!terno ,del que da su ubicacin .:0uede darse el caso que un DTD est= definido en parte en un arc)ivo e!terno ' en parte en el documento XML; "structura del *(I <st compuesto de H campos separados por el carcter //. Primer campo: norma formal o no formal >i el DTD no )a sido aprobado por una norma formal, como por e4emplo, un DTD escrito por uno mismo, se escribe un si+no menos :6; >i )a sido aprobado por un or+anismo no oficial, se escribe un si+no ms :I; >i )a sido aprobado por un or+anismo oficial, se escribe directamente una referencia al estndar. Segundo campo: nombre del or+anismo responsable del estndar Tercer campo: tipo de documento que se describe, suele incluir un n?mero de versin. Cuarto campo: idioma del DTD "+emplo >e va a declarar un DTD respecto a un documento XML cu'o elemento ra(- se llama )tml ' es de carcter publico <5DE,T70< )tml 0U@L*, ,!/ /-.&/ / DTD X2TML $.% Transitional / /"ND )ttp://JJJ.J..or+/T9/!)tml$/DTD/!)tml$6transitinal.dtd&
/ )l aparceer un signo menos 0!1 signi2ica que el D#D no 3a sido aprobado por una norma 2ormal / "l nombre del organismo responsable del D#D es el -.& / "l tipo de documento es el 45#67 #ransicional8en su 9ersin : ; /"l idioma del D#D es en ingls 0"N1 "+emplo< >e declara el tipo de un documento XML cu'o elemento ra(- se llama <planetas&.se trata de un DTD de uso privado :>7>T<M; ' la ubicacin de las re+las del DTD es e!terna ,en un arc)ivo llamado planetas .dtd que se encuentra en el mismo directotrio que el arc)ivo XML. <5DE,T70< planetas >7>T<M Cplanetas.dtdD& "+emplo< Un DTD mi!to ' privado tendr sus re+las repartidas entre la cabecera del documento XML ' un arc)ivo e!terno. "l documento 467, c3arlas xml ser: < !ml versin "D$.%D encodin+"Diso6KKLM6$D standalone"DnoD & <5DE,T70< c)arlas >7>T<M Cc)arlas.dtdDN &5<L<M<GT c)arlas :c)arla;I& <5<L<M<GT c)arla :nombre, lu+ar, despedida;& <5<GT*T7 despedida*n+lesa CT)anO 'ou,+ood b'e5D& <5<GT*T7 despedidaBrancesa CMerci,au revoir5D P& <c)arlas& QQQQ.. QQQQ. </c)arlas& "l arc3i9o de reglas externo , c3arlas dtd ser: <5<L<M<GT nombre :R0,D3T3;& <5<L<M<GT lu+ar :R0,D3T3;& <5<L<M<GT despedida :R0,D3T3;& <l arc)ivo e!terno no inclu'e la declaracin del tipo de documento :DE,T70<;,'a que solo aparece en la cabecera del documento XML.
<l atributo standalone de la instruccin de procesamiento < !mlQ & tiene el valor no ,lo que si+nifica que para el correcto procesado del documento necesitamos del uso de otros documentos e!ternos : en este caso c)arlas.dtd;
2.2.-Convenciones sintcticas de DTD Como hemos visto, la sintaxis de DTD no resulta evidente a primera vista. Pese a ello, tampoco es excesivamente compleja. El primer paso para entenderla es disponer de las definiciones y usos de los diferentes smbolos usados, que podemos ver en la tabla si uiente! Sm olo "# , ( Descripcin $os par%ntesis a rupan subetiquetas <5<L<M<GT *n+rediente :,antidad,*tem;& &rdenaci'n exacta de los elementos :Gombre, Descripcion , *n+redientes , *nstrucciones ; )no s'lo de los elementos indicados :,ocer S Breir; *i no indicamos nada los elementos aparecen una sola ve+ :,antidad, *tem; , . )na o m-s veces 0asoI Elemento opcional
*nstrucciones / 0PCD1T1 Cero o m-s veces *n+redienteT Parsed Character Data <5<L<M<GT *tem :R0,D3T3;&
2 . "lementos 9ac=os >e declaran especificando la palabra <M0T7. <5<L<M<GT nombre <M0T7& <ste elemento nombre, en XML se usar(a as(: <nombre /& <4emplo: La descripcin del elemento <br/& de )tml ser:
<5<L<M<GT br <M0T7&
2 > "lementos que solo contienen caracteres 0datos1 Los elementos que slo contendrn datos alfanum=ricos se declaran usando R0,D3T3 entre par=ntesis. <5<L<M<GT nombre :R0,D3T3;& <n la declaracin se especifica con R0,D3T3. <5<L<M<GT first :R0,D3T3;& <5<L<M<GT last :R0,D3T3;& 3tendiendo a esta definicin el cdi+o '<first>John</first><last>Doe</last>' ser(a vlido 'a que )emos utili-ado los elementos UfirstU ' UlastU que )emos definido que solo contienen datos :te!to;. "+emplo< Una re+la de un DTD puede ser: <5<L<M<GT titulo :R0,D3T3;& que se corresponde con un elemento llamado <titulo& con contenido conte!tual <titulo&len+ua4es de marcas </titulo&
2 ? "lementos con subelementos 0secuencias1 >e distin+uen dos tipos de relacin entre los elementos )i4os. Secuencias o alternativos. @ecuencias< Los elementos con uno o ms )i4os se definen con el nombre de los elementos )i4os entre par=ntesis: <5<L<M<GT nombre :)i4o$;& <5<L<M<GT nombre :)i4o$, )i4o1, ......;& <4.: <5<L<M<GT mensa4e :remitente, destinatario, asunto, cuerpo;& <5<L<M<GT coc)e :marca, matricula, color;& Los )i4os que se declaran como una secuencia de elementos separados por comas deben aparecer en el mismo orden en el documento. Los elementos )i4o tambi=n deben declararse en el documento DTD. <stos elementos )i4o pueden, a su ve-, tener elementos )i4o. La declaracin completa de coc)e ser(a entonces:
<5<L<M<GT coc)e :marca, matricula, color;& <5<L<M<GT marca :R0,D3T3;& <5<L<M<GT matricula :R0,D3T3;;& <5<L<M<GT color :R0,D3T3;& "+emplo< en un correo electrnico se podr(a describir el elemento ra(- &email& como una secuencia de los elemtos <para&,<cc&:optativo;, <cco&:optativo;,<asunto& ' <cuerpo&. Las re+las que representan esto sern: <5<L<M<GT email :para ,cc ,cco ,asunto,cuerpo;& <5<L<M<GT para :R0,D3T3;& <5<L<M<GT cc:R0,D3T3; Q. )lternati9os< ,uando el elemento contiene uno ' solo uno de los elementos )i4os especificados. <4.: <5<L<M<GT persona :f(sica S 4ur(dica;& &ardinalidad de las ocurrencias de elementos 0ara especificar cuntas veces aparece cada elemento )i4o utili-amos un carcter que indique el factor de repeticin: V <l carcter WTX: el elemento o +rupo de elementos puede repetirse % o ms veces. V <l carcter W X: el elemento o +rupo de elementos puede aparecer % o $ veces. V <l carcter WIX: el elemento o +rupo de elementos puede repetirse $ o ms veces.:Go se puede usar el cuantificador I con un contenido mi!to; V 0or defecto, si no ponemos nada, el elemento debe aparecer una ve-. La si+uiente declaracin nos indica que el elemento )i4o slo puede ocurrir una ve- dentro del elemento padre: <5<L<M<GT nombre :)i4o;& >i deseamos que el elemento )i4o apare-ca ms de una ve- ' como m(nimo una ve-: <5<L<M<GT nombre :)i4oI;& >i deseamos que pueda aparecer cualquier n?mero de veces :inclu'endo la posibilidad de que no apare-ca nin+una;: <5<L<M<GT nombre :)i4oT;& >i slo deseamos que pueda aparecer una ve-, pero que no sea obli+atorio: <5<L<M<GT nombre :)i4o ;& "+emplo< <5<L<M<GT elem :a, :bSc;T, dI, e & De acuerdo a esta declaracin las si+uientes e!presiones ser(an vlidas: <elem&<a&</a&<d&</d&<elem& <elem&<a&</a&<d&</d&<d&</d&<e&</e&<elem& <elem&<a&</a&<b&</b&<d&</d&<elem& <elem&<a&</a&<c&</c&<b&</b&<c&</c&<d&</d&<elem& "+emplo: un contrato tiene una lista de clusulas .,ada una de las clausulas esta compuesta de varios ep(+rafes ' sus desarrollos asociados ' conclu'en por un ?nico epilo+o
<5element clausulas :clausula;I& <5element clausula ::ep(+rafe,desarrollo;I,epilo+o& 2 A ! "lementos con contenido mixto <ste caso no suele utili-arse en XML. <l formato de esta declaracin es mu' r(+ido: >iempre en primer lu+ar 0,D3T3, una lista alternativa, no se puede aplicar caracteres de repeticin a los elementos )i4os ' debe especificarse obli+atoriamente el carcter de repeticin WTX a todo el +rupo. <5<L<M<GT nombre :R0,D3T3 S a S b Sc;T& "+emplo< >< quiere describir un elemento prrafo que simule el prrafo de un editor de te!tos, de forma que pueda contener te!to sin formato ,te!to en <ne+rita& :rodeado de esta etiqueta; o te!to en cursiva ::rodeado de esta etiqueta .estas dos ?ltimas etiquetas podrn a su vecontener ,bien te!to sin formato ,bien otra etiqueta. 0or tanto ,<prrafo&,<ne+rita& ' <cursiva& son elementos de contenido mi!to. Las re+las que describen esto sern: <5element prrafo :ne+ritaScursivaSR0,D3T3;T& <5element ne+rita :cursiva S R0,D3T3;T& <5element cursiva :ne+rita S R0,D3T3;T& Un documento XML valido con respecto a las re+las del anterior DTD: <prrafo& 3qu( un <cursiva& tema <ne+rita&importante </ne+rita&</cursiva&
"+ercicios $.6 >e quiere que el elemento <+rupo san+u(neo& ten+a como ?nico elemento descendiente a uno solo de los cuatro si+uientes 3,@,3@, % .*ndica cul de las si+uientes es una declaracin correcta del citado elemento: a.6 <5element +rupo>an+uineo :3 @ 3@ %; .b.6 6 <5element +rupo>an+uineo :3 , @ , 3@ , %; c.6 6 <5element +rupo>an+uineo :3 S @ S3@ S %; d.6 6 <5element +rupo>an+uineo :3 I @ I3@ I %; 1.6 ,ual de las si+uientes afirmaciones es correcta respecto a la declaracin del elemento a.6 <5element contenido :alfa SbetaT; & Tanto el elemento alfa como el beta pueden aparecer % o mas veces como descendientes del elemento contenido. *also
b.6 .6 <5element contenido :alfa ,beta ; & Tanto el elemento alfa como el beta pueden aparecer una ve- como descendientes del elemento contenido,sea cual sea el orden.2also c.6 .6 <5element contenido :alfa S beta ; & <l elemento alfa ' el beta deben aparecer una ve- cada uno como descendientes del elemento contenido .2also d.6 <5element contenido :alfa , betaT ; & <l elemento alfa debe aparecer una ve- ' a continuacin el elemento beta debe aparecer % veces o ms veces, ambos como descendientes del elemento contenido . T9U< Gota : Los elementos )tml no necesitan estar bien formados para poderse visuali-ar en los nave+adores .0or eso en los dtd que validan estos documentos se usa una determinada nomenclatura para indicar que un elemento pueda ser opcionalmente abierto o cerrado .as(, .si aparecen dos +uiones despu=s del nombre del elemento tanto la etiqueta inicial como la final son obli+atorias. un +uion se+uido por la letra CED indica que puede omitirse la etiqueta final .un par de letras CED indican que tanto la etiqueta inicial como la final pueden omitirse <4ercicio >i el DTD de un documento est declarado dentro del XML como: