<!--
Wireless Markup Language (WML) Document Type Definition.
WML is an XML language. Typical usage:
<?xml version="1.0"?>
<!DOCTYPE WML PUBLIC "-//WAPFORUM//DTD WML 1.0//EN"
"http://www.wapforum.org/DTD/wml.xml">
<WML>
...
</WML>
-->
<!ENTITY % length "CDATA"> <!-- [0-9]+ for pixels or [0-9]+"%" for
percentage length -->
<!ENTITY % vdata "CDATA"> <!-- attribute value possibly containing
variable references -->
<!ENTITY % URL "%vdata;"> <!-- URL or URN designating a hypertext
node. May contain variable references -->
<!ENTITY % boolean "(TRUE|FALSE)">
<!ENTITY % number "NMTOKEN"> <!-- a number, with format [0-9]+ -->
<!ENTITY % emph "EM | STRONG | B | I | U | BIG | SMALL">
<!ENTITY % tab "TAB">
<!ENTITY % layout "BR">
<!ENTITY % text "#PCDATA | %emph; | %tab;">
<!ENTITY % inline "%text; | %layout;">
<!-- flow covers "card-level" elements, such as text and images -->
<!ENTITY % flow "%inline; | IMG | A">
<!-- Task types -->
<!ENTITY % task "GO | PREV | NOOP | REFRESH">
<!-- Navigation and event elements -->
<!ENTITY % navelmts "DO | ONEVENT">
<!--================ Decks and Cards ================-->
<!ELEMENT WML ( HEAD?, TEMPLATE?, CARD+ )>
<!ATTLIST WML
xml:lang NMTOKEN #IMPLIED
>
<!-- card intrinsic events -->
<!ENTITY % cardev
"ONENTERFORWARD %URL; #IMPLIED
ONENTERBACKWARD %URL; #IMPLIED
ONTIMER %URL; #IMPLIED"
>
<!-- CARD field types -->
<!ENTITY % fields "%flow; | INPUT | SELECT | FIELDSET">
<!ELEMENT CARD (%fields; | %navelmts; | TIMER)*>
<!ATTLIST CARD
NAME NMTOKEN #IMPLIED
TITLE %vdata; #IMPLIED
NEWCONTEXT %boolean; "FALSE"
STYLE (LIST|SET) "LIST"
%cardev;
>
<!--================ Event Bindings ================-->
<!ELEMENT DO (%task;)>
<!ATTLIST DO
TYPE CDATA #REQUIRED
LABEL %vdata; #IMPLIED
NAME NMTOKEN #IMPLIED
OPTIONAL %boolean; "FALSE"
>
<!ELEMENT ONEVENT (%task;)>
<!ATTLIST ONEVENT
TYPE CDATA #REQUIRED
>
<!--================ Deck-level declarations ================-->
<!ELEMENT HEAD ( ACCESS | META )+>
<!ELEMENT TEMPLATE (%navelmts;)*>
<!ATTLIST TEMPLATE
%cardev;
>
<!ELEMENT ACCESS EMPTY>
<!ATTLIST ACCESS
DOMAIN CDATA #IMPLIED
PATH CDATA #IMPLIED
PUBLIC %boolean; "FALSE"
>
<!ELEMENT META EMPTY>
<!ATTLIST META
HTTP-EQUIV CDATA #IMPLIED
NAME CDATA #IMPLIED
USER-AGENT CDATA #IMPLIED
CONTENT CDATA #REQUIRED
SCHEME CDATA #IMPLIED
>
<!--================ Tasks ================-->
<!ELEMENT GO (VAR)*>
<!ATTLIST GO
URL %URL; #REQUIRED
SENDREFERER %boolean; "FALSE"
METHOD (POST|GET) "GET"
ACCEPT-CHARSET CDATA #IMPLIED
POSTDATA %vdata; #IMPLIED
>
<!ELEMENT PREV (VAR)*>
<!ELEMENT REFRESH (VAR)+>
<!ELEMENT NOOP EMPTY>
<!--================ VAR ================-->
<!ELEMENT VAR EMPTY>
<!ATTLIST VAR
NAME %vdata; #REQUIRED
VALUE %vdata; #REQUIRED
>
<!--================ CARD Fields ================-->
<!ELEMENT SELECT (OPTGROUP|OPTION)+>
<!ATTLIST SELECT
TITLE %vdata; #IMPLIED
KEY NMTOKEN #IMPLIED
DEFAULT %vdata; #IMPLIED
IKEY NMTOKEN #IMPLIED
IDEFAULT %vdata; #IMPLIED
MULTIPLE %boolean; "FALSE"
TABINDEX %number; #IMPLIED
>
<!ELEMENT OPTGROUP (OPTGROUP|OPTION)+ >
<!ATTLIST OPTGROUP
TITLE %vdata; #IMPLIED
>
<!ELEMENT OPTION (%text; | ONEVENT)*>
<!ATTLIST OPTION
VALUE %vdata; #IMPLIED
TITLE %vdata; #IMPLIED
ONCLICK %URL; #IMPLIED
>
<!ELEMENT INPUT EMPTY>
<!ATTLIST INPUT
KEY NMTOKEN #REQUIRED
TYPE (TEXT|PASSWORD) "TEXT"
VALUE %vdata; #IMPLIED
DEFAULT %vdata; #IMPLIED
FORMAT CDATA #IMPLIED
EMPTYOK %boolean; "FALSE"
SIZE %number; #IMPLIED
MAXLENGTH %number; #IMPLIED
TABINDEX %number; #IMPLIED
TITLE %vdata; #IMPLIED
>
<!ELEMENT FIELDSET (%fields;)* >
<!ATTLIST FIELDSET
TITLE %vdata; #IMPLIED
>
<!ELEMENT TIMER EMPTY>
<!ATTLIST TIMER
KEY NMTOKEN #IMPLIED
DEFAULT %vdata; #REQUIRED
>
<!--================ Images ================-->
<!ENTITY % IAlign "(TOP|MIDDLE|BOTTOM)" >
<!ELEMENT IMG EMPTY>
<!ATTLIST IMG
ALT %vdata; #IMPLIED
SRC %URL; #IMPLIED
LOCALSRC %vdata; #IMPLIED
VSPACE %length; "0"
HSPACE %length; "0"
ALIGN %IAlign; "BOTTOM"
HEIGHT %length; #IMPLIED
WIDTH %length; #IMPLIED
>
<!--================ Anchor ================-->
<!ELEMENT A ( %inline; | GO | PREV | REFRESH )*>
<!ATTLIST A
TITLE %vdata; #IMPLIED
>
<!--================ Text layout and line breaks ================-->
<!-- Text alignment attributes -->
<!ENTITY % TAlign "(LEFT|RIGHT|CENTER)" >
<!ELEMENT TAB EMPTY>
<!ATTLIST TAB
ALIGN %TAlign; "LEFT"
>
<!ELEMENT EM (%flow;)*>
<!ELEMENT STRONG (%flow;)*>
<!ELEMENT B (%flow;)*>
<!ELEMENT I (%flow;)*>
<!ELEMENT U (%flow;)*>
<!ELEMENT BIG (%flow;)*>
<!ELEMENT SMALL (%flow;)*>
<!ENTITY % BRMode "(WRAP|NOWRAP)" >
<!ELEMENT BR EMPTY>
<!ATTLIST BR
ALIGN %TAlign; "LEFT"
MODE %BRMode; #IMPLIED
>
<!ENTITY quot """> <!-- quotation mark -->
<!ENTITY amp "&#38;"> <!-- ampersand -->
<!ENTITY apos "'"> <!-- apostrophe -->
<!ENTITY lt "&#60;"> <!-- less than -->
<!ENTITY gt ">"> <!-- greater than -->
<!ENTITY nbsp " "> <!-- non-breaking space -->
<!ENTITY shy "­"> <!-- soft hyphen (discretionary hyphen) -->