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

[DTD] ¿Como se declara que un elemento no debe anidarse?

Estas en el tema de [DTD] ¿Como se declara que un elemento no debe anidarse? en el foro de Programación General en Foros del Web. hola gente, mas que un problema es una simple curiosidad. hace tiempo vengo leyendo el XHTML DTD pero hace poco lei el tutorial de la ...
  #1 (permalink)  
Antiguo 17/09/2009, 21:32
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
[DTD] ¿Como se declara que un elemento no debe anidarse?

hola gente,

mas que un problema es una simple curiosidad. hace tiempo vengo leyendo el XHTML DTD pero hace poco lei el tutorial de la sintaxis para crear documentos DTD. sin embargo, en el tutorial no se explicaba como declarar que un elemento no puede anidarse dentro de si mismo. tomemos como ejemplo HTML donde los elementos <a>, <form>, entre otros mas, no pueden anidarse dentro de si mismo. estoy sospechando, pero no estoy seguro, que la respuesta es que eso se debe definir en la aplicacion parser y como mucho en el documento DTD lo unico que se puede hacer es comentarse cuando la anidacion debe evitarse.

gracias por cualquier comentario y/o respuesta...
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 18/09/2009 a las 00:45 Razón: cambiando titulo
  #2 (permalink)  
Antiguo 18/09/2009, 13:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 4 meses
Puntos: 102
Respuesta: [DTD] ¿Como se declara que un elemento no debe anidarse?

Hasta donde tengo entendido (no me creas), no es posible hacer ese tipo de declaraciones "excluyentes" en XML.

Para saber cómo está construido el DTD de XHTML, siempre puedes consultar la fuente.

Atendiendo a tu duda concreta, el elemento a está declarado como sigue:
Código xml:
Ver original
  1. <!--================== The Anchor Element ================================-->
  2.  
  3. <!-- content is %Inline; except that anchors shouldn't be nested -->
  4.  
  5. <!ELEMENT a %a.content;>
  6. <!ATTLIST a
  7.  %attrs;
  8.  %focus;
  9.  charset     %Charset;      #IMPLIED
  10.  type        %ContentType;  #IMPLIED
  11.  name        NMTOKEN        #IMPLIED
  12.  href        %URI;          #IMPLIED
  13.  hreflang    %LanguageCode; #IMPLIED
  14.  rel         %LinkTypes;    #IMPLIED
  15.  rev         %LinkTypes;    #IMPLIED
  16.  shape       %Shape;        "rect"
  17.  coords      %Coords;       #IMPLIED
  18.  >

El contenido se puede ver en:
Código xml:
Ver original
  1. <!-- a elements use %Inline; excluding a -->
  2.  
  3. <!ENTITY % a.content
  4.    "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">

Si buscas la declaración de Inline:
Código xml:
Ver original
  1. <!-- %Inline; covers inline or "text-level" elements -->
  2. <!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">

Y, siguiendo la cadena, inline está declarado como:
Código xml:
Ver original
  1. <!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">

Si observas, tal cual lo dice el comentario, el elemento a tiene el mismo contenido que un Inline salvo por el propio elemento a, pero no hace tal cosa como la de heredar de Inline y hacer una exclusión de a (lo que tenías idea), sino se declara explícitamente su contenido posible.


Claro, esto solo muestra cómo se declara esta DTD, no debe ser prueba de que no se puede hacer tal cosa, aunque así lo tengo entendido .... el problema es que no sé de dónde saqué dicha idea, por tanto, no me creas del todo.

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 18/09/2009 a las 13:10 Razón: Aclaratoria...
  #3 (permalink)  
Antiguo 18/09/2009, 13:44
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 4 meses
Puntos: 102
Respuesta: [DTD] ¿Como se declara que un elemento no debe anidarse?

http://www.w3.org/TR/xhtml1/#h-4.9
Cita:
4.9. SGML exclusions

SGML gives the writer of a DTD the ability to exclude specific elements from being contained within an element. Such prohibitions (called "exclusions") are not possible in XML.
Google todo lo sabe.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 18/09/2009, 15:14
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: [DTD] ¿Como se declara que un elemento no debe anidarse?

gracias por leer y responder.

primero mencionar que si se como leer e interpretar el documento XHTML DTD, de ahi que tomara como ejemplo el elemento <a>. pienso que voy a tener que dejarlo ahi porque me parece que le seguire dando vuelta al asunto. aunque todavia me queda la duda de como XHTML DTD excluye elementos y no veo cuan diferente pueda ser un XHTML DTD de un DTD escrito por un autor. por supuesto, entiendo que el DTD escrito por un autor es para documentos XML pero tambien se podria decir que XHTML esta basado bajo la misma base de un XML, por lo que no me cuadra.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 18/09/2009, 16:50
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 4 meses
Puntos: 102
Respuesta: [DTD] ¿Como se declara que un elemento no debe anidarse?

... ¿me leiste?, ¿de plano no me expliqué? ... Va de nuevo:
- XHTML es XML; punto.
- En un DTD no puedes declarar elementos que no puede contener otro elemento (ve el mensaje que cité, ya no solo es "una creencia" mia).

... y, pensandolo bien, no es raro no se pueda, hay infinitas cosas que podrían prohibirse como contenido; tiene lógica ya que el sentido de XML es definir dicho contenido.

¿Te sigues preguntando cómo en XHTML un elemento "a" no puede contener a otro elemento a?; fue lo que expliqué dejando las partes del DTD que lo definen, simplemente no es un elemento permitido.

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 18/09/2009, 17:23
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: [DTD] ¿Como se declara que un elemento no debe anidarse?

ehhhhhhh, jejejeje! disculpame, quizas es que no estoy muy familiarizado aun con esta tecnologia y por eso no logro captarlo. no te preocupes por intentar explicarmelo, cuando me decida entrare de lleno y lo mas seguro comprendere lo que intentas decirme. te agradezco por tu tiempo y dedicacion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 18/09/2009, 19:19
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 4 meses
Puntos: 102
Respuesta: [DTD] ¿Como se declara que un elemento no debe anidarse?

... esque no es un asunto de la tecnología, es del enfoque. Va de nuevo, en español ....

Tú buscas --entiendo-- la manera de en un DTD declarar que "un elemento no contenga X elemento", eso no existe. Lo que se hace es declarar que "un elemento puede contener A, B y C elementos" es así que X elemento es "excluido" ... la realidad es que simplemente no está incluido (como otras infinitas cosas).

En el XHTML se define que cosas puede contener el elemento "a", dentro de esas cosas no está el propio elemento "a", no porque se excluya, sino que no se incluye.

Y tres tristes trigres ... espero no haya salido peor . Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 18/09/2009, 19:39
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Información Respuesta: [DTD] ¿Como se declara que un elemento no debe anidarse?

¡vaya, menuda verguenza que me da! jajaja ¡no se donde demonios habre puesto mis ojos todo este tiempo que llevo leyendo XHTML DTD, y mira que van meses! analizando nuevamente el DTD me fijo que realmente no se incluye el elemento a excluirse. mas claro no puede estar. tendre que revisar mi libro a ver si fue por culpa de él o si fui yo. gracias de nuevo .
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 18/09/2009 a las 19:45
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 22:58.