¿Este bloque XML es válido o no?

¿Es ese mi código XML válido o no?

<?xml version="1.0"?>
<!DOCTYPE nahrung [
  <!ELEMENT nahrung      (obst|gemuese|sonstiges)+>
  <!ELEMENT obst    (#PCDATA)>
  <!ELEMENT gemuese    (#PCDATA)>
  <!ELEMENT sonstiges    (#PCDATA|beschreibung)*>
  <!ELEMENT beschreibung    EMPTY>
  <!ATTLIST beschreibung artikelname CDATA #REQUIRED
    preis CDATA #REQUIRED>
]>
<nahrung>
    <obst>Pflaume</obst>
    <gemuese>Kohl</gemuese>
    <sonstiges>Keks</sonstiges>
    <sonstiges><beschreibung preis="22.50"
         artikelname="banane"/></sonstiges>
    <gemuese>Gurke Preis: 22.50</gemuese>
</nahrung>

tengo un <!ELEMENT nahrung (obst|gemuese|sonstiges)+> eso significa obst OR gema OR otro sólo aparece una vez en xml y no todos más altos. ¿Entendí correctamente?

preguntado el 01 de febrero de 12 a las 14:02

Si pongo eso en un nuevo archivo xml dentro de eclipse, no me dice ningún error ... -

3 Respuestas

Parece que su XML debería validar con éxito contra su DTD, pero no creo que su DTD coincida con lo que espera.

Específicamente, esta línea de su DTD:

<!ELEMENT nahrung      (obst|gemuese|sonstiges)+>

Significa que debe tener uno o más de los elementos de esa lista.

Si solo desea permitir un elemento hijo, por ejemplo (ya sea obst OR gema OR sonstiges), podrías usar esto:

<!ELEMENT nahrung      (obst|gemuese|sonstiges)>

Respondido 01 Feb 12, 18:02

Este planteamiento de «

(obst|gemuese|sonstiges)+

significa "cualquier número de obst, gemuesey sontiges elementos, en cualquier orden ".

Respondido 01 Feb 12, 18:02

Eso significa que | no significa OR? y por ejemplo, ¿Obst podría aparecer dos veces o gemuse una vez y sonstiges tres veces? ¿correcto? - Baper

De hecho, significa "o", pero "+" significa "uno o más de". Entonces, su secuencia completa es cualquiera de las tres, seguida opcionalmente por cualquiera de las tres, seguida opcionalmente por cualquiera de las tres ... etc. Ernest Friedman-Hill

La (obst|gemuese|sonstiges)+ significa una de esas 1 o más veces. Lo que significa que este xml es válido.

Respondido 01 Feb 12, 18:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.