<!-- 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 """> <!-- 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) --> <!-- Copyright Wireless Application Protocol Forum Ltd., 1998,1999. All rights reserved. -->
来源: http://www.w3schools.com/wap/wml_dtd.asp