Apr 26, 2008

DTD Example

DTD Example

The DTD has no header, it is just a set of entity lists, element declarations and attribute declarations. Listed below is an example DTD with some text from the HTML Transitional DTD but modified to provide a simpler example that is complete.

<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.01 Transitional//EN">

<!ENTITY % Script "CDATA" -- script expression -->

<!ENTITY % URI "CDATA" -- a Uniform Resource Identifier, see [URI] -->

<!ENTITY % StyleSheet "CDATA" -- style sheet data -->

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">

<!ENTITY % list "UL | OL">

<!ENTITY % coreattrs

"id ID #IMPLIED -- document-wide unique id --

class CDATA #IMPLIED -- space-separated list of classes --

style %StyleSheet; #IMPLIED -- associated style info --

title %Text; #IMPLIED -- advisory title --"

>

<!ENTITY % events

"onclick %Script; #IMPLIED -- a pointer button was clicked --

ondblclick %Script; #IMPLIED -- a pointer button was double clicked--

onmousedown %Script; #IMPLIED -- a pointer button was pressed down --

onmouseup %Script; #IMPLIED -- a pointer button was released --

onmouseover %Script; #IMPLIED -- a pointer was moved onto --

onmousemove %Script; #IMPLIED -- a pointer was moved within --

onmouseout %Script; #IMPLIED -- a pointer was moved away --

onkeypress %Script; #IMPLIED -- a key was pressed and released --

onkeydown %Script; #IMPLIED -- a key was pressed down --

onkeyup %Script; #IMPLIED -- a key was released --"

>

<!ENTITY % attrs "%coreattrs; %events;">

<!ENTITY % align "align (left|center|right|justify) #IMPLIED">

<ENTITY % phrase

"EM | STRONG | DFN | CODE | SAMP

| KBD | VAR | CITE | ABBR | ACRONYM" >

<!ENTITY % fontstyle

"TT | I | B | U | S | STRIKE | BIG | SMALL">

<!ENTITY % inline

"#PCDATA | %phrase; | %fontstyle;">

<ENTITY % block

"P | %heading; | %list; | HR">

<!ENTITY % flow "%block; | %inline;">

<ELEMENT BODY O O (%flow;)* -- document body -->

<ATTLIST BODY %attrs; -- %coreattrs, %i18n, %events --

onload %Script; #IMPLIED -- the document has been loaded --

onunload %Script; #IMPLIED -- the document has been removed --

background %URI; #IMPLIED -- texture tile for document background --

>

<!ELEMENT (%fontstyle; | %phrase;) - - (%inline;)*>

<!ATTLIST (%fontstyle; | %phrase;)

%attrs; -- %coreattrs, %events --

>

<!ELEMENT (%heading;) - - (%inline;)* -- heading -->

>!ATTLIST (%heading;)

%attrs; -- %coreattrs, %i18n, %events --

%align; -- align, text alignment -- >

<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->

<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->

<!ELEMENT HR - O EMPTY -- horizontal rule -->

<!ATTLIST HR

%attrs; -- %coreattrs, %i18n, %events --

align (left|center|right) #IMPLIED

noshade (noshade) #IMPLIED

size %Pixels; #IMPLIED

width %Length; #IMPLIED

>

<!ELEMENT P - O (%inline;)* -- paragraph -->

<!ATTLIST P

%attrs; -- %coreattrs, %i18n, %events --

%align; -- align, text alignment --

>

<!ENTITY % OLStyle "CDATA" -- constrained to: "(1|a|A|i|I)" -->

<!ELEMENT OL - - (LI)+ -- ordered list -->

<!ATTLIST OL

%attrs; -- %coreattrs, %i18n, %events --

type %OLStyle; #IMPLIED -- numbering style --

compact (compact) #IMPLIED -- reduced interitem spacing --

start NUMBER #IMPLIED -- starting sequence number --

>

<!ENTITY % ULStyle "(disc|square|circle)">

<!ELEMENT UL - - (LI)+ -- unordered list -->

<!ATTLIST UL

%attrs; -- %coreattrs, %i18n, %events --

type %ULStyle; #IMPLIED -- bullet style -- compact

(compact) #IMPLIED -- reduced interitem spacing -- >

<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle;|%OLStyle;)" -->

<!ELEMENT LI - O (%flow;)* -- list item -->

<!ATTLIST LI

%attrs; -- %coreattrs, %i18n, %events --

type %LIStyle; #IMPLIED -- list item style --

value NUMBER #IMPLIED -- reset sequence number --

>

<!ENTITY % version "version CDATA #FIXED '%HTML.Version;'">

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;) -- document root element -->

<!ATTLIST HTML

%version; >

For brevity, the element declarations for the inline elements and many block elements have been left out

No comments:

Post a Comment

Popular Posts