首页 > 代码库 > DTD - Elements

DTD - Elements

In a DTD, elements are declared with an ELEMENT declaration.

Declaring Elements

In a DTD, XML elements are declared with an element declaration with the following syntax:

<!ELEMENT element-name category>or<!ELEMENT element-name (element-content)>

Empty Elements

Empty elements are declared with the category keyword EMPTY:

<!ELEMENT element-name EMPTY>Example:<!ELEMENT br EMPTY>XML example:<br />
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE br [<!ELEMENT br EMPTY>]><br/>

Elements with Parsed Character Data

Elements with only parsed character data are declared with #PCDATA inside

<!ELEMENT element-name (#PCDATA)>Example:<!ELEMENT from (#PCDATA)>

Elements with any Contents

Elements declared with the category keyword ANY, can contain any combination of parsable data:

<!ELEMENT element-name ANY>Example:<!ELEMENT note ANY>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE content [<!ELEMENT content (any+)><!ELEMENT any ANY>]><content>    <any></any>    <any>        <any></any>    </any>    <any>&lt;</any></content>

Elements with Children (sequences)

Elements with one or more children are declared with the name of the children elements inside parentheses:

<!ELEMENT element-name (child1)>or<!ELEMENT element-name (child1,child2,...)>Example:<!ELEMENT note (to,from,heading,body)>

When children are declared in a sequence separated by commas, the children must appear in the same sequence in the document. In a full declaration, the children must also be declared, and the children can also have children. The full declaration of the "note" element is:

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

Declaring Only One Occurrence of an Element

<!ELEMENT element-name (child-name)>Example:<!ELEMENT note (message)>

The example above declares that the child element "message" must occur once, and only once inside the "note" element.

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE note [<!ELEMENT note (message)><!ELEMENT message (#PCDATA)>]><note>    <message></message></note>

Declaring Minimum One Occurrence of an Element

<!ELEMENT element-name (child-name+)>Example:<!ELEMENT note (message+)>

The + sign in the example above declares that the child element "message" must occur one or more times inside the "note" element.

Declaring Zero or More Occurrences of an Element

<!ELEMENT element-name (child-name*)>Example:<!ELEMENT note (message*)>

The * sign in the example above declares that the child element "message" can occur zero or more times inside the "note" element.

 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE note [<!ELEMENT note (message*)><!ELEMENT message (#PCDATA)>]><note></note>

Declaring Zero or One Occurrences of an Element 

<!ELEMENT element-name (child-name?)>Example:<!ELEMENT note (message?)>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE note [<!ELEMENT note (message?)><!ELEMENT message (#PCDATA)>]><note><message></message></note>

The ? sign in the example above declares that the child element "message" can occur zero or one time inside the "note" element.

Declaring either/or Content

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

The example above declares that the "note" element must contain a "to" element, a "from" element, a "header" element, and either a "message" or a "body" element.

 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE note [<!ELEMENT note (to,from,header,(message|body))><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT header (#PCDATA)><!ELEMENT message (#PCDATA)><!ELEMENT body (#PCDATA)>]><note>    <to></to>    <from></from>    <header></header>    <body></body></note>

Declaring Mixed Content

Example:<!ELEMENT note (#PCDATA|to|from|header|message)*>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE note [<!ELEMENT note (#PCDATA|to|from|header|message)*><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT header (#PCDATA)><!ELEMENT message (#PCDATA)><!ELEMENT body (#PCDATA)>]><note>    <to></to></note>

The example above declares that the "note" element can contain zero or more occurrences of parsed character data, "to", "from", "header", or "message" elements.

 

 

 

 

DTD - Elements