Faire un site Wap
Le DTD du WML 1.1

A titre d'exemple et d'information voici le DTD Document Type Definition du WML 1.1 .
 
<!-- 
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. -->