Freigeben über


ELEMENT

Mithilfe der ELEMENT-Anweisung werden die einzelnen Elemente innerhalb des Dokumenttyps deklariert, der von der DTD definiert wird. Zunächst wird das Element anhand seines Namens deklariert, und anschließend wird angegeben, welcher Inhalt für das Element zulässig ist.

Syntax

<!ELEMENT  name  content >

Parameter

  • name
    Der Name des Elements. Die Groß- und Kleinschreibung muss berücksichtigt werden.
  • content
    Das zulässige Inhaltsmodell für das Element. Dabei muss es sich um eines der Folgenden handeln:

    • ANY – Im Element ist beliebiger Inhalt zulässig. Bei der Verwendung in einer Elementdeklaration lässt dieses Schlüsselwort ein offenes Inhaltsmodell ohne Einschränkungen für die Elemente und alle ihre untergeordneten Knoten zu.

    • EMPTY – Für das Element ist kein Inhalt zulässig, und es muss leer bleiben.

    • Declared content rule – Für diese Option muss eine in Klammern eingeschlossene Inhaltsregel geschrieben werden.

      In der folgenden Tabelle werden die Symbole für reservierte Schlüsselwörter und Interpunktionszeichen aufgelistet, die neben den Namen für andere innerhalb der DTD deklarierte Elemente verwendet werden können, um die Regel für Elementinhalt zu erstellen.

      Symbole Beschreibung

      #PCDATA

      Lässt analysierte Zeichendaten als Teil des Elementinhalts zu.

      name

      Der Name eines Elements. Dabei kann es sich um ein definiertes Element oder sonstige anhand ihres Namens in der DTD definierte Elemente handeln, für die zusätzliche ELEMENT-Deklarationen verwendet werden.

      Wenn keine weiteren Interpunktionszeichen oder Symbole in der Inhaltsregel enthalten sind, ist genau ein Vorkommen des benannten Elements zulässig und erforderlich.

      ()

      Obwohl beim Deklarieren eines Inhaltsmodells für ein Element mindestens ein Klammernpaar erforderlich ist, können Sie auch weitere Klammernpaare schachteln. Mithilfe dieses Verfahrens können Sie ein komplexeres Inhaltsmodell für ein Element definieren.

      |

      Mithilfe eines vertikalen Balkens können zwei benannte Elemente getrennt werden. Wenn ein solcher verwendet wird, gibt er an, dass jedes dieser Elemente (d. h. das Element vor oder das Element nach dem Balken) als untergeordnetes Element festgelegt sein kann.

      ,

      Mithilfe eines Kommas können zwei benannte Elemente oder geschachtelte Regeln getrennt werden. Wenn ein solches verwendet wird, gibt dieses an, dass die Elemente bzw. Regeln in der angegebenen Reihenfolge aufgeführt werden müssen.

      ?

      Ein Fragezeichen kann als Suffix/Operand verwendet werden. Wenn ein solches verwendet wird, gibt dieses an, dass das Element bzw. die Regel, das bzw. die diesem vorangeht, optional ist. Es kann jedoch bei Verwendung nur einmal an dieser Stelle in der XML-Dokumentstruktur angeführt werden.

      +

      Ein Pluszeichen kann als Suffix/Operand verwendet werden. Wenn ein solches verwendet wird, gibt dieses an, dass das Element bzw. die Regel, das bzw. die diesem vorangeht, erforderlich ist. Es kann bei Verwendung mehrmals an dieser Stelle in der XML-Dokumentstruktur angeführt werden.

      *

      Ein Sternchen kann als Suffix/Operand verwendet werden. Wenn ein solches verwendet wird, gibt dieses an, dass das Element bzw. die Regel, das bzw. die diesem vorangeht, optional ist. Es kann bei Verwendung mehrmals an dieser Stelle in der XML-Dokumentstruktur angeführt werden.

Beispiele

  • Deklariert ein <test>-Element, das beliebigen Inhalt enthalten kann:

    <!ELEMENT  test  ANY  >
    
  • Deklariert ein <Image> -Element, das leer sein muss (d. h. keinen Inhalt aufweisen kann):

    <!ELEMENT  Image  EMPTY  >
    
  • Deklariert ein <title>-Element, das nur Zeichendaten enthalten darf (und kein weiteres Markup):

    <!ELEMENT  title  (#PCDATA)  >
    
  • Deklariert ein <fruit>-Element, das entweder ein <apple>-Element oder ein <orange>-Element enthalten darf:

    <!ELEMENT  fruit  (apple|orange)  >
    
  • Deklariert ein <book>-Element, das ein <author>-Element enthalten muss, auf das ein <title>-Element folgt:

    <!ELEMENT  book  (author,title)  >
    
  • Deklariert ein <memo>-Element, das ein <body>-Element enthalten muss, auf das optional ein <postscript>-Element folgen kann:

    <!ELEMENT  memo  (body,postscript?)  >
    
  • Deklariert ein <catalog>-Element, das mindestens ein <book>-Element enthalten muss:

    <!ELEMENT  catalog  (book+)  >
    
  • Deklariert ein <table>-Element, das entweder leer sein oder <rowset>-Elemente enthalten kann:

    <!ELEMENT  table  (rowset*)  >
    

Siehe auch

Konzepte

ATTLIST (Attributliste)
ENTITY
NOTATION