Foros del Web » Programación para mayores de 30 ;) » Programación General »

¿Dtd's?¿#PCDATA?¿#REQUIRED?

Estas en el tema de ¿Dtd's?¿#PCDATA?¿#REQUIRED? en el foro de Programación General en Foros del Web. Hola muy buenas, Despues de entender bien bien lo que es xml y para que sirve,me puse a mirarme los DTD's,se entiende mejor que el ...
  #1 (permalink)  
Antiguo 07/09/2006, 16:20
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 20 años
Puntos: 2
¿Dtd's?¿#PCDATA?¿#REQUIRED?

Hola muy buenas,

Despues de entender bien bien lo que es xml y para que sirve,me puse a mirarme los DTD's,se entiende mejor que el XML pero aun me quedan lagunas..si alguien es tan amable de explicarme con sus palabras que son los DTD's se lo agradeceria.

Otras de mis lagunas son estas siguientes: que significa #pcdata?? y #REQUIRED??

Un Saludo y muchas gracias!! no se que haria yo sin vosotros..no se que haria sin este maravilloso foro jaja (no es peloteo).
  #2 (permalink)  
Antiguo 07/09/2006, 18:22
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 20 años, 2 meses
Puntos: 43
Hola limboings!

Un DTD o Doument Type Definition es un documento donde vienen todas la reglas de como debe ir bien formado un archivo xhtml, xml, etc...

Por ejemplo tienes un documento XML así:

Código:
<root>

<node1 id="1">Dato1</node1>
<node2 id="2">Dato2</node2>
<node3 id="3">Dato3</node3>

</root>
En tu documento DTD irían todas las reglas:

Código:
<! ELEMENT root (node1,node2,node3) >
<! ELEMENT node1 (#PCDATA) >
<! ELEMENT node2 (#PCDATA) >
<! ELEMENT node3 (#PCDATA) >
<! ATTLIST node1 id CDATA #REQUIRED >
<! ATTLIST node2 id CDATA #REQUIRED >
<! ATTLIST node3 id CDATA #REQUIRED >
Aquí le decimos que nuestro nodo raiz debe de llamarse root y entre paréntesis los nodos hijos que va a tener:

Código:
<! ELEMENT root (node1,node2,node3) >
ELEMENT nos dice que va a tener el documento una etiqueta node1, #PCDATA le dice al parser que va a contener caracteres en dicha etiqueta.

Código:
<! ELEMENT node1 (#PCDATA) >
ATTLIST indica el nombre del atributo que debe de llevar el nodo espedificado, #REQUIRED señala que debe aparecer ese atributo forzosamente cada vez que aparezca el nodo que se indica en ATTLIST y CDATA le dice al parser que van a ser caracteres lo que va a ir dentro del atributo.

Código:
<! ATTLIST node1 id CDATA #REQUIRED >

Hay todavía muchas cosas por ver en relación a los DTD´s, que ahora pueden pasar a la historia y ser sustituidos por los XML SCHEMA, pero eso es otro rollo

Un saludo!
  #3 (permalink)  
Antiguo 08/09/2006, 14:56
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 20 años
Puntos: 2
Bien explicao!!xD me has solucionado todo bien bien,gracias!!

No obstante tengo otras preguntitas que hacer jeje,si un elemento no lleva #REQUIRED no hace falta ponerlo en el archivo xml?es opcional?el #REQUIRED se puede poner siempre sea attlist o sea element,o cualquier otro?y por ultimo,el dtd es informacion para personas o para maquinas?es decir,si en el ejemplo que tu me diste no pongo la etiqueta node1,me dara algun error?o simplemente seguira ejecutando lo demas sin que pase nada?

un saludo y gracias de nuevo!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:26.