%xhtml-lat1; %xhtml-symbol; %xhtml-special; ]> XHTML 1.1, reformulated in XML Schema Author: Masayasu Ishikawa (mimasa@w3.org) $Id: xhtml11-f.xsd,v 1.6 2000/07/11 14:54:09 mimasa Exp $ DISCLAIMER: This schema is at the moment merely an author's personal experiment. Author doesn't guarantee at all whether this schema properly reformulate XHTML 1.1 in XML Schema. This is XHTML, a reformulation of HTML as a modular XML application. Original copyright of DTD: The Extensible HyperText Markup Language (XHTML) Copyright 1998-2000 World Wide Web Consortium (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. Permission to use, copy, modify and distribute the XHTML DTD and its accompanying documentation for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies. The copyright holders make no representation about the suitability of the DTD for any purpose. It is provided "as is" without expressed or implied warranty. Author: Murray M. Altheim (altheim@eng.sun.com) Please use this formal public identifier to identify it: "-//W3C//DTD XHTML 1.1//EN" % XHTML.version "-//W3C//DTD XHTML 1.1//EN" Use this URI to identify the default namespace: "http://www.w3.org/1999/xhtml" Get access to the xml: attribute groups for xml:lang Bidirectional Text features This feature-test entity is used to declare elements and attributes used for bidirectional text support. % XHTML.bidi "INCLUDE" % xhtml-events.module "INCLUDE" XHTML Datatypes Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN" SYSTEM "xhtml-datatypes-1.mod" Datatypes defines containers for the following datatypes, many of these imported from other specifications and standards. Length defined for cellpadding/cellspacing nn for pixels or nn% for percentage length % Length.datatype "CDATA" space-separated list of link types % LinkTypes.datatype "NMTOKENS" single or comma-separated list of media descriptors % MediaDesc.datatype "CDATA" pixel, percentage, or relative % MultiLength.datatype "CDATA" one or more digits (NUMBER) % Number.datatype "CDATA" tabindex attribute specifies the position of the current element in the tabbing order for the current document. This value must be a number between 0 and 32767. User agents should ignore leading zeros. integer representing length in pixels % Pixels.datatype "CDATA" script expression % Script.datatype "CDATA" textual content % Text.datatype "CDATA" Imported Datatypes a single character from [ISO10646] % Character.datatype "CDATA" a character encoding, as per [RFC2045] % Charset.datatype "CDATA" a space separated list of character encodings, as per [RFC2045] % Charsets.datatype "CDATA" media type, as per [RFC2045] % ContentType.datatype "CDATA" comma-separated list of media types, as per [RFC2045] % ContentTypes.datatype "CDATA" date and time information. ISO date format % Datetime.datatype "CDATA" formal public identifier, as per [ISO8879] % FPI.datatype "CDATA" a language code, as per [RFC1766] % LanguageCode.datatype "NMTOKEN" a Uniform Resource Identifier, see [URI] % URI.datatype "CDATA" a space-separated list of Uniform Resource Identifiers, see [URI] % URIs.datatype "CDATA" XHTML Intrinsic Events Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN" SYSTEM "xhtml-events-1.mod" Intrinsic Event Attributes These are the event attributes defined in HTML 4.0, Section 18.2.3 "Intrinsic Events". This module must be instantiated prior to the Attributes Module but after the Datatype Module in the Modular Framework module. "Note: Authors of HTML documents are advised that changes are likely to occur in the realm of intrinsic events (e.g., how scripts are bound to events). Research in this realm is carried on by members of the W3C Document Object Model Working Group (see the W3C Web site at http://www.w3.org/ for more information)." NOTE: Because the ATTLIST declarations in this module occur before their respective ELEMENT declarations in other modules, there may be a dependency on this module that should be considered if any of the parameter entities used for element type names (eg., %foo.qname;) are redeclared. additional attributes on anchor element additional attributes on form element additional attributes on label element additional attributes on input element additional attributes on select element additional attributes on textarea element additional attributes on button element additional attributes on body element additional attributes on area element XHTML Common Attributes Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN" SYSTEM "xhtml-attribs-1.mod" Common Attributes This module declares many of the common attributes for the XHTML DTD. %NS.decl.attrib; is declared in the XHTML Qname module. core attributes common to most elements id document-wide unique id class space separated list of classes title advisory title/amplification internationalization attributes xml:lang language code (as per XML 1.0 spec) dir direction for weak/neutral text Common attribute sets define "Common" type for XHTML XHTML 1.1 Document Model Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" SYSTEM "xhtml11-model-1.mod" XHTML 1.1 Document Model This module describes the groupings of elements that make up common content models for XHTML elements. XHTML has three basic content models: %Inline.mix; character-level elements %Block.mix; block-like elements, eg., paragraphs and lists %Flow.mix; any block or inline elements Any parameter entities declared in this module may be used to create element content models, but the above three are considered 'global' (insofar as that term applies here). The reserved word '#PCDATA' (indicating a text string) is now included explicitly with each element declaration that is declared as mixed content, as XML requires that this token occur first in a content model specification. Extending the Model While in some cases this module may need to be rewritten to accommodate changes to the document model, minor extensions may be accomplished by redeclaring any of the three *.extra; parameter entities to contain extension element types as follows: %Misc.extra; whose parent may be any block or inline element. %Inline.extra; whose parent may be any inline element. %Block.extra; whose parent may be any block element. If used, these parameter entities must be an OR-separated list beginning with an OR separator ("|"), eg., "| a | b | c" All block and inline *.class parameter entities not part of the *struct.class classes begin with "| " to allow for exclusion from mixes. Optional Elements in head "( script | style | meta | link | object )*" Miscellaneous Elements ins and del are used to denote editing changes "| ins | del" script and noscript are used to contain scripts and alternative content "| script | noscript" (not defined in XHTML 1.1) These elements are neither block nor inline, and can essentially be used anywhere in the document body. % Misc.class "%Edit.class; %Script.class; %Misc.extra;" Inline Elements "br | span" "| em | strong | dfn | code | samp | kbd | var | cite | abbr | acronym | q" "| tt | i | b | big | small | sub | sup" "| bdo" "| a" "| img | map | applet | object" "| input | select | textarea | label | button" (not defined in XHTML 1.1) "| ruby" %InlNoRuby.class; includes all inline elements except ruby, used as a component in mixes % InlNoRuby.class "%InlStruct.class; %InlPhras.class; %InlPres.class; %I18n.class; %Anchor.class; %InlSpecial.class; %InlForm.class; %Inline.extra;" %NoRuby.content; includes all inlines except ruby % NoRuby.content "( #PCDATA | %InlNoRuby.class; %Misc.class; )*" %InlNoAnchor.class; includes all non-anchor inlines, used as a component in mixes % InlNoAnchor.class "%InlStruct.class; %InlPhras.class; %InlPres.class; %I18n.class; %InlSpecial.class; %InlForm.class; %Ruby.class; %Inline.extra;" %InlNoAnchor.mix; includes all non-anchor inlines % InlNoAnchor.mix "%InlNoAnchor.class; %Misc.class;" %Inline.class; includes all inline elements, used as a component in mixes % Inline.class "%InlStruct.class; %InlPhras.class; %InlPres.class; %I18n.class; %Anchor.class; %InlSpecial.class; %InlForm.class; %Ruby.class; %Inline.extra;" %Inline.mix; includes all inline elements, including %Misc.class; % Inline.mix "%Inline.class; %Misc.class;" Block Elements In the HTML 4.0 DTD, heading and list elements were included in the %block; parameter entity. The %Heading.class; and %List.class; parameter entities must now be included explicitly on element declarations where desired. "h1 | h2 | h3 | h4 | h5 | h6" "ul | ol | dl" "p | div" "| pre | blockquote | address" "| hr" "| table | form | fieldset" (not defined in XHTML 1.1) %Block.class; includes all block elements, used as an component in mixes % Block.class "%BlkStruct.class; %BlkPhras.class; %BlkPres.class; %BlkSpecial.class; %Block.extra;" %Block.mix; includes all block elements plus %Misc.class; % Block.mix "%Heading.class; | %List.class; | %Block.class; %Misc.class;" All Content Elements %Flow.mix; includes all text content, block and inline % Flow.mix "%Heading.class; | %List.class; | %Block.class; | %Inline.class; %Misc.class;" XHTML Character Entities Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN" SYSTEM "xhtml-charent-1.mod" Character Entities for XHTML This module declares the set of character entities for XHTML, including the Latin 1, Symbol and Special character collections. XML Schema doesn't directly support character entities. To use them, use ENTITY declarations (whether in internal or external DTD subsets) XML-compatible ISO Latin 1 Character Entity Set for XHTML PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-lat1.ent" ISO Math, Greek and Symbolic Character Entity Set for XHTML PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN" SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-symbol.ent" XML-compatible ISO Special Character Entity Set for XHTML PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-special.ent" XHTML Text Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN" SYSTEM "xhtml-text-1.mod" Textual Content The Text module includes declarations for all core text container elements and their attributes. XHTML Inline Structural Module Inline Structural br, span This module declares the elements and their attributes used to support inline-level structural markup. br: forced line break span: generic inline container XHTML Inline Phrasal Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN" SYSTEM "xhtml-inlphras-1.mod" Inline Phrasal abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var This module declares the elements and their attributes used to support inline-level phrasal markup. XHTML Block Structural Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN" SYSTEM "xhtml-blkstruct-1.mod" Block Structural div, p This module declares the elements and their attributes used to support block-level structural markup. XHTML Block Phrasal Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN" SYSTEM "xhtml-blkphras-1.mod" Block Phrasal address, blockquote, pre, h1, h2, h3, h4, h5, h6 This module declares the elements and their attributes used to support block-level phrasal markup. Heading Elements XHTML Hypertext Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN" SYSTEM "xhtml-hypertext-1.mod" Hypertext a This module declares the anchor ('a') element type, which defines the source of a hypertext link. The destination (or link 'target') is identified via its 'id' attribute rather than the 'name' attribute as was used in HTML. XHTML Lists Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN" SYSTEM "xhtml-list-1.mod" Lists dl, dt, dd, ol, ul, li This module declares the list-oriented element types and their attributes. dl: Definition List dt: Definition Term dd: Definition Description define a complexType for lists (suitable for ul and ol) ol: Ordered List (numbered styles) ul: Unordered List (bullet styles) li: List Item XHTML Editing Elements Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Editing Markup 1.0//EN" SYSTEM "xhtml-edit-1.mod" Editing Elements ins, del This module declares element types and attributes used to indicate inserted and deleted content while editing a document. Editing Elements (ins, del) ins: Inserted Text del: Deleted Text XHTML BDO Element Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML BDO Element 1.0//EN" SYSTEM "xhtml-bdo-1.mod" Bidirectional Override (bdo) Element This modules declares the element 'bdo', used to override the Unicode bidirectional algorithm for selected fragments of text. DEPENDENCIES: Relies on the conditional section keyword %XHTML.bidi; declared as "INCLUDE". Bidirectional text support includes both the bdo element and the 'dir' attribute. XHTML Ruby Module This module is based on the W3C Ruby Annotation Specification: http://www.w3.org/TR/ruby This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN" SYSTEM "xhtml-ruby-1.mod" Ruby Elements ruby, rbc, rtc, rb, rt, rp This module declares the elements and their attributes used to support ruby annotation markup. ruby element rbc (ruby base component) element rtc (ruby text component) element rb (ruby base) element %rb.content; uses %NoRuby.content; as its content model, which is '( #PCDATA )' by default. It may be overridden by other modules to allow other inline-level elements of its parent markup language, but it should not include ruby descendent elements. rt (ruby text) element %rt.content; uses %NoRuby.content; as its content model, which is '( #PCDATA )' by default. It may be overridden by other modules to allow other inline-level elements of its parent markup language, but it should not include ruby descendent elements. rbspan attribute is used for group ruby only Note: rbspan attribute is defined to have Number.datatype as attribute value, but it should be xsd:positiveInteger rp (ruby parenthesis) element XHTML Presentation Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN" SYSTEM "xhtml-pres-1.mod" Presentational Elements This module defines elements and their attributes for simple presentation-related markup. XHTML Inline Presentation Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN" SYSTEM "xhtml-inlpres-1.mod" Inline Presentational Elements b, big, i, small, sub, sup, tt This module declares the elements and their attributes used to support inline-level presentational markup. XHTML Block Presentation Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN" SYSTEM "xhtml-blkpres-1.mod" Block Presentational Elements hr This module declares the elements and their attributes used to support block-level presentational markup. XHTML Link Element Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN" SYSTEM "xhtml-link-1.mod" Link element link This module declares the link element type and its attributes, which could (in principle) be used to define document-level links to external resources such as: a) for document specific toolbars/menus, e.g. start, contents, previous, next, index, end, help b) to link to a separate style sheet (rel="stylesheet") c) to make a link to a script (rel="script") d) by stylesheets to control how collections of html nodes are rendered into printed documents e) to make a link to a printable version of this document e.g. a postscript or pdf version (rel="alternate" media="print") link: Media-Independent Link XHTML Document Metainformation Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN" SYSTEM "xhtml-meta-1.mod" Meta Information meta This module declares the meta element type and its attributes, used to provide declarative document metainformation. meta: Generic Metainformation XHTML Base Element Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN" SYSTEM "xhtml-base-1.mod" Base element base This module declares the base element type and its attributes, used to define a base URI against which relative URIs in the document will be resolved. Note that this module also redeclares the content model for the head element to include the base element. base: Document Base URI % head.content "( %HeadOpts.mix;, ( ( title, %HeadOpts.mix;, ( base, %HeadOpts.mix; )? ) | ( base;, %HeadOpts.mix;, ( title, %HeadOpts.mix; ))))" Note: object and script should be equivalents of HeadOpts.mix, but they're equivalents of InlSpecial.class and Script.class respectively, so they cannot be equivalents of HeadOpts.mix XHTML Document Scripting Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN" SYSTEM "xhtml-script-1.mod" Scripting script, noscript This module declares element types and attributes used to provide support for executable scripts as well as an alternate content container where scripts are not supported. script: Scripting Statement noscript: No-Script Alternate Content The content is html:Block.mix, but minOccurs is set to "1" XHTML Document Stylesheet Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//DTD XHTML Stylesheets 1.0//EN" SYSTEM "xhtml-style-1.mod" Stylesheets style This module declares the style element type and its attributes, used to embed stylesheet information in the document head element. style: Stylesheet Information Image Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN" SYSTEM "xhtml-image-1.mod" Images img This module provides markup to support basic image embedding. To avoid problems with text-only UAs as well as to make image content understandable and navigable to users of non-visual UAs, you need to provide a description with the 'alt' attribute, and avoid server-side image maps. XHTML Client-side Image Map Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN" SYSTEM "xhtml-csismap-1.mod" Client-side Image Maps area, map This module declares elements and attributes to support client-side image maps. This requires that the Image Module (or a module declaring the img element type) be included in the DTD. These can be placed in the same document or grouped in a separate document, although the latter isn't widely supported % Shape "(rect|circle|poly|default)" modify anchor attribute definition list to allow for client-side image maps modify img attribute definition list to allow for client-side image maps modify form input attribute definition list to allow for client-side image maps modify object attribute definition list to allow for client-side image maps 'usemap' points to the 'id' attribute of a MAP element, which must be in the same document; support for external document maps was not widely supported in HTML and is eliminated in XHTML. It is considered an error for the element pointed to by a usemap IDREF to occur in anything but a map element. XHTML Server-side Image Map Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN" SYSTEM "xhtml-ssismap-1.mod" Server-side Image Maps This adds the 'ismap' attribute to the img element to support server-side processing of a user selection. XHTML Param Element Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN" SYSTEM "xhtml-param-1.mod" Parameters for Java Applets and Embedded Objects param This module provides declarations for the param element, used to provide named property values for the applet and object elements. param: Named Property Value XHTML Java Applet Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Java Applets 1.0//EN" SYSTEM "xhtml-applet-1.mod" Java Applets applet This module declares the applet element type and its attributes, used to provide support for Java applets. The 'alt' attribute is now required (as it is on images). One of either code or object attributes must be present. In the document, place param elements before the object elements that require their content. Note that use of this module requires instantiation of the Param Element Module prior to this module. applet: Java Applet content model is "( param | %Flow.mix; )*" XHTML Embedded Object Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN" SYSTEM "xhtml-object-1.mod" Embedded Objects object This module declares the object element type and its attributes, used to embed external objects as part of XHTML pages. In the document, place param elements prior to the object elements that require their content. Note that use of this module requires instantiation of the Param Element Module prior to this module. object: Generic Embedded Object content model is "( #PCDATA | %Flow.mix; | param )*" XHTML Table Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN" SYSTEM "xhtml-table-1.mod" Tables table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td This module declares element types and attributes used to provide table markup similar to HTML 4.0, including features that enable better accessibility for non-visual user agents. The frame attribute specifies which parts of the frame around the table should be rendered. The values are not the same as CALS to avoid a name clash with the valign attribute. % frame.attrib "frame ( void | above | below | hsides | lhs | rhs | vsides | box | border ) #IMPLIED" The rules attribute defines which rules to draw between cells: If rules is absent then assume: "none" if border is absent or border="0" otherwise "all" % rules.attrib "rules ( none | groups | rows | cols | all ) #IMPLIED" horizontal alignment attributes for cell contents % CellHAlign.attrib "align ( left | center | right | justify | char ) #IMPLIED char %Character.datatype; #IMPLIED charoff %Length.datatype; #IMPLIED" vertical alignment attribute for cell contents % CellVAlign.attrib "valign ( top | middle | bottom | baseline ) #IMPLIED" scope is simpler than axes attribute for common tables % scope.attrib "scope ( row | col | rowgroup | colgroup ) #IMPLIED" table: Table Element % table.content "( caption?, ( col* | colgroup* ), (( thead?, tfoot?, tbody+ ) | ( tr+ )))" caption: Table Caption define a complexType for row groups (thead, tfoot, tbody) thead: Table Header Use thead to duplicate headers when breaking table across page boundaries, or for static headers when tbody sections are rendered in scrolling panel. tfoot: Table Footer Use tfoot to duplicate footers when breaking table across page boundaries, or for static footers when tbody sections are rendered in scrolling panel. tbody: Table Body Use multiple tbody sections when rules are needed between groups of table rows. colgroup: Table Column Group colgroup groups a set of col elements. It allows you to group several semantically-related columns together. col: Table Column col elements define the alignment properties for cells in one or more columns. The width attribute specifies the width of the columns, e.g. width="64" width in screen pixels width="0.5*" relative width of 0.5 The span attribute causes the attributes of one col element to apply to more than one column. tr: Table Row define a complexType for table cells (th and td) th is for header cells, td for data, but for cells acting as both use td attribute value for rowspan and colspan attributes is defined as Number.datatype (= xsd:nonNegativeInteger) in DTD, but it should be xsd:positiveInteger th: Table Header Cell td: Table Data Cell XHTML Forms Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN" SYSTEM "xhtml-form-1.mod" Forms form, label, input, select, optgroup, option, textarea, fieldset, legend, button This module declares markup to provide support for online forms, based on the features found in HTML 4.0 forms. %BlkNoForm.mix; includes all non-form block elements, plus %Misc.class; % BlkNoForm.mix "%Heading.class; | %List.class; | %BlkStruct.class; %BlkPhras.class; %BlkPres.class; | table %Block.extra; %Misc.class;" form: Form Element % form.content "( %BlkNoForm.mix; | fieldset )+" label: Form Field Label Text Each label must not contain more than ONE field % InputType.class "( text | password | checkbox | radio | submit | reset | file | hidden | image | button )" input: Form Control attribute value for maxlength attribute is defined as Number.datatype (= xsd:nonNegativeInteger) in DTD, but it should be xsd:positiveInteger select: Option Selector optgroup: Option Group option: Selectable Choice textarea: Multi-Line Text Field fieldset: Form Control Group #PCDATA is to solve the mixed content problem, per specification only whitespace is allowed % fieldset.content "( #PCDATA | legend | %Flow.mix; )*" legend: Fieldset Legend % button.content "( #PCDATA | %BlkNoForm.mix; | %InlStruct.class; %InlPhras.class; %InlPres.class; %I18n.class; %InlSpecial.class; %Inline.extra; )*" button: Push Button XHTML Structure Module This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN" SYSTEM "xhtml-struct-1.mod" Document Structure title, head, body, html The Structure Module defines the major structural elements and their attributes. Note that the content model of the head element type is redeclared when the Base Module is included in the DTD. title: Document Title The title element is not considered part of the flow of text. It should be displayed, for example as the page header or window title. Exactly one title is required per document. head: Document Head Note: profile attribute is defined to have %XHTML.profile; as default value, but for the moment it's defined to be optional The content is html:Block.mix, but minOccurs is set to "1" body: Document Body html: XHTML Document Element