DTD - Elementy

In a DTD, elements are declared through element declarations.

Declare an element

In DTD, XML elements are declared through element declarations. Element declarations use the following syntax:

<!ELEMENT element name category>

Lub

<!ELEMENT element name (element content)>

Empty elements

Empty elements are declared with the category keyword EMPTY:

<!ELEMENT element name EMPTY>

Przykład:

<!ELEMENT br EMPTY>

XML example:

<br />

Elements that only contain PCDATA

Elements that only contain PCDATA are declared with #PCDATA in parentheses:

<!ELEMENT element name (#PCDATA)>

Przykład:

<!ELEMENT from (#PCDATA)>

Elements with any content

The elements declared with the category keyword ANY can contain any combination of parseable data:

<!ELEMENT element name ANY>

Przykład:

<!ELEMENT note ANY>

Elementy zawierające sekwencję elementów podrzędnych

Elementy zawierające jeden lub więcej elementów podrzędnych są deklarowane przez nazwy elementów podrzędnych w nawiasach okrągłych:

<!ELEMENT elementName (childElementName 1)>

Lub

<!ELEMENT elementName (childElementName 1,childElementName 2,...)>

Przykład:

<!ELEMENT note (to,from,heading,body)>

Kiedy elementy podrzędne są deklarowane w kolejności rozdzielonej przecinkami, muszą one występować w dokumencie w tej samej kolejności. W pełnej deklaracji elementy podrzędne również muszą być deklarowane, a mogą mieć swoje własne elementy podrzędne. Pełna deklaracja elementu "note":

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

Deklaracja elementów występujących tylko jeden raz

<!ELEMENT elementName (childElementName)>

Przykład:

<!ELEMENT note (message)>

Przykładowy przykład deklaruje, że element "message" musi występować raz i tylko wewnątrz elementu "note".

Deklaracja elementów występujących przynajmniej jeden raz

<!ELEMENT elementName (childElementName+)>

Przykład:

<!ELEMENT note (message+)>

W powyższym przykładzie plus oznacza, że element "message" musi występować wewnątrz elementu "note" przynajmniej jeden raz.

Deklaracja elementów występujących zero, jeden lub wiele razy

<!ELEMENT elementName (childElementName*)>

Przykład:

<!ELEMENT note (message*)>

W powyższym przykładzie gwiazdka oznacza, że element "message" może występować wewnątrz elementu "note" zero, jeden lub wiele razy.

Deklaracja elementów występujących zero lub jeden raz

<!ELEMENT elementName (childElementName?)>

Przykład:

<!ELEMENT note (message?)>

W powyższym przykładzie znak zapytania oznacza, że element "message" może występować wewnątrz elementu "note" zero lub jeden raz.

Deklaracja treści typu "nie.../czy..."

Przykład:

<!ELEMENT note (to,from,header,(message|body))>

Przykładowy przykład deklaruje: "note" element musi zawierać elementy "to", "from", "header" oraz elementy niebędące "message", ale "body".

Deklaracja mieszanej zawartości

Przykład:

<!ELEMENT note (#PCDATA|to|from|header|message)*>

Powyższy przykład deklaruje: "note" element może zawierać PCDATA występujące zero lub więcej razy, "to", "from", "header" lub "message".