Menú Curso XML,XSL,XMLRPC/SOAP : Código Fuente DTD de HTML

(Anterior) Namespaces, Schemas y DTD's

Puesto que las raíces de DTD's ("Data Type Definition Documents") se encuentran en SGML en este ejemplo se describe la utilización de un derivado de SGML: HTML.

La descripción que continua es solo una parte del DTD que conforma a HTML, el DTD completo se encuentra en http://www.w3.org/TR/REC-html40 .

Cabe mencionarse que cuando es utilizado este DTD para validar documentos XML y se encuentra de acuerdo con éste, al documento XML se le denomina: XHTML.

DTD ("Parcial") para HTML html.dtd

<?xml encoding="UTF-8"?>                Esta primera linea es necesaria 
                                        únicamente si el DTD será utilizado 
					para validar XML.



<!ELEMENT html (head, body)>            Este renglón indica que el elemento 
                                        html debe contener los elementos head 
				        y body anidados en su declaración.
<!ELEMENT head (title,style*)>         Aquí se indica que el elemento 
                                       head debe contener el elemento 
				       title y puede contener cero o más (*) 
				       elementos style.  
 

<!ELEMENT title (#PCDATA)>             El elemento title contiene datos
                                       puros (crudos) , también  conocidos 
				       por "Parsed Character Data" 

<!ELEMENT style (#PCDATA)>            Aquí se indica que el elemento style
<!ATTLIST style                       además de contener datos puros(#PCDATA) 
    type  CDATA	#IMPLIED              puede contener el atributo type
    >	                              el cual contiene caracteres simples
                                      ( CDATA ); el término #IMPLIED
				      indica que este atributo es opcional
                                        
                                          Los elementos ENTITY en un DTD 
				          proporcionan una forma de agrupar
<!ENTITY % content "p|h1">                diversos ELEMENT's y referirse a
				          ellos através de un nombre 
<!ENTITY % inline "#PCDATA|a|br">         corto, en este caso se definen 
                                          dos ENTITY's llamados content e  
					  inline que serán utilizados en
				          las siguientes declaraciones. 

                                          Se indica que dentro del elemento
				          a pueden anidarse los elementos 
<!ELEMENT a (#PCDATA|b|br)*>              b, br y datos puros(PCDATA);
<!ATTLIST a                               además se debe declarar el
    href	CDATA	#REQUIRED         atributo href con caracteres
    name	CDATA	#IMPLIED          simples, mientras el atributo 
    >			                  target es opcional.




<!ELEMENT br EMPTY>                       El elemento br no puede contener
                                          ni atributos ni elementos anidados.
					 
                                           Dentro de los elementos p y  h1
                                           pueden anidarse cualquier numero(*) 
<!ELEMENT p (%inline;)*>                   de elementos que se encuentren 
<!ELEMENT h1 (%inline;)*>                  en el ENTITY llamado inline.

                                          Finalmente, se indica que en el 
<!ELEMENT body (%content;)+>              elemento body puede anidarse uno
<!ATTLIST body                            o más (+) elementos del ENTITY
    bgcolor CDATA	#IMPLIED          content, además existe la
    >                                     posibilidad de definir el 
                                          atributo bgcolor que contiene
			                  caracteres simples.

El siguiente fragmento cumple con los requerimientos del DTD anterior.

Documento XML datos.xml

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

<html>

<head>
<title>Página Utilizando DTD</title>
</head>

<body bgcolor="FFFFFF">
    <h1> Este es un titulo con un 
         <a href="http://www.osmosislatina.com"> 
              link hacia Osmosislatina
         </a> 
   </h1> 

    <p> Eso es todo </p> 

</body>

</html>

Terminos Legales de Contenido ©2000-2008 Osmosis Latina

Diseñado bajo estándares : XHTML   CSS  

webmaster@osmosislatina.com