Chris: [DTD] ELEMENT-Definition mit (#PCDATA | (a | b))

Hallo,

mal eine kleine Verständnisfrage. Habe wohl gerade ein Brett vor dem Kopf. Aber wieso ist folgendes Erlaubt...

<!ELEMENT element (inliner | (term, definition)) >

und dieses...

<!ELEMENT element (#PCDATA | (term, definition)) >

nicht??? Behaupten zumindest meine Programme :)

Dank + Gruß,
Chris

  1. Hallo,

    mal eine kleine Verständnisfrage. Habe wohl gerade ein Brett vor dem Kopf. Aber wieso ist folgendes Erlaubt...
    <!ELEMENT element (inliner | (term, definition)) >

    » und dieses...

    <!ELEMENT element (#PCDATA | (term, definition)) >
    nicht???

    In XML geht das (2.-es) leider nicht, weil (aus der Spez.):
    "An element type has mixed content when elements of that type may contain character data, optionally interspersed with child elements.] In this case, the types of the child elements may be constrained, but not their order or their number of occurrences"

    (oder aus der Übersetzung: "Ein Elementtyp hat gemischten Inhalt, wenn Elemente dieses Typs Zeichendaten enthalten dürfen, die optional mit Kindelementen gemischt sind.] In diesem Fall können die Typen der Kindelemente beschränkt werden, nicht jedoch ihre Reihenfolge oder ihre Anzahl."

    du kannst also höchstens sowas definieren:
    <!ELEMENT element (#PCDATA | term | definition)*>
    oder mit <!ELEMENT element ANY >

    Grüße
    Thomas

    1. Hallo Thomas,

      danke erst einmal für die Antwort. Tja, da habe ich wohl zielsicher den Pferdefuß erwischt.
      Na gut, dann werde ich halt <!ELEMENT element (#PCDATA | term | definition)*> benutzen und selber auf den *Rest* aufpassen müssen. ;-|

      Grüße
      Chris.