<!--

Wireless Markup Language (WML) Document Type Definition.



Copyright Wireless Application Protocol Forum Ltd., 1998,1999.

                      All rights reserved.  



WML is an XML language.  Typical usage:

   <?xml version="1.0"?>

   <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

          "http://www.wapforum.org/DTD/wml_1.1.xml">

   <wml>

   ...

   </wml>



Terms and conditions of use are available from the Wireless 

Application Protocol Forum Ltd. web site at

http://www.wapforum.org/docs/copyright.htm.

-->



<!ENTITY % length  "CDATA">    <!-- [0-9]+ for pixels or [0-9]+"%" for

                                    percentage length -->

<!ENTITY % vdata   "CDATA">    <!-- attribute value possibly containing

                                    variable references -->

<!ENTITY % HREF    "%vdata;">  <!-- URI, 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 % coreattrs  "id    ID     #IMPLIED 

                       class CDATA  #IMPLIED">



<!ENTITY % emph    "em | strong | b | i | u | big | small">

<!ENTITY % layout  "br">



<!ENTITY % text     "#PCDATA | %emph;">



<!-- flow covers "card-level" elements, such as text and images -->

<!ENTITY % flow     "%text; | %layout; | img | anchor | a | table">



<!-- 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

  %coreattrs;

  >



<!-- card intrinsic events -->

<!ENTITY % cardev

 "onenterforward  %HREF;          #IMPLIED

  onenterbackward %HREF;          #IMPLIED

  ontimer         %HREF;          #IMPLIED"

  >



<!-- card field types -->

<!ENTITY % fields  "%flow; | input | select | fieldset">



<!ELEMENT card (onevent*, timer?, (do | p)*)>

<!ATTLIST card

  title           %vdata;       #IMPLIED

  newcontext      %boolean;     "false"

  ordered         %boolean;     "true"

  xml:lang        NMTOKEN       #IMPLIED

  %cardev;

  %coreattrs;

  >



<!--================ Event Bindings ================-->



<!ELEMENT do (%task;)>

<!ATTLIST do

  type         CDATA       #REQUIRED

  label        %vdata;     #IMPLIED

  name         NMTOKEN     #IMPLIED

  optional     %boolean;   "false"

  xml:lang     NMTOKEN     #IMPLIED

  %coreattrs;

  >



<!ELEMENT onevent (%task;)>

<!ATTLIST onevent

  type         CDATA       #REQUIRED

  %coreattrs;

  >



<!--================ Deck-level declarations ================-->



<!ELEMENT head ( access | meta )+>

<!ATTLIST head

  %coreattrs;

  >



<!ELEMENT template (%navelmts;)*>

<!ATTLIST template

  %cardev;

  %coreattrs;

  >



<!ELEMENT access EMPTY>

<!ATTLIST access

  domain       CDATA       #IMPLIED

  path         CDATA       #IMPLIED

  %coreattrs;

  >



<!ELEMENT meta EMPTY>

<!ATTLIST meta

  http-equiv     CDATA      #IMPLIED

  name           CDATA      #IMPLIED

  forua          %boolean;  #IMPLIED

  content        CDATA      #REQUIRED

  scheme         CDATA      #IMPLIED

  %coreattrs;

  >



<!--================ Tasks ================-->



<!ELEMENT go (postfield | setvar)*>

<!ATTLIST go

  href            %HREF;           #REQUIRED

  sendreferer     %boolean;       "false"

  method          (post|get)      "get"

  accept-charset  CDATA           #IMPLIED

  %coreattrs;

  >



<!ELEMENT prev (setvar)*>

<!ATTLIST prev

  %coreattrs;

  >



<!ELEMENT refresh (setvar)*>

<!ATTLIST refresh

  %coreattrs;

  >



<!ELEMENT noop EMPTY>

<!ATTLIST noop

  %coreattrs;

  >



<!--================ postfield ================-->

 

<!ELEMENT postfield EMPTY>

<!ATTLIST postfield

  name         %vdata;           #REQUIRED

  value        %vdata;           #REQUIRED

  %coreattrs;

  >



<!--================ variables ================-->



<!ELEMENT setvar EMPTY>

<!ATTLIST setvar

  name         %vdata;           #REQUIRED

  value        %vdata;           #REQUIRED

  %coreattrs;

  >



<!--================ Card Fields ================-->



<!ELEMENT select (optgroup|option)+>

<!ATTLIST select

  title        %vdata;           #IMPLIED

  name         NMTOKEN           #IMPLIED

  value        %vdata;           #IMPLIED

  iname        NMTOKEN           #IMPLIED

  ivalue       %vdata;           #IMPLIED

  multiple     %boolean;         "false"

  tabindex     %number;          #IMPLIED

  xml:lang     NMTOKEN           #IMPLIED

  %coreattrs;

  >



<!ELEMENT optgroup (optgroup|option)+ >

<!ATTLIST optgroup

  title      %vdata;    #IMPLIED

  xml:lang   NMTOKEN    #IMPLIED

  %coreattrs;

  >



<!ELEMENT option (#PCDATA | onevent)*>

<!ATTLIST option

  value      %vdata;    #IMPLIED

  title      %vdata;    #IMPLIED

  onpick     %HREF;     #IMPLIED

  xml:lang   NMTOKEN    #IMPLIED

  %coreattrs;

  >



<!ELEMENT input EMPTY>

<!ATTLIST input

  name       NMTOKEN           #REQUIRED

  type       (text|password)   "text"

  value      %vdata;           #IMPLIED

  format     CDATA             #IMPLIED

  emptyok    %boolean;         "false"

  size       %number;          #IMPLIED

  maxlength  %number;          #IMPLIED

  tabindex   %number;          #IMPLIED

  title      %vdata;           #IMPLIED

  xml:lang   NMTOKEN           #IMPLIED

  %coreattrs;

  >



<!ELEMENT fieldset (%fields; | do)* >

<!ATTLIST fieldset

  title           %vdata;      #IMPLIED

  xml:lang        NMTOKEN      #IMPLIED

  %coreattrs;

  >



<!ELEMENT timer EMPTY>

<!ATTLIST timer

  name       NMTOKEN           #IMPLIED

  value      %vdata;           #REQUIRED

  %coreattrs;

  >



<!--================ Images ================-->



<!ENTITY % IAlign "(top|middle|bottom)" >



<!ELEMENT img EMPTY>

<!ATTLIST img

  alt        %vdata;      #REQUIRED

  src        %HREF;       #REQUIRED

  localsrc   %vdata;      #IMPLIED

  vspace     %length;     "0"

  hspace     %length;     "0"

  align      %IAlign;     "bottom"

  height     %length;     #IMPLIED

  width      %length;     #IMPLIED

  xml:lang   NMTOKEN      #IMPLIED

  %coreattrs;

  >



<!--================ Anchor ================-->



<!ELEMENT anchor ( #PCDATA | br | img | go | prev | refresh )*>

<!ATTLIST anchor

  title        %vdata;      #IMPLIED

  xml:lang     NMTOKEN      #IMPLIED

  %coreattrs;

  >



<!ELEMENT a ( #PCDATA | br | img )*>

<!ATTLIST a

  href         %HREF;       #REQUIRED

  title        %vdata;      #IMPLIED

  xml:lang     NMTOKEN      #IMPLIED

  %coreattrs;

  >



<!--================ Tables ================-->



<!ELEMENT table (tr)+>

<!ATTLIST table

  title       %vdata;    #IMPLIED

  align       CDATA      #IMPLIED

  columns     %number;   #REQUIRED

  xml:lang    NMTOKEN    #IMPLIED

  %coreattrs;

  >



<!ELEMENT tr (td)+>

<!ATTLIST tr

  %coreattrs;

  >



<!ELEMENT td ( %text; | %layout; | img | anchor | a )*>

<!ATTLIST td

  xml:lang        NMTOKEN       #IMPLIED

  %coreattrs;

  >



<!--================ Text layout and line breaks ================-->



<!ELEMENT em     (%flow;)*>

<!ATTLIST em

  xml:lang        NMTOKEN       #IMPLIED

  %coreattrs;

  >



<!ELEMENT strong (%flow;)*>

<!ATTLIST strong

  xml:lang        NMTOKEN       #IMPLIED

  %coreattrs;

  >



<!ELEMENT b      (%flow;)*>

<!ATTLIST b

  xml:lang        NMTOKEN       #IMPLIED

  %coreattrs;

  >



<!ELEMENT i      (%flow;)*>

<!ATTLIST i

  xml:lang        NMTOKEN       #IMPLIED

  %coreattrs;

  >



<!ELEMENT u      (%flow;)*>

<!ATTLIST u

  xml:lang        NMTOKEN       #IMPLIED

  %coreattrs;

  >



<!ELEMENT big    (%flow;)*>

<!ATTLIST big

  xml:lang        NMTOKEN       #IMPLIED

  %coreattrs;

  >



<!ELEMENT small  (%flow;)*>

<!ATTLIST small

  xml:lang        NMTOKEN       #IMPLIED

  %coreattrs;

  >



<!ENTITY % TAlign "(left|right|center)">

<!ENTITY % WrapMode "(wrap|nowrap)" >

<!ELEMENT p (%fields; | do)*>

<!ATTLIST p

  align       %TAlign;     "left"

  mode        %WrapMode;   #IMPLIED

  xml:lang    NMTOKEN      #IMPLIED

  %coreattrs;

  >



<!ELEMENT br EMPTY>

<!ATTLIST br

  xml:lang        NMTOKEN       #IMPLIED

  %coreattrs;

  >



<!ENTITY quot  "&#34;">     <!-- quotation mark -->

<!ENTITY amp   "&#38;#38;"> <!-- ampersand -->

<!ENTITY apos  "&#39;">     <!-- apostrophe -->

<!ENTITY lt    "&#38;#60;"> <!-- less than -->

<!ENTITY gt    "&#62;">     <!-- greater than -->

<!ENTITY nbsp  "&#160;">    <!-- non-breaking space -->

<!ENTITY shy   "&#173;">    <!-- soft hyphen (discretionary hyphen) -->



<!--

Copyright Wireless Application Protocol Forum Ltd., 1998,1999.

                      All rights reserved.  

-->

