W3C

XHTML 1.1 - Module-based XHTML

W3C Working Draft 10 September 1999

This version:
http://www.w3.org/TR/1999/WD-xhtml11-19990910
(Postscript version, PDF version, ZIP archive, or Gzip'd TAR archive)
Latest version:
http://www.w3.org/TR/xhtml11
Previous version:
http://www.w3.org/TR/1999/xhtml-modularization-19990406/
Editors:
Murray Altheim, Sun Microsystems
Shane McCarron, Applied Testing and Technology

Abstract

This working draft defines a new XHTML document type that is based solely upon the module framework defined in Building XHTML Modules [BUILDING] and the modules defined in Modularization of XHTML [XHTMLMOD]. The purpose of this document type is to serve as the basis for future extended XHTML family document types, and to provide a consistent, forward looking document type cleanly separated from the deprecated, legacy function of HTML 4.0 [HTML40] that was brought forward into XHTML 1.0 [XHTML1] document types. Note that the materials in this document were formerly part of the Modularization of XHTML document, but have been separated out for editorial purposes.

Status of this document

This document is a working draft of the W3C's HTML Working Group. This working draft may be updated, replaced or rendered obsolete by other W3C documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". This document is work in progress and does not imply endorsement by the W3C membership.

This document has been produced as part of the W3C HTML Activity. The goals of the HTML Working Group (members only) are discussed in the HTML Working Group charter (members only).

Please send detailed comments on this document to www-html-editor@w3.org. We cannot guarantee a personal response, but we will try when it is appropriate. Public discussion on HTML features takes place on the mailing list www-html@w3.org.

Note that, as this is a work in progress, text is frequently added to the document that has not yet been reviewed by the working group. Such text is marked using the class "new", with an appearance like this. Text delimited with class "new" is submitted for consideration by the working group, and necessarily has a lesser status than the text in the remainder of the document. [This technique was agreed at the 5 May 1999 teleconference of the working group.]

Quick Table of Contents

Full Table of Contents

1. Introduction

This section is normative.

With the introduction of the XHTML family of modules and document types, the W3C has helped move the Internet content-development community from the days of malformed, non-standard markup into the well formed, valid world of XML. In XHTML 1.0, this move was moderated by a goal of providing for easy migration of existing, HTML 4.0 (or earlier) based content to XHTML and XML. With the advent of the XHTML modules defined in Modularization of XHTML, the W3C has removed support for deprecated elements and attributes from the XHTML family. These elements and attributes were largely presentation oriented functionality that is better handled via style-sheets or client-specific default behavior.

Going forward, XHTML family document types will be based upon this new, more structural functional collection. In this specification, the W3C's HTML Working Group has defined an initial document type based upon solely upon XHTML modules. This document type is designed to be portable to a broad collection of potential client devices, and applicable to the majority of Internet content. Content developers who based their content upon the functionality expressed in this specification can be confident that it will be consistently portable across XHTML family conforming user agents.

2. Terms and Definitions

This section is informative.

While some terms are defined in place, the following definitions are used throughout this document. Familiarity with the W3C Modularization of XHTML specification[XML] is highly recommended.

document type
a class of documents sharing a common abstract structure. The ISO 8879 [SGML] definition is as follows: "a class of documents having similar characteristics; for example, journal, article, technical manual, or memo. (4.102)"
document model
the effective structure and constraints of a given document type. The document model constitutes the abstract representation of the physical or semantic structures of a class of documents.
markup model
the markup vocabulary (ie., the gamut of element and attribute names, notations, etc.) and grammar (ie., the prescribed use of that vocabulary) as defined by a document type definition (ie., a schema) The markup model is the concrete representation in markup syntax of the document model, and may be defined with varying levels of strict conformity. The same document model may be expressed by a variety of markup models.
document type definition (DTD)
a formal, machine-readable expression of the XML structure and syntax rules to which a document instance of a specific document type must conform; the schema type used in XML 1.0 to validate conformance of a document instance to its declared document type. The same markup model may be expressed by a variety of DTDs.
reference DTD
a DTD whose markup model represents the foundation of a complete document type. A reference DTD provides the basis for the design of a "family" of related DTDs, such as subsets, extensions and variants.
subset DTD
a DTD whose document model is the proper subset of a reference document type, whose conforming document instances are still valid according to the reference DTD. A subset may place tighter restrictions on the markup than the reference, remove elements or attributes, or both.
extension DTD
a DTD whose document model extends a reference document type (usually by the addition of element types or attributes), but generally makes no profound changes to the reference document model other than required to add the extension's semantic components. An extension can also be considered a proper superset if the reference document type is a proper subset of the extension.
variant DTD
a DTD whose document model alters (through subsetting, extension, and/or substitution) the basic data model of a reference document type. It is often difficult to transform without loss between instances conforming to a variant DTD and the reference DTD.
fragment DTD
a portion of a DTD used as a component either for the creation of a compound or variant document type, or for validation of a document fragment. SGML nor XML current have standardized methods for such partial validation.
content model
the declared markup structure allowed within instances of an element type. XML 1.0 differentiates two types: elements containing only element content (no character data) and mixed content (elements that may contain character data optionally interspersed with child elements). The latter are characterized by a content specification beginning with the "#PCDATA" string (denoting character data).
abstract module
a unit of document type specification corresponding to a distinct type of content, corresponding to a markup construct reflecting this distinct type.
element type
the definition of an element, that is, a container for a distinct semantic class of document content.
element
an instance of an element type.
generic identifier
the name identifying the element type of an element. Also, element type name.
tag
descriptive markup delimiting the start and end (including its generic identifier and any attributes) of an element.
markup declaration
a syntactical construct within a DTD declaring an entity or defining a markup structure. Within XML DTDs, there are four specific types: entity declaration defines the binding between a mnemonic symbol and its replacement content. element declaration constrains which element types may occur as descendants within an element. See also content model. attribute definition list declaration defines the set of attributes for a given element type, and may also establish type constraints and default values. notation declaration defines the binding between a notation name and an external identifier referencing the format of an unparsed entity
entity
an entity is a logical or physical storage unit containing document content. Entities may be composed of parse-able XML markup or character data, or unparsed (ie., non-XML, possibly non-textual) content. Entity content may be either defined entirely within the document entity ("internal entities") or external to the document entity ("external entities"). In parsed entities, the replacement text may include references to other entities.
entity reference
a mnemonic or numeric string used as a reference to the content of a declared entity (eg., "&amp;" for "&", "&#60;" for "<", "&copy;" for "Copyright 1999 Sun Microsystems, Inc.")
instantiate
to replace an entity reference with an instance of its declared content.
parameter
entity an entity whose scope of use is within the document prolog (ie., the external subset/DTD or internal subset). Parameter entities are disallowed within the document instance.
module
an abstract unit within a document model expressed as a DTD fragment, used to consolidate markup declarations to increase the flexibility, modifiability, reuse and understanding of specific logical or semantic structures.
modularization
an implementation of a modularization model; the process of composing or de-composing a DTD by dividing its markup declarations into units or groups to support specific goals. Modules may or may not exist as separate file entities (ie., the physical and logical structures of a DTD may mirror each other, but there is no such requirement).
modularization model
the abstract design of the document type definition (DTD) in support of the modularization goals, such as reuse, extensibility, expressiveness, ease of documentation, code size, consistency and intuitiveness of use. It is important to note that a modularization model is only orthogonally related to the document model it describes, so that two very different modularization models may describe the same document type.
driver
a generally short file used to declare and instantiate the modules of a DTD. A good rule of thumb is that a DTD driver contains no markup declarations that comprise any part of the document model itself.
parent document type
A parent document type of a compound document is the document type of the root element.
compound document
A compound document is a document that uses more than one XML Namespace. Compound documents may be defined as documents that contain elements or attributes from multiple document types.
module
A module is a collection of elements or attributes.

3. Conformance Definition

This section is normative.

3.1. Document Conformance

This version of XHTML provides a definition of strictly conforming XHTML documents, which are restricted to tags and attributes from the XHTML 1.1 namespace.

3.1.1. Strictly Conforming Documents

A Strictly Conforming XHTML 1.1 Document is a document that requires only the facilities described as mandatory in this specification. Such a document must meet all of the following criteria:

  1. It must validate against the DTD found in Appendix B.

  2. The root element of the document must be <html>.

  3. The root element of the document must designate the XHTML 1.1 namespace using the xmlns attribute [XMLNAMES]. The namespace designator for XHTML 1.1 is http://www.w3.org/TR/xhtml11.

  4. There must be a DOCTYPE declaration in the document prior to the root element. If present, the public identifier included in the DOCTYPE declaration must reference the DTD found in Appendix B using its Formal Public Identifier. The system identifier may be modified appropriately.

    <!DOCTYPE
     html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    

XHTML 1.1 Documents may be labeled with the Internet Media Type text/xml or application/xml.

Here is an example of a minimal XHTML 1.1 document.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/TR/xhtml11/schema" xml:lang="en" lang="en">
  <head>
    <title>Virtual Library</title>
  </head>
  <body>
    <p>Moved to <a href="http://vlib.org/">vlib.org</a>.</p>
  </body>
</html>

Note that in this example, the XML declaration is included. An XML declaration like the one above is not required in all XML documents. XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16.

3.2. User Agent Conformance

A conforming user agent must meet all of the following criteria:

  1. In order to be consistent with the XML 1.0 Recommendation [XML], the user agent must parse and evaluate an XHTML document for well-formedness. If the user agent claims to be a validating user agent, it must also validate documents against their referenced DTDs according to [XML].
  2. When the user agent claims to support facilities defined within this specification or required by this specification through normative reference, it must do so in ways consistent with the facilities' definition.
  3. When a user agent processes a document of Internet media type text/xml, it shall only recognize attributes of type ID (e.g. the id attribute on most XHTML elements) as fragment identifiers.
  4. If a user agent encounters an element it does not recognize, it must render the element's content.
  5. If a user agent encounters an attribute it does not recognize, it must ignore the entire attribute specification (i.e., the attribute and its value).
  6. If a user agent encounters an attribute value it doesn't recognize, it must use the default attribute value.
  7. If it encounters an entity reference (other than one of the predefined entities) for which the User Agent has processed no declaration (which could happen if the declaration is in the external subset which the User Agent hasn't read), the entity reference should be rendered as the characters (starting with the ampersand and ending with the semi-colon) that make up the entity reference.
  8. When rendering content, User Agents that encounter characters or character entity references that are recognized but not renderable should display the document in such a way that it is obvious to the user that normal rendering has not taken place.
  9. XML does not specifically define whitespace handling characteristics for elements where the xml:space attribute is set to default. For all such elements, XHTML User Agents are required to suppress line breaks occurring immediately after the start tag or immediately prior to the end tag.

4. The XHTML 1.1 Document Type

This section is normative.

The XHTML 1.1 document type is a fully functional document type with rich semantics. It is not, however, as varied in functionality as the XHTML 1.0 Transitional or Frameset document types. These document types defined many presentational components that are better handled through style sheets or other, similar mechanisms. Moreover, since the XHTML 1.1 document type is based exclusively upon the facilities defined in the XHTML Modules, it does not contain any of the deprecated functionality of XHTML 1.0 nor of HTML 4.0. Despite these exceptions, or perhaps because of them, the XHTML 1.1 document type is a solid basis for future document types that are targeted at varied user agent environments.

The XHTML 1.1 document type is made up of the following modules: Structure, Basic Text, Hypertext, List, Applet, Presentation, Edit, BDO, Forms, Tables, Image, Image Map, Intrinsic Events, Metainformation, Scripting, Stylesheet, Link. There are no additional definitions required by this document type. An implementation of this document type as an XML DTD is defined in Appendix B.

A. References

This appendix is normative.

A.1. Normative References

[HTML40]
HTML 4.0 Specification: W3C Recommendation, Dave Raggett, Arnaud Le Hors, Ian Jacobs, 24 April 1998.
See: http://www.w3.org/TR/REC-html40
[XHTML1]
Extensible HTML (XHTML) 1.0: W3C Working Draft, Steven Pemberton, et. al., 4 March 1999.
See: http://www.w3.org/TR/WD-html-in-xml
[XHTMLMOD]
Modularization of XHTML, Shane P. McCarron, et. al.
See: http://www.w3.org/TR/xhtml-modularization
[XML]
Extensible Markup Language (XML) 1.0: W3C Recommendation, Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, 10 February 1998.
See: http://www.w3.org/TR/REC-xml
[BUILDING]
Building XHTML Modules, Murray Altheim, Shane P. McCarron, 09 September 1999.
See: http://www.w3.org/TR/xhtml-building
[SGML]
Information Processing -- Text and Office Systems -- Standard Generalized Markup Language (SGML), ISO 8879:1986.
Please consult http://www.iso.ch/cate/d16387.html for information about the standard, or http://www.oasis-open.org/cover/general.html#overview about SGML.

A.2. Informative References

[CATALOG]
Entity Management: OASIS Technical Resolution 9401:1997 (Amendment 2 to TR 9401) Paul Grosso, Chair, Entity Management Subcommittee, SGML Open, 10 September 1997.
See: http://www.oasis-open.org/html/a401.htm
[DEVDTD]
Developing SGML DTDs: From Text to Model to Markup, Eve Maler and Jeanne El Andaloussi.
Prentice Hall PTR, 1996, ISBN 0-13-309881-8.
[DOCBOOK]
DocBook DTD, Eve Maler and Terry Allen.
Originally created under the auspices of the Davenport Group, DocBook is now maintained by OASIS. The Customizer's Guide for the DocBook DTD V2.4.1 is available from this site.
See: http://www.oasis-open.org/docbook/index.html
[DUBLIN]
The Dublin Core: A Simple Content Description Model for Electronic Resources, The Dublin Core Metadata Initiative.
See: http://purl.oclc.org/dc/
[HTML32]
HTML 3.2 Reference Specification: W3C Recommendation, Dave Raggett, 14 January 1997.
See: http://www.w3.org/TR/REC-html32
[ISO-HTML]
ISO/IEC 15445:1998 HyperText Markup Language (HTML), David M. Abrahamson and Roger Price.
See: http://dmsl.cs.uml.edu/15445/FinalCD.html
[RDF]
Resource Description Framework (RDF): Model and Syntax Specification, Ora Lassila and Ralph R. Swick, 19 August 1998.
See: http://www.w3.org/TR/PR-rdf-syntax
[SMIL]
Synchronized Multimedia Integration Language (SMIL) 1.0 Specification, Philipp Hoschka, 15 June 1998.
See: http://www.w3.org/TR/REC-smil
[STRUCTXML]
Structuring XML Documents, David Megginson. Part of the Charles Goldfarb Series on Information Management.
Prentice Hall PTR, 1998, ISBN 0-13-642299-3.
[SGML-XML]
Comparison of SGML and XML: W3C Note, James Clark, 15 December 1997.
See: http://www.w3.org/TR/NOTE-sgml-xml-971215
[XLINK]
XML Linking Language (XLink): W3C Working Draft, Eve Maler and Steve DeRose, 3 March 1998.
A new XLink requirements document is expected soon, followed by a working draft update.
See: http://www.w3.org/TR/WD-xlink
[TEI]
The Text Encoding Initiative (TEI)
See: http://www.uic.edu/orgs/tei/
[URI]
Uniform Resource Identifiers (URI): Generic Syntax, T. Berners-Lee, R. Fielding, L. Masinter, August 1998.
See: http://www.ietf.org/rfc/rfc2396.txt. This RFC updates RFC >1738 [URL] and [RFC1808].
[URL]
IETF RFC 1738, Uniform Resource Locators (URL), T. Berners-Lee, L. Masinter, M. McCahill.
See: http://www.ietf.org/rfc/rfc1738.txt
[RFC-1808]
Relative Uniform Resource Locators, R. Fielding.
See: http://www.ietf.org/rfc/rfc1808.txt
[CC/PP]
"Composite Capability/Preference Profiles (CC/PP): A user side framework for content negotiation", F. Reynolds, J. Hjelm, S. Dawkins, S. Singhal, 30 November 1998.
This document describes a method for using the Resource Description Format (RDF) to create a general, yet extensible framework for describing user preferences and device capabilities. Servers can exploit this to customize the service or content provided.
Available at: http://www.w3.org/TR/NOTE-CCPP
[CSS2]
"Cascading Style Sheets, level 2 (CSS2) Specification", B. Bos, H. W. Lie, C. Lilley, I. Jacobs, 12 May 1998.
Available at: http://www.w3.org/TR/REC-CSS2
[DOM]
"Document Object Model (DOM) Level 1 Specification", Lauren Wood et al., 1 October 1998.
Available at: http://www.w3.org/TR/REC-DOM-Level-1
[ERRATA]
"HTML 4.0 Specification Errata".
This document lists the errata for the HTML 4.0 specification.
Available at: http://www.w3.org/MarkUp/html40-updates/REC-html40-19980424-errata.html
[HTML]
"HTML 4.0 Specification", D. Raggett, A. Le Hors, I. Jacobs, 18 December 1997, revised 24 April 1998.
Available at: http://www.w3.org/TR/REC-html40
[POSIX.1]
"ISO/IEC 9945-1:1990 Information Technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language]", Institute of Electrical and Electronics Engineers, Inc, 1990.
[RFC2119]
"RFC2119: Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, March 1997.
Available at: http://www.ietf.org/rfc/rfc2119.txt
[RFC2376]
"RFC2376: XML Media Types", E. Whitehead, M. Murata, July 1998.
Available at: http://www.ietf.org/rfc/rfc2376.txt
[RFC2396]
"RFC2396: Uniform Resource Identifiers (URI): Generic Syntax", T. Berners-Lee, L. Masinter, August 1998.
This document updates RFC1738 and RFC1808.
Available at: http://www.ietf.org/rfc/rfc2396.txt
[TIDY]
"HTML Tidy" is a tool for detecting and correcting a wide range of markup errors prevalent in HTML. It can also be used as a tool for converting existing HTML content to be well formed XML. Tidy is being made available on the same terms as other W3C sample code, i.e. free for any purpose, and entirely at your own risk.
It is available from: http://www.w3.org/Status.html#TIDY
[XMLNAMES]
"Namespaces in XML", T. Bray, D. Hollander, A. Layman, 14 January 1999.
XML namespaces provide a simple method for qualifying names used in XML documents by associating them with namespaces identified by URI.
Available at: http://www.w3.org/TR/REC-xml-names
[XMLSTYLE]
"Associating stylesheets with XML documents Version 1.0", J. Clark, 14 January 1999.
This document describes a means for a stylesheet to be associated with an XML document by including one or more processing instructions with a target of xml-stylesheet in the document's prolog.
Available at: http://www.w3.org/TR/PR-xml-stylesheet
[FRMWRK]
"Protocol-independent content negotiation framework", Klyne G., 16 February 1999.
See: http://www.ietf.org/internet-drafts/draft-ietf-conneg-requirements-02.txt
[SYNTAX]
"A syntax for describing media feature sets", Klyne G., 14 December 1998.
See http://www.ietf.org/internet-drafts/draft-ietf-conneg-feature-syntax-04.txt
[URLSYN]
"Syntax extensions for abbreviating media feature sets with URLs", Newman W., 26 February 1999.
See http://www.ietf.org/internet-drafts/draft-ietf-conneg-feature-sets-at-urls-00.txt
[XMLMOD]
"XML Modularization of HTML 4.0", M. Altheim, Sun Microsystems, 2 February 1999
See http://www.altheim.com/specs/xhtml/NOTE-xhtml-modular.html
[REC FRAG]
XML Fragment Interchange - Working Draft Paul Grosso, et. al., 3 March, 1999
See: http://www.w3.org/TR/WD-xml-fragment
[TC9601]
SGML standard Technical Corrigendum 9601 Paul Grosso??
See:
[MSIE5]
Microsoft Internet Explorer Version 5.0
See: http://www.microsoft.com/windows/ie/ie5/default.asp
[XSCHEMA]
XML Schema Requirements - W3C Note Ashok Malhotra, et. al., 15 February 1999
See: http://www.w3.org/TR/1999/NOTE-xml-schema-req-19990215

B. XHTML 1.1 Document Type Definition

This appendix is normative.

B.1. SGML Open Catalog Entry for XHTML 1.1

This section contains the SGML Open Catalog-format definition of the XHTML 1.1 FPI.

-- .......................................................................... --
-- File catalog  ............................................................ --

--  XHTML 1.1 Catalog Data File

    Revision:  @(#)xhtml11.cat 1.8 99/08/26 SMI

    This is the catalog data file for various versions of the XHTML DTD.
    You do not need to use the file names listed here, and do not need 
    to use the filename method of identifying storage objects at all.

    See "Entity Management", SGML Open Technical Resolution 9401 for detailed
    information on supplying and using catalog data. This document is available
    from OASIS at URL:

        <http://www.oasis-open.org/cover/tr9401.html>
--

-- .......................................................................... --
-- SGML declaration associated with XHTML  .................................. --

OVERRIDE YES

-- SGMLDECL "xml1.dcl" --

-- for use with non-Unicode compatible parsers: --
SGMLDECL "xml1n.dcl"

-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --

-- XHTML 1.1 DTD modular driver file  ....................................... --

PUBLIC "-//W3C//DTD XHTML 1.1//EN"                                "xhtml11.dtd"

-- XHTML 1.1 framework modules .............................................. --

PUBLIC "-//W3C//ENTITIES XHTML 1.1 Modular Framework 1.0//EN"     "xhtml11-framework-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Datatypes 1.0//EN"             "xhtml11-datatypes-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Common Attributes 1.0//EN"     "xhtml11-attribs-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"        "xhtml11-model-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Character Entities 1.0//EN"    "xhtml11-charent-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Redeclarations 1.0//EN"        "xhtml11-redecl-1.mod"

-- XHTML 1.1 modules ........................................................ --

PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Document Structure 1.0//EN"    "xhtml11-struct-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Text 1.0//EN"            "xhtml11-text-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Hypertext 1.0//EN"             "xhtml11-hypertext-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Lists 1.0//EN"                 "xhtml11-list-1.mod"

PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Java Applets 1.0//EN"          "xhtml11-applet-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Presentation 1.0//EN"          "xhtml11-pres-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Editing Elements 1.0//EN"      "xhtml11-edit-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 BIDI Override Element 1.0//EN" "xhtml11-bdo-1.mod" 
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Forms 1.0//EN"           "xhtml11-formb-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Forms 1.0//EN"                 "xhtml11-form-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Tables 1.0//EN"          "xhtml11-tableb-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Tables 1.0//EN"                "xhtml11-table-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Images 1.0//EN"                "xhtml11-image-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Client-side Image Maps 1.0//EN" "xhtml11-csismap-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Server-side Image Maps 1.0//EN" "xhtml11-ssismap-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Intrinsic Events 1.0//EN"      "xhtml11-events-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Metainformation 1.0//EN"       "xhtml11-meta-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Scripting 1.0//EN"             "xhtml11-script-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Stylesheets 1.0//EN"           "xhtml11-style-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Link Element 1.0//EN"          "xhtml11-link-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Base Element 1.0//EN"          "xhtml11-base-1.mod"

PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Inline Structural 1.0//EN"     "xhtml11-inlstruct-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Inline Presentation 1.0//EN"   "xhtml11-inlpres-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Inline Phrasal 1.0//EN"        "xhtml11-inlphras-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Block Structural 1.0//EN"      "xhtml11-blkstruct-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Block Presentation 1.0//EN"    "xhtml11-blkpres-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Block Phrasal 1.0//EN"         "xhtml11-blkphras-1.mod"

PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Object Element 1.0//EN"        "xhtml1-object-1.mod" 
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Frames 1.0//EN"                "xhtml1-frames-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Frame Element 1.0//EN"  "xhtml1-iframe-1.mod"

-- XHTML 1.1 entity sets  ................................................... --

PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"                   "xhtml-lat1.ent"
PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"                   "xhtml-special.ent"
PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"                   "xhtml-symbol.ent"

-- End of catalog data  ..................................................... --
-- .......................................................................... --


B.2. XHTML 1.1 Driver

This section contains the driver for the XHTML 1.1 document type implementation as an XML DTD. It relies upon XHTML module implementations defined in XHTML 1.1 Module Implementations.

<!-- ....................................................................... -->
<!-- XHTML 1.1 DTD  ........................................................ -->
<!-- file: xhtml11.dtd
-->

<!-- XHTML 1.1 DTD

     This is XHTML 1.1, a modular variant of XHTML 1.0.

     Copyright 1998-1999 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 1.1 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>
        Revision:   @(#)xhtml11.dtd 1.10 99/08/26 SMI

-->
<!-- This is the driver file for version 1.1 of the XHTML DTD.

     Please use this formal public identifier to identify it:

         "-//W3C//DTD XHTML 1.1//EN"

     Please use this URI to identify the default namespace:

         "http://www.w3.org/TR/xhtml1"

     For example, if you are using XHTML 1.1 directly, use the FPI
     in the DOCTYPE declaration, with the xmlns attribute on the
     document element to identify the default namespace:

         <?xml version="1.0"?>
         <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
                               "xhtml11.dtd" >
         <html xmlns="http://www.w3.org/TR/xhtml1"
               xmlns:xlink="http://www.w3.org/XML/XLink/0.9"
               xml:lang="en" >
         ...
         </html>

     Revisions:
     (none)
-->

<!-- The xmlns attribute on <html> identifies the
     default namespace to namespace-aware applications:
-->
<!ENTITY % XHTML.ns  "http://www.w3.org/TR/xhtml1" >

<!-- reserved for future use with document profiles -->
<!ENTITY % XHTML.profile  "" >

<!-- Internationalization features
     This feature-test entity is used to declare elements
     and attributes used for internationalization support.
-->
<!ENTITY % XHTML.I18n            "INCLUDE" >

<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!-- Redeclaration placeholder  .................................. -->
<!ENTITY % xhtml-redecl.module "IGNORE" >
<![%xhtml-redecl.module;[
%xhtml-redecl.mod;]]>

<!ENTITY % xhtml-events.module "INCLUDE" >

<!-- Modular Framework Module  ................................... -->
<!ENTITY % xhtml-framework.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Modular Framework 1.0//EN"
            "xhtml11-framework-1.mod" >
%xhtml-framework.mod;

<!-- Basic Text Module (Required)  ............................... -->
<!ENTITY % xhtml-text.module "INCLUDE" >
<![%xhtml-text.module;[
<!ENTITY % xhtml-text.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Text 1.0//EN"
            "xhtml11-text-1.mod" >
%xhtml-text.mod;]]>

<!-- Hypertext Module (required) ................................. -->
<!ENTITY % xhtml-hypertext.module "INCLUDE" >
<![%xhtml-hypertext.module;[
<!ENTITY % xhtml-hypertext.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Hypertext 1.0//EN"
            "xhtml11-hypertext-1.mod" >
%xhtml-hypertext.mod;]]>

<!-- Lists Module (required)  .................................... -->
<!ENTITY % xhtml-list.module "INCLUDE" >
<![%xhtml-list.module;[
<!ENTITY % xhtml-list.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Lists 1.0//EN"
            "xhtml11-list-1.mod" >
%xhtml-list.mod;]]>

<!-- Edit Module  ................................................ -->
<!ENTITY % xhtml-edit.module "INCLUDE" >
<![%xhtml-edit.module;[
<!ENTITY % xhtml-edit.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Editing Elements 1.0//EN"
            "xhtml11-edit-1.mod" >
%xhtml-edit.mod;]]>

<!-- Presentation Module  ........................................ -->
<!ENTITY % xhtml-pres.module "INCLUDE" >
<![%xhtml-pres.module;[
<!ENTITY % xhtml-pres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Presentation 1.0//EN"
            "xhtml11-pres-1.mod" >
%xhtml-pres.mod;]]>

<!-- Java Applet Element Module  ................................. -->
<!ENTITY % xhtml-applet.module "INCLUDE" >
<![%xhtml-applet.module;[
<!ENTITY % xhtml-applet.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Java Applets 1.0//EN"
            "xhtml11-applet-1.mod" >
%xhtml-applet.mod;]]>

<!-- BIDI Override Module  ....................................... -->
<!ENTITY % xhtml-bdo.module "INCLUDE" >
<![%xhtml-bdo.module;[
<!ENTITY % xhtml-bdo.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 BIDI Override Element 1.0//EN"
            "xhtml11-bdo-1.mod" >
%xhtml-bdo.mod;]]>

<!-- Forms Module  ............................................... -->
<!ENTITY % xhtml-form.module "INCLUDE" >
<![%xhtml-form.module;[
<!ENTITY % xhtml-form.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Forms 1.0//EN"
            "xhtml11-form-1.mod" >
%xhtml-form.mod;]]>

<!-- Tables Module ............................................... -->
<!ENTITY % xhtml-table.module "INCLUDE" >
<![%xhtml-table.module;[
<!ENTITY % xhtml-table.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Tables 1.0//EN"
            "xhtml11-table-1.mod" >
%xhtml-table.mod;]]>

<!-- Image Module  ............................................... -->
<!ENTITY % xhtml-image.module "INCLUDE" >
<![%xhtml-image.module;[
<!ENTITY % xhtml-image.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Images 1.0//EN"
            "xhtml11-image-1.mod" >
%xhtml-image.mod;]]>

<!-- Client-side Image Map Module  ............................... -->
<!ENTITY % xhtml-csismap.module "INCLUDE" >
<![%xhtml-csismap.module;[
<!ENTITY % xhtml-csismap.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Client-side Image Maps 1.0//EN"
            "xhtml11-csismap-1.mod" >
%xhtml-csismap.mod;]]>

<!-- Server-side Image Map Module  ............................... -->
<!ENTITY % xhtml-ssismap.module "INCLUDE" >
<![%xhtml-ssismap.module;[
<!ENTITY % xhtml-ssismap.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Server-side Image Maps 1.0//EN"
            "xhtml11-ssismap-1.mod" >
%xhtml-ssismap.mod;]]>

<!-- Document Metainformation Module  ............................ -->
<!ENTITY % xhtml-meta.module "INCLUDE" >
<![%xhtml-meta.module;[
<!ENTITY % xhtml-meta.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Metainformation 1.0//EN"
            "xhtml11-meta-1.mod" >
%xhtml-meta.mod;]]>

<!-- Scripting Module  ........................................... -->
<!ENTITY % xhtml-script.module "INCLUDE" >
<![%xhtml-script.module;[
<!ENTITY % xhtml-script.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Scripting 1.0//EN"
            "xhtml11-script-1.mod" >
%xhtml-script.mod;]]>

<!-- Stylesheets Module  ......................................... -->
<!ENTITY % xhtml-style.module "INCLUDE" >
<![%xhtml-style.module;[
<!ENTITY % xhtml-style.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Stylesheets 1.0//EN"
            "xhtml11-style-1.mod" >
%xhtml-style.mod;]]>

<!-- Link Element Module  ........................................ -->
<!ENTITY % xhtml-link.module "INCLUDE" >
<![%xhtml-link.module;[
<!ENTITY % xhtml-link.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Link Element 1.0//EN"
            "xhtml11-link-1.mod" >
%xhtml-link.mod;]]>

<!-- Base Element Module  ........................................ -->
<!ENTITY % xhtml-base.module "INCLUDE" >
<![%xhtml-base.module;[
<!ENTITY % xhtml-base.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Base Element 1.0//EN"
            "xhtml11-base-1.mod" >
%xhtml-base.mod;]]>

<!-- Document Structure Module (required)  ....................... -->
<!ENTITY % xhtml-struct.module "INCLUDE" >
<![%xhtml-struct.module;[
<!ENTITY % xhtml-struct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Document Structure 1.0//EN"
            "xhtml11-struct-1.mod" >
%xhtml-struct.mod;]]>

<!-- end of XHTML 1.1 DTD  ................................................. -->
<!-- ....................................................................... -->

B.3. XHTML 1.1 Customizations

An XHTML 1.1 Family Document Type (such as XHTML 1.1) must define the content model that it uses. This is done through a separate content model module that is instantiated by the XHTML Modular Framework. The content model module and the XHTML 1.1 Driver (above) work together to customize the module implementations to the document type's specific requirements. The content model module for XHTML 1.1 is defined below:

<!-- ....................................................................... -->
<!-- XHTML 1.1 Document Model Module  ...................................... -->
<!-- file: xhtml11-model-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-model-1.mod 1.9 99/08/26 SMI

     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"

     Revisions:
     (none)
     ....................................................................... -->

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

<!ENTITY % Head-opts.mix  "( script | style | meta | link )*" >

<!-- .................  Miscellaneous Elements  .................. -->

<!-- ins and del are used to denote editing changes
-->
<!ENTITY % Edit.class "| ins | del" >

<!-- script and noscript are used to contain scripts
     and alternative content
-->

<!ENTITY % Misc.extra "| script | noscript" >

<!-- These elements are neither block nor inline, and can
     essentially be used anywhere in the document body.
-->
<!ENTITY % Misc.class
     "%Edit.class;
      %Misc.extra;"
>

<!-- ....................  Inline Elements  ...................... -->

<!ENTITY % Inlstruct.class "br | span" >

<!ENTITY % Inlphras.class
     "| em | strong | dfn | code | samp | kbd | var | cite | abbr | acronym | q" >

<!ENTITY % Inlpres.class
     "| tt | i | b | big | small | sub | sup" >

<!ENTITY % I18n.class "| bdo" >

<!ENTITY % Anchor.class "| a" >

<!ENTITY % Inlspecial.class "| img | map | applet" >

<!ENTITY % Inline.extra 
     "| input | select | textarea | label | button" >

<!-- %Inline.class; includes all inline elements,
     used as a component in mixes
-->
<!ENTITY % Inline.class
     "%Inlstruct.class;
      %Inlphras.class;
      %Inlpres.class;
      %I18n.class;
      %Anchor.class;
      %Inlspecial.class;
      %Inline.extra;"
>

<!-- %Inline-noa.class; includes all non-anchor inlines,
     used as a component in mixes
-->
<!ENTITY % Inline-noa.class
     "%Inlstruct.class;
      %Inlphras.class;
      %Inlpres.class;
      %I18n.class;
      %Inlspecial.class;
      %Inline.extra;"
>

<!-- %Inline-noa.mix; includes all non-anchor inlines
-->
<!ENTITY % Inline-noa.mix
     "%Inline-noa.class;
      %Misc.class;"
>

<!-- %Inline.mix; includes all inline elements, including %Misc.class;
-->
<!ENTITY % 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.
-->

<!ENTITY % Heading.class "h1 | h2 | h3 | h4 | h5 | h6" >

<!ENTITY % List.class "ul | ol | dl" >

<!ENTITY % Blkstruct.class "p | div" >

<!ENTITY % Blkphras.class "| pre | blockquote | address" >

<!ENTITY % Blkpres.class "| hr" >

<!ENTITY % Block.extra "| table | form | fieldset" >

<!-- %Block.class; includes all block elements,
     used as an component in mixes
-->
<!ENTITY % Block.class
     "%Blkstruct.class;
      %Blkphras.class;
      %Blkpres.class;
      %Block.extra;"
>

<!-- %Block.mix; includes all block elements plus %Misc.class;
-->
<!ENTITY % Block.mix
     "%Heading.class;
      | %List.class;
      | %Block.class;
      %Misc.class;"
>

<!-- ................  All Content Elements  .................. -->

<!-- %Flow.mix; includes all text content, block and inline
-->
<!ENTITY % Flow.mix
     "%Heading.class;
      | %List.class;
      | %Block.class;
      | %Inline.class;
      %Misc.class;"
>

<!-- end of xhtml11-model-1.mod -->

C. XHTML 1.1 Module Implementations

This appendix is normative.

This appendix contains the modules defined in [XHTMLMOD] implemented as XML DTDs. These module implementations are used by the XHTML 1.1 Driver, and can also be used by other XHTML Family Document Types.

C.1. XHTML Character Entities

XHTML DTDs make available a standard collection of named character entities. Those entities are defined in this section.

C.1.1. XHTML Latin 1 Character Entities

Module DTD/xhtml11-lat1.ent not found!

C.1.2. XHTML Special Characters

Module DTD/xhtml11-special.ent not found!

C.1.3. XHTML Mathematical, Greek, and Symbolic Characters

Module DTD/xhtml11-symbol.ent not found!

C.2. XHTML Modular Framework

In order to take advantage of the XHTML DTD Modules, DTD authors need to define the content model for their DTD. XHTML provides a variety of tools to ease this effort. They are defined in a set of support modules, instantiated by a main Framework module:

<!-- ...................................................................... -->
<!-- XHTML 1.1 Modular Framework Module  .................................. -->
<!-- file: xhtml11-framework-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-framework-1.mod 1.7 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Modular Framework 1.0//EN"
     SYSTEM "xhtml11-framework-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Modular Framework

     This required module instantiates the modules needed
     to support the XHTML modularization model, including:

        +  datatypes
        +  common attributes
        +  document model
        +  character entities

     The Intrinsic Events module is ignored by default but
     occurs in this module because it must be instantiated
     prior to Attributes but after Datatypes.
-->

<!ENTITY % xhtml-datatypes.module "INCLUDE" >
<![%xhtml-datatypes.module;[
<!ENTITY % xhtml-datatypes.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Datatypes 1.0//EN"
            "xhtml11-datatypes-1.mod" >
%xhtml-datatypes.mod;]]>

<!ENTITY % xhtml-events.module "IGNORE" >
<![%xhtml-events.module;[
<!ENTITY % xhtml-events.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Intrinsic Events 1.0//EN"
            "xhtml11-events-1.mod" >
%xhtml-events.mod;]]>

<!ENTITY % xhtml-attribs.module "INCLUDE" >
<![%xhtml-attribs.module;[
<!ENTITY % xhtml-attribs.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Common Attributes 1.0//EN"
            "xhtml11-attribs-1.mod" >
%xhtml-attribs.mod;]]>

<!ENTITY % xhtml-model.module "INCLUDE" >
<![%xhtml-model.module;[
<!ENTITY % xhtml-model.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
            "xhtml11-model-1.mod" >
%xhtml-model.mod;]]>

<!ENTITY % xhtml-charent.module "INCLUDE" >
<![%xhtml-charent.module;[
<!ENTITY % xhtml-charent.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Character Entities 1.0//EN"
            "xhtml11-charent-1.mod" >
%xhtml-charent.mod;]]>

<!-- end of xhtml11-framework-1.mod -->

Note that the module above references a content model module. This module is defined on a per-document type basis in addition to the document type driver file. The content model module for XHTML 1.1 is defined in XHTML 1.1 Customization. The Modular framework also relies upon the following component modules:

C.2.1. XHTML Datatypes

<!-- ...................................................................... -->
<!-- XHTML 1.1 Datatypes Module  .......................................... -->
<!-- file: xhtml11-datatypes-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-datatypes-1.mod 1.5 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Datatypes 1.0//EN"
     SYSTEM "xhtml11-datatypes-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- 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 -->
<!ENTITY % Length.datatype "CDATA" >

<!-- space-separated list of link types -->
<!ENTITY % LinkTypes.datatype "NMTOKENS" >

<!-- single or comma-separated list of media descriptors -->
<!ENTITY % MediaDesc.datatype "CDATA" >

<!-- pixel, percentage, or relative -->
<!ENTITY % MultiLength.datatype "CDATA" >

<!-- one or more digits (NUMBER) -->
<!ENTITY % Number.datatype "CDATA" >

<!-- integer representing length in pixels -->
<!ENTITY % Pixels.datatype "CDATA" >

<!-- script expression -->
<!ENTITY % Script.datatype "CDATA" >

<!-- textual content -->
<!ENTITY % Text.datatype "CDATA" >

<!-- Imported Datatypes ................................ -->

<!-- a single character from [ISO10646] -->
<!ENTITY % Character.datatype "CDATA" >

<!-- a character encoding, as per [RFC2045] -->
<!ENTITY % Charset.datatype "CDATA" >

<!-- a space separated list of character encodings, as per [RFC2045] -->
<!ENTITY % Charsets.datatype "CDATA" >

<!-- media type, as per [RFC2045] -->
<!ENTITY % ContentType.datatype "CDATA" >

<!-- comma-separated list of media types, as per [RFC2045] -->
<!ENTITY % ContentTypes.datatype "CDATA" >

<!-- date and time information. ISO date format -->
<!ENTITY % Datetime.datatype "CDATA" >

<!-- a language code, as per [RFC1766] -->
<!ENTITY % LanguageCode.datatype "NMTOKEN" >

<!-- a Uniform Resource Identifier, see [URI] -->
<!ENTITY % URI.datatype "CDATA" >

<!-- end of xhtml11-datatypes-1.mod -->

C.2.2. XHTML Common Attribute Definitions

<!-- ...................................................................... -->
<!-- XHTML 1.1 Common Attributes Module  .................................. -->
<!-- file: xhtml11-attribs-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-attribs-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Common Attributes 1.0//EN"
     SYSTEM "xhtml11-attribs-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Common Attributes

     This modules declares many of the common attributes for the Strict DTD.
-->

<!ENTITY % Core.extra.attrib "" >

<!ENTITY % Core.attrib
     "id           ID                       #IMPLIED
      class        CDATA                    #IMPLIED
      title        %Text.datatype;          #IMPLIED
      %Core.extra.attrib;"
>

<![%XHTML.I18n;[
<!ENTITY % I18n.attrib
     "xml:lang     %LanguageCode.datatype;  #IMPLIED
      dir          (ltr|rtl)                #IMPLIED"
>
]]>
<!ENTITY % I18n.attrib "" >

<!-- intrinsic event attributes declared previously
-->
<!ENTITY % Events.attrib "" >

<!ENTITY % Common.attrib
     "%Core.attrib;
      %I18n.attrib;
      %Events.attrib;"
>

<!-- end of xhtml11-attribs-1.mod -->

C.2.3. XHTML Character Entities

<!-- ...................................................................... -->
<!-- XHTML 1.1 Character Entities Module  ................................. -->
<!-- file: xhtml11-charent-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-charent-1.mod 1.7 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Character Entities 1.0//EN"
     SYSTEM "xhtml11-charent-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Character Entities for XHTML

     This module declares the set of character entities for XHTML,
     including the Latin 1, Symbol and Special characters sets.
-->

<!ENTITY % xhtml11-lat1
    PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
           "http://www.w3.org/TR/xhtml1/DTD/XHTML-lat1.ent" >
<!ENTITY % xhtml11-symbol
    PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
           "http://www.w3.org/TR/xhtml1/DTD/XHTML-symbol.ent" >
<!ENTITY % xhtml11-special
    PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
           "http://www.w3.org/TR/xhtml1/DTD/XHTML-special.ent" >
%xhtml11-lat1;
%xhtml11-symbol;
%xhtml11-special;

<!-- end of xhtml11-charent-1.mod -->

C.3. XHTML Module Implementations

This section contains the formal definition of each of the XHTML Abstract Modules as a DTD module.

C.3.1. XHTML Basic Modules

C.3.1.1. Structure

<!-- ...................................................................... -->
<!-- XHTML 1.1 Structure Module  .......................................... -->
<!-- file: xhtml11-struct-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-struct-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Document Structure 1.0//EN"
     SYSTEM "xhtml11-struct-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

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

<!ENTITY % Title.element  "INCLUDE" >
<![%Title.element;[
<!ENTITY % Title.content  "( #PCDATA )" >
<!ELEMENT title  %Title.content; >
<!-- end of Title.element -->]]>

<!ENTITY % Title.attlist  "INCLUDE" >
<![%Title.attlist;[
<!ATTLIST title
      %I18n.attrib;
>
<!-- end of Title.attlist -->]]>

<!-- head: Document Head ............................... -->

<!ENTITY % Head.element  "INCLUDE" >
<![%Head.element;[
<!ENTITY % Head.content
    "( %Head-opts.mix;, title, %Head-opts.mix; )"
>
<!ELEMENT head  %Head.content; >
<!-- end of Head.element -->]]>

<!ENTITY % Head.attlist  "INCLUDE" >
<![%Head.attlist;[
<!-- reserved for future use with document profiles -->
<!ENTITY % Profile.attrib
     "profile      %URI.datatype;           '%XHTML.profile;'"
>

<!ATTLIST head
      %I18n.attrib;
      %Profile.attrib;
>
<!-- end of Head.attlist -->]]>

<!-- body: Document Body ............................... -->

<!ENTITY % Body.element  "INCLUDE" >
<![%Body.element;[
<!ENTITY % Body.content
     "( %Block.mix; )+"
>
<!ELEMENT body  %Body.content; >
<!-- end of Body.element -->]]>

<!ENTITY % Body.attlist  "INCLUDE" >
<![%Body.attlist;[
<!ATTLIST body
      %Common.attrib;
>
<!-- end of Body.attlist -->]]>

<!-- html: XHTML Document Element ...................... -->

<!ENTITY % Html.element  "INCLUDE" >
<![%Html.element;[
<!ENTITY % Html.content  "( head, body )" >
<!ELEMENT html  %Html.content; >
<!-- end of Html.element -->]]>

<!ENTITY % Html.attlist  "INCLUDE" >
<![%Html.attlist;[
<!-- namespace attribute value defined in driver
-->
<!ENTITY % Xmlns.attrib
     "xmlns        %URI.datatype;           #FIXED '%XHTML.ns;'"
>

<!ATTLIST html
      %I18n.attrib;
      %Xmlns.attrib;
>
<!-- end of Html.attlist -->]]>

<!-- end of xhtml11-struct-1.mod -->

C.3.1.2. Basic Text

<!-- ...................................................................... -->
<!-- XHTML 1.1 Basic Text Module  ......................................... -->
<!-- file: xhtml11-text-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-text-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Text 1.0//EN"
     SYSTEM "xhtml11-text-1.mod"

     Revisions:
     ....................................................................... -->

<!-- Textual Content

     The Text module includes declarations for all basic 
     text container elements and their attributes.
-->

<!ENTITY % xhtml-inlstruct.module "INCLUDE" >
<![%xhtml-inlstruct.module;[
<!ENTITY % xhtml-inlstruct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Inline Structural 1.0//EN"
            "xhtml11-inlstruct-1.mod" >
%xhtml-inlstruct.mod;]]>

<!ENTITY % xhtml-inlphras.module "INCLUDE" >
<![%xhtml-inlphras.module;[
<!ENTITY % xhtml-inlphras.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Inline Phrasal 1.0//EN"
            "xhtml11-inlphras-1.mod" >
%xhtml-inlphras.mod;]]>

<!ENTITY % xhtml-blkstruct.module "INCLUDE" >
<![%xhtml-blkstruct.module;[
<!ENTITY % xhtml-blkstruct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Block Structural 1.0//EN"
            "xhtml11-blkstruct-1.mod" >
%xhtml-blkstruct.mod;]]>

<!ENTITY % xhtml-blkphras.module "INCLUDE" >
<![%xhtml-blkphras.module;[
<!ENTITY % xhtml-blkphras.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Block Phrasal 1.0//EN"
            "xhtml11-blkphras-1.mod" >
%xhtml-blkphras.mod;]]>

<!-- end of xhtml11-text-1.mod -->

C.3.1.3. Hypertext

<!-- ...................................................................... -->
<!-- XHTML 1.1 Hypertext Module  .......................................... -->
<!-- file: xhtml11-hypertext-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-hypertext-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Hypertext 1.0//EN"
     SYSTEM "xhtml11-hypertext-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

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

<!-- ............  Anchor Element  ............ -->

<!ENTITY % A.element  "INCLUDE" >
<![%A.element;[
<!ENTITY % A.content
     "( #PCDATA | %Inline-noa.mix; )*"
>
<!ELEMENT a  %A.content; >
<!-- end of A.element -->]]>

<!ENTITY % A.attlist  "INCLUDE" >
<![%A.attlist;[
<!ATTLIST a
      %Common.attrib;
      href         %URI.datatype;           #IMPLIED
      charset      %Charset.datatype;       #IMPLIED
      type         %ContentType.datatype;   #IMPLIED
      hreflang     %LanguageCode.datatype;  #IMPLIED
      rel          %LinkTypes.datatype;     #IMPLIED
      rev          %LinkTypes.datatype;     #IMPLIED
      accesskey    %Character.datatype;     #IMPLIED
      tabindex     %Number.datatype;        #IMPLIED
>
<!-- end of A.attlist -->]]>

<!-- end of xhtml11-hypertext-1.mod -->

C.3.1.4. Lists

<!-- ...................................................................... -->
<!-- XHTML 1.1 Lists Module  .............................................. -->
<!-- file: xhtml11-list-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-list-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Lists 1.0//EN"
     SYSTEM "xhtml11-list-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Lists

        dl, dt, dd, ol, ul, li

     This module declares the list-oriented element types
     and their attributes.
-->

<!-- dl: Definition List ............................... -->

<!ENTITY % Dl.element  "INCLUDE" >
<![%Dl.element;[
<!ENTITY % Dl.content  "( dt | dd )+" >
<!ELEMENT dl  %Dl.content; >
<!-- end of Dl.element -->]]>

<!ENTITY % Dl.attlist  "INCLUDE" >
<![%Dl.attlist;[
<!ATTLIST dl
      %Common.attrib;
>
<!-- end of Dl.attlist -->]]>

<!-- dt: Definition Term ............................... -->

<!ENTITY % Dt.element  "INCLUDE" >
<![%Dt.element;[
<!ENTITY % Dt.content
     "( #PCDATA | %Inline.mix; )*"
>
<!ELEMENT dt  %Dt.content; >
<!-- end of Dt.element -->]]>

<!ENTITY % Dt.attlist  "INCLUDE" >
<![%Dt.attlist;[
<!ATTLIST dt
      %Common.attrib;
>
<!-- end of Dt.attlist -->]]>

<!-- dd: Definition Description ........................ -->

<!ENTITY % Dd.element  "INCLUDE" >
<![%Dd.element;[
<!ENTITY % Dd.content
     "( #PCDATA | %Flow.mix; )*"
>
<!ELEMENT dd  %Dd.content; >
<!-- end of Dd.element -->]]>

<!ENTITY % Dd.attlist  "INCLUDE" >
<![%Dd.attlist;[
<!ATTLIST dd
      %Common.attrib;
>
<!-- end of Dd.attlist -->]]>

<!-- ol: Ordered List (numbered styles) ................ -->

<!ENTITY % Ol.element  "INCLUDE" >
<![%Ol.element;[
<!ENTITY % Ol.content  "( li )+" >
<!ELEMENT ol  %Ol.content; >
<!-- end of Ol.element -->]]>

<!ENTITY % Ol.attlist  "INCLUDE" >
<![%Ol.attlist;[
<!ATTLIST ol
      %Common.attrib;
>
<!-- end of Ol.attlist -->]]>

<!-- ul: Unordered List (bullet styles) ................ -->

<!ENTITY % Ul.element  "INCLUDE" >
<![%Ul.element;[
<!ENTITY % Ul.content  "( li )+" >
<!ELEMENT ul  %Ul.content; >
<!-- end of Ul.element -->]]>

<!ENTITY % Ul.attlist  "INCLUDE" >
<![%Ul.attlist;[
<!ATTLIST ul
      %Common.attrib;
>
<!-- end of Ul.attlist -->]]>

<!-- li: List Item ..................................... -->

<!ENTITY % Li.element  "INCLUDE" >
<![%Li.element;[
<!ENTITY % Li.content
     "( #PCDATA | %Flow.mix; )*"
>
<!ELEMENT li  %Li.content; >
<!-- end of Li.element -->]]>

<!ENTITY % Li.attlist  "INCLUDE" >
<![%Li.attlist;[
<!ATTLIST li
      %Common.attrib;
>
<!-- end of Li.attlist -->]]>

<!-- end of xhtml11-list-1.mod -->

C.3.2. Applet

<!-- ...................................................................... -->
<!-- XHTML 1.1 Java Applet Module  ........................................ -->
<!-- file: xhtml11-applet-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-applet-1.mod 1.7 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Java Applets 1.0//EN"
     SYSTEM "xhtml11-applet-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Java Applets

        applet, param

     This module declares the applet and param element types and
     their 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.
     Place param elements before other content. 
-->

<!-- applet: Java Applet ............................... -->

<!ENTITY % Applet.element  "INCLUDE" >
<![%Applet.element;[
<!ENTITY % Applet.content
     "( param | %Flow.mix; )*"
>
<!ELEMENT applet  %Applet.content; >
<!-- end of Applet.element -->]]>

<!ENTITY % Applet.attlist  "INCLUDE" >
<![%Applet.attlist;[
<!ATTLIST applet
      %Core.attrib;
      alt          %Text.datatype;          #REQUIRED
      name         CDATA                    #IMPLIED
      archive      CDATA                    #IMPLIED
      code         CDATA                    #IMPLIED
      codebase     %URI.datatype;           #IMPLIED
      object       CDATA                    #IMPLIED
      width        %Length.datatype;        #REQUIRED
      height       %Length.datatype;        #REQUIRED
>
<!-- end of Applet.attlist -->]]>

<!-- param: Named Property Value ....................... -->

<!ENTITY % Param.element  "INCLUDE" >
<![%Param.element;[
<!ENTITY % Param.content  "EMPTY" >
<!ELEMENT param  %Param.content; >
<!-- end of Param.element -->]]>

<!ENTITY % Param.attlist  "INCLUDE" >
<![%Param.attlist;[
<!ATTLIST param
      id           ID                       #IMPLIED
      name         CDATA                    #REQUIRED
      value        CDATA                    #IMPLIED
      valuetype    (data|ref|object)        'data'
      type         %ContentType.datatype;   #IMPLIED
>
<!-- end of Param.attlist -->]]>

<!-- end of xhtml11-applet-1.mod -->

C.3.3. Text Modules

C.3.3.1. Presentation

<!-- ...................................................................... -->
<!-- XHTML 1.1 Presentation Module ........................................ -->
<!-- file: xhtml11-pres-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-pres-1.mod 1.4 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Presentation 1.0//EN"
     SYSTEM "xhtml11-pres-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Presentational Elements

     This module defines elements and their attributes for
     simple presentation-related markup.
-->

<!ENTITY % xhtml-inlpres.module "INCLUDE" >
<![%xhtml-inlpres.module;[
<!ENTITY % xhtml-inlpres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Inline Presentation 1.0//EN"
            "xhtml11-inlpres-1.mod" >
%xhtml-inlpres.mod;]]>

<!ENTITY % xhtml-blkpres.module "INCLUDE" >
<![%xhtml-blkpres.module;[
<!ENTITY % xhtml-blkpres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Block Presentation 1.0//EN"
            "xhtml11-blkpres-1.mod" >
%xhtml-blkpres.mod;]]>

<!-- end of xhtml11-pres-1.mod -->

C.3.3.2. Edit

<!-- ...................................................................... -->
<!-- XHTML 1.1 Editing Elements Module  ................................... -->
<!-- file: xhtml11-edit-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-edit-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Editing Markup 1.0//EN"
     SYSTEM "xhtml11-edit-1.mod"

     Revisions:
     ....................................................................... -->

<!-- Editing Elements

        ins, del

     This module declares element types and attributes used to indicate
     inserted and deleted content while editing a document.
-->

<!ENTITY % Ins.element  "INCLUDE" >
<![%Ins.element;[
<!ENTITY % Ins.content
     "( #PCDATA | %Flow.mix; )*"
>
<!ELEMENT ins  %Ins.content; >
<!-- end of Ins.element -->]]>

<!ENTITY % Ins.attlist  "INCLUDE" >
<![%Ins.attlist;[
<!ATTLIST ins
      %Common.attrib;
      cite         %URI.datatype;           #IMPLIED
      datetime     %Datetime.datatype;      #IMPLIED
>
<!-- end of Ins.attlist -->]]>

<!ENTITY % Del.element  "INCLUDE" >
<![%Del.element;[
<!ENTITY % Del.content
     "( #PCDATA | %Flow.mix; )*"
>
<!ELEMENT del  %Del.content; >
<!-- end of Del.element -->]]>

<!ENTITY % Del.attlist  "INCLUDE" >
<![%Del.attlist;[
<!ATTLIST del
      %Common.attrib;
      cite         %URI.datatype;           #IMPLIED
      datetime     %Datetime.datatype;      #IMPLIED
>
<!-- end of Del.attlist -->]]>

<!-- end of xhtml11-edit-1.mod -->

C.3.3.3. Bi-Directional Override Elements

<!-- ...................................................................... -->
<!-- XHTML 1.1 BDO Element Module ......................................... -->
<!-- file: xhtml11-bdo-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-bdo-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 BDO Element 1.0//EN"
     SYSTEM "xhtml11-bdo-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- 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.I18n; declared
     as "INCLUDE" and the parameter entity %I18n.attrib; declared
     in the common attributes module. Internationalization support
     includes both the bdo element and the i18n attributes.
-->

<!ENTITY % Bdo.element  "INCLUDE" >
<![%Bdo.element;[
<!ENTITY % Bdo.content
     "( #PCDATA | %Inline.mix; )*"
>
<!ELEMENT bdo  %Bdo.content; >
<!-- end of Bdo.element -->]]>

<!ENTITY % Bdo.attlist  "INCLUDE" >
<![%Bdo.attlist;[
<!ATTLIST bdo
      %Core.attrib;
      xml:lang     %LanguageCode.datatype;  #IMPLIED
      dir          (ltr|rtl)                #REQUIRED
>
]]>

<!-- end of xhtml11-bdo-1.mod -->

C.3.4. Forms

C.3.4.1. Basic Forms

<!-- ...................................................................... -->
<!-- XHTML 1.1 Simplified Forms Module  ................................... -->
<!-- file: xhtml11-formb-1.mod

     This module subsets XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-formb-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Forms 1.0//EN"  
     SYSTEM "xhtml11-formb-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Basic Forms

     This forms module is based on the HTML 3.2 forms model, with
     the WAI-requested addition of the label element. While this 
     module essentially mimics the content model and attributes of 
     HTML 3.2 forms, the element types declared herein also include
     all HTML 4.0 common attributes.

        form, label, input, select, option, textarea

     When Basic Forms are used in lieu of the default XHTML 1.1
     Forms module, the parameter entity %Inline.extra; must
     be redeclared in the model module to include:

        "| input | select | textarea | label"
-->

<!-- %Block-noform.mix; includes all non-form block elements,
     plus %Misc.class;
-->
<!ENTITY % Block-noform.mix
     "%Heading.class;
      | %List.class;
      | %Blkstruct.class;
      %Blkphras.class;
      %Blkpres.class;
      | table 
      %Misc.class;"
>

<!-- form: Form Element ................................ -->

<!ENTITY % Form.element  "INCLUDE" >
<![%Form.element;[
<!ENTITY % Form.content
     "( %Block-noform.mix; )+"
>
<!ELEMENT form  %Form.content; >
<!-- end of Form.element -->]]>

<!ENTITY % Form.attlist  "INCLUDE" >
<![%Form.attlist;[
<!ATTLIST form
      %Common.attrib;
      action       %URI.datatype;           #REQUIRED
      method       (get|post)               'get'
      enctype      %ContentType.datatype;   'application/x-www-form-urlencoded'
>
<!-- end of Form.attlist -->]]>

<!-- label: Form Field Label Text ...................... -->

<!ENTITY % Label.element  "INCLUDE" >
<![%Label.element;[
<!-- Each label must not contain more than ONE field
-->
<!ENTITY % Label.content
     "( #PCDATA 
      | input | select | textarea | button
      | %Inlstruct.class;
      %Inlphras.class;
      %I18n.class;
      %Inlpres.class;
      %Inlspecial.class;
      %Misc.class; )*"
>
<!ELEMENT label  %Label.content; >
<!-- end of Label.element -->]]>

<!ENTITY % Label.attlist  "INCLUDE" >
<![%Label.attlist;[
<!ATTLIST label
      %Common.attrib;
      for          IDREF                    #IMPLIED
      accesskey    %Character.datatype;     #IMPLIED
>
<!-- end of Label.attlist -->]]>

<!-- input: Form Control ............................... -->

<!ENTITY % Input.element  "INCLUDE" >
<![%Input.element;[
<!ENTITY % Input.content  "EMPTY" >
<!ELEMENT input  %Input.content; >
<!-- end of Input.element -->]]>

<!ENTITY % Input.attlist  "INCLUDE" >
<![%Input.attlist;[
<!ENTITY % InputType.class
     "( text | password | checkbox | radio | submit 
      | reset | file | hidden | image )"
>
<!-- attribute name required for all but submit & reset
-->
<!ATTLIST input
      %Common.attrib;
      type         %InputType.class;        'text'
      name         CDATA                    #IMPLIED
      value        CDATA                    #IMPLIED
      checked      (checked)                #IMPLIED
      size         CDATA                    #IMPLIED
      maxlength    %Number.datatype;        #IMPLIED
      src          %URI.datatype;           #IMPLIED
>
<!-- end of Input.attlist -->]]>

<!-- select: Option Selector ........................... -->

<!ENTITY % Select.element  "INCLUDE" >
<![%Select.element;[
<!ENTITY % Select.content  "( option )+" >
<!ELEMENT select  %Select.content; >
<!-- end of Select.element -->]]>

<!ENTITY % Select.attlist  "INCLUDE" >
<![%Select.attlist;[
<!ATTLIST select
      %Common.attrib;
      name         CDATA                    #IMPLIED
      size         %Number.datatype;        #IMPLIED
      multiple     (multiple)               #IMPLIED
>
<!-- end of Select.attlist -->]]>

<!-- option: Selectable Choice ......................... -->

<!ENTITY % Option.element  "INCLUDE" >
<![%Option.element;[
<!ENTITY % Option.content  "( #PCDATA )" >
<!ELEMENT option  %Option.content; >
<!-- end of Option.element -->]]>

<!ENTITY % Option.attlist  "INCLUDE" >
<![%Option.attlist;[
<!ATTLIST option
      %Common.attrib;
      selected     (selected)               #IMPLIED
      value        CDATA                    #IMPLIED
>
<!-- end of Option.attlist -->]]>

<!-- textarea: Multi-Line Text Field ................... -->

<!ENTITY % Textarea.element  "INCLUDE" >
<![%Textarea.element;[
<!ENTITY % Textarea.content  "( #PCDATA )" >
<!ELEMENT textarea  %Textarea.content; >
<!-- end of Textarea.element -->]]>

<!ENTITY % Textarea.attlist  "INCLUDE" >
<![%Textarea.attlist;[
<!ATTLIST textarea
      %Common.attrib;
      name         CDATA                    #IMPLIED
      rows         %Number.datatype;        #REQUIRED
      cols         %Number.datatype;        #REQUIRED
>
<!-- end of Textarea.attlist -->]]>

<!-- end of xhtml11-formb-1.mod -->

C.3.4.2. Forms

<!-- ...................................................................... -->
<!-- XHTML 1.1 Extended Forms 1.0 Module  ................................. -->
<!-- file: xhtml11-formx-1.mod

     This is an extension of XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-formx-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Extended Forms 1.0//EN"  
     SYSTEM "xhtml11-formx-1.mod"

     Revisions:
     ....................................................................... -->

<!-- C.7.15. Extended Forms Version 1.0

     [Any description here.]
-->

<!-- TBD -->

<!-- end of xhtml11-formx-1.mod -->

C.3.5. Tables

C.3.5.1. Basic Tables

<!-- ....................................................................... -->
<!-- XHTML 1.1 Basic Table Module  ......................................... -->
<!-- file: xhtml11-tableb-1.mod

     This module subsets XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-tableb-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Tables 1.0//EN"
     SYSTEM "xhtml11-tableb-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Basic Tables

        table, caption, tr, th, td

     This table module declares elements and attributes defining
     a table model based fundamentally on features found in the
     widely-deployed HTML 3.2 table model.  While this module
     mimics the content model and table attributes of HTML 3.2
     tables, the element types declared herein also includes all
     HTML 4.0 common and most of the HTML 4.0 table attributes.
-->

<!-- The border attribute sets the thickness of the frame
     around the table. The default units are screen pixels.
-->

<!-- horizontal alignment attributes for cell contents
-->
<!ENTITY % CellHAlign.attrib
     "align        ( left
                   | center
                   | right )                #IMPLIED"
>

<!-- vertical alignment attributes for cell contents
-->
<!ENTITY % CellVAlign.attrib
     "valign       ( top
                   | middle
                   | bottom )               #IMPLIED"
>

<!-- table: Table Element .............................. -->

<!ENTITY % Table.element  "INCLUDE" >
<![%Table.element;[
<!ENTITY % Table.content
     "( caption?, tr+ )"
>
<!ELEMENT table  %Table.content; >
<!-- end of Table.element -->]]>

<!ENTITY % Table.attlist  "INCLUDE" >
<![%Table.attlist;[
<!ATTLIST table
      %Common.attrib;
      width        %Length.datatype;        #IMPLIED
      border       %Pixels.datatype;        #IMPLIED
      cellspacing  %Length.datatype;        #IMPLIED
      cellpadding  %Length.datatype;        #IMPLIED
>
<!-- end of Table.attlist -->]]>

<!-- caption: Table Caption ............................ -->

<!ENTITY % Caption.element  "INCLUDE" >
<![%Caption.element;[
<!ENTITY % Caption.content
     "( #PCDATA | %Inline.mix; )*"
>
<!ELEMENT caption  %Caption.content; >
<!-- end of Caption.element -->]]>

<!ENTITY % Caption.attlist  "INCLUDE" >
<![%Caption.attlist;[
<!ENTITY % CaptionAlign.attrib
     "align        ( top | bottom )         #IMPLIED"
>

<!ATTLIST caption
      %Common.attrib;
      %CaptionAlign.attrib;
>
<!-- end of Caption.attlist -->]]>

<!-- tr: Table Row ..................................... -->

<!ENTITY % Tr.element  "INCLUDE" >
<![%Tr.element;[
<!ENTITY % Tr.content  "( th | td )+" >
<!ELEMENT tr  %Tr.content; >
<!-- end of Tr.element -->]]>

<!ENTITY % Tr.attlist  "INCLUDE" >
<![%Tr.attlist;[
<!ATTLIST tr
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Tr.attlist -->]]>

<!-- th: Table Header Cell ............................. -->

<!-- th is for header cells, td for data,
     but for cells acting as both use td
-->

<!ENTITY % Th.element  "INCLUDE" >
<![%Th.element;[
<!ENTITY % Th.content
     "( #PCDATA | %Flow.mix; )*"
>
<!ELEMENT th  %Th.content; >
<!-- end of Th.element -->]]>

<!ENTITY % Th.attlist  "INCLUDE" >
<![%Th.attlist;[
<!ATTLIST th
      %Common.attrib;
      abbr         %Text.datatype;          #IMPLIED
      axis         CDATA                    #IMPLIED
      headers      IDREFS                   #IMPLIED
      rowspan      %Number.datatype;        '1'
      colspan      %Number.datatype;        '1'
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Th.attlist -->]]>

<!-- td: Table Data Cell ............................... -->

<!ENTITY % Td.element  "INCLUDE" >
<![%Td.element;[
<!ENTITY % Td.content
     "( #PCDATA | %Flow.mix; )*"
>
<!ELEMENT td  %Td.content; >
<!-- end of Td.element -->]]>

<!ENTITY % Td.attlist  "INCLUDE" >
<![%Td.attlist;[
<!ATTLIST td
      %Common.attrib;
      abbr         %Text.datatype;          #IMPLIED
      axis         CDATA                    #IMPLIED
      headers      IDREFS                   #IMPLIED
      rowspan      %Number.datatype;        '1'
      colspan      %Number.datatype;        '1'
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Td.attlist -->]]>

<!-- end of xhtml11-tableb-1.mod -->

C.3.5.2. Tables

<!-- ...................................................................... -->
<!-- XHTML 1.1 Table Module  .............................................. -->
<!-- file: xhtml11-table-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-table-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Tables 1.0//EN"
     SYSTEM "xhtml11-table-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- 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 border attribute sets the thickness of the frame around the
     table. The default units are screen pixels.

     The value "border" is included for backwards compatibility with
     <table border> which yields frame="border" and border="implied".
     For <table border="1"> you get border="1" and frame="implied".
     In this case, it is appropriate to treat this as frame="border"
     for backwards compatibility with deployed browsers.
-->

<!-- 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.
-->
<!ENTITY % TFrame.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"
-->
<!ENTITY % TRules.attrib
     "rules        ( none
                   | groups
                   | rows
                   | cols
                   | all )                  #IMPLIED"
>

<!-- horizontal alignment attributes for cell contents
-->
<!ENTITY % CellHAlign.attrib
     "align        ( left
                   | center
                   | right
                   | justify
                   | char )                 #IMPLIED
      char         %Character.datatype;     #IMPLIED
      charoff      %Length.datatype;        #IMPLIED"
>

<!-- vertical alignment attributes for cell contents
-->
<!ENTITY % CellVAlign.attrib
     "valign       ( top
                   | middle
                   | bottom
                   | baseline )             #IMPLIED"
>

<!-- scope is simpler than axes attribute for common tables
-->
<!ENTITY % Scope.attrib
     "scope        ( row
                   | col
                   | rowgroup
                   | colgroup )             #IMPLIED"
>

<!-- table: Table Element .............................. -->

<!ENTITY % Table.element  "INCLUDE" >
<![%Table.element;[
<!ENTITY % Table.content
     "( caption?, ( col* | colgroup* ),
      (( thead?, tfoot?, tbody+ ) | ( tr+ )))"
>
<!ELEMENT table  %Table.content; >
<!-- end of Table.element -->]]>

<!ENTITY % Table.attlist  "INCLUDE" >
<![%Table.attlist;[
<!ATTLIST table
      %Common.attrib;
      summary      %Text.datatype;          #IMPLIED
      width        %Length.datatype;        #IMPLIED
      border       %Pixels.datatype;        #IMPLIED
      %TFrame.attrib;
      %TRules.attrib;
      cellspacing  %Length.datatype;        #IMPLIED
      cellpadding  %Length.datatype;        #IMPLIED
      datapagesize CDATA                    #IMPLIED
>
<!-- end of Table.attlist -->]]>

<!-- caption: Table Caption ............................ -->

<!ENTITY % Caption.element  "INCLUDE" >
<![%Caption.element;[
<!ENTITY % Caption.content
     "( #PCDATA | %Inline.mix; )*"
>
<!ELEMENT caption  %Caption.content; >
<!-- end of Caption.element -->]]>

<!ENTITY % Caption.attlist  "INCLUDE" >
<![%Caption.attlist;[
<!ATTLIST caption
      %Common.attrib;
>
<!-- end of Caption.attlist -->]]>

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

<!ENTITY % Thead.element  "INCLUDE" >
<![%Thead.element;[
<!-- end of Thead.element -->]]>
<!ENTITY % Thead.content  "( tr )+" >
<!ELEMENT thead  %Thead.content; >

<!ENTITY % Thead.attlist  "INCLUDE" >
<![%Thead.attlist;[
<!ATTLIST thead
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Thead.attlist -->]]>

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

<!ENTITY % Tfoot.element  "INCLUDE" >
<![%Tfoot.element;[
<!ENTITY % Tfoot.content  "( tr )+" >
<!ELEMENT tfoot  %Tfoot.content; >
<!-- end of Tfoot.element -->]]>

<!ENTITY % Tfoot.attlist  "INCLUDE" >
<![%Tfoot.attlist;[
<!ATTLIST tfoot
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Tfoot.attlist -->]]>

<!-- tbody: Table Body ................................. -->

<!-- Use multiple tbody sections when rules are needed
     between groups of table rows.
-->

<!ENTITY % Tbody.element  "INCLUDE" >
<![%Tbody.element;[
<!ENTITY % Tbody.content  "( tr )+" >
<!ELEMENT tbody  %Tbody.content; >
<!-- end of Tbody.element -->]]>

<!ENTITY % Tbody.attlist  "INCLUDE" >
<![%Tbody.attlist;[
<!ATTLIST tbody
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Tbody.attlist -->]]>

<!-- colgroup: Table Column Group ...................... -->

<!-- colgroup groups a set of col elements. It allows you
     to group several semantically-related columns together.
-->

<!ENTITY % Colgroup.element  "INCLUDE" >
<![%Colgroup.element;[
<!ENTITY % Colgroup.content  "( col )*" >
<!ELEMENT colgroup  %Colgroup.content; >
<!-- end of Colgroup.element -->]]>

<!ENTITY % Colgroup.attlist  "INCLUDE" >
<![%Colgroup.attlist;[
<!-- end of Colgroup.attlist -->]]>
<!ATTLIST colgroup
      %Common.attrib;
      span         %Number.datatype;        '1'
      width        %MultiLength.datatype;   #IMPLIED
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

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

<!ENTITY % Col.element  "INCLUDE" >
<![%Col.element;[
<!ENTITY % Col.content  "EMPTY" >
<!ELEMENT col  %Col.content; >
<!-- end of Col.element -->]]>

<!ENTITY % Col.attlist  "INCLUDE" >
<![%Col.attlist;[
<!ATTLIST col
      %Common.attrib;
      span         %Number.datatype;        '1'
      width        %MultiLength.datatype;   #IMPLIED
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Col.attlist -->]]>

<!-- tr: Table Row ..................................... -->

<!ENTITY % Tr.element  "INCLUDE" >
<![%Tr.element;[
<!ENTITY % Tr.content  "( th | td )+" >
<!ELEMENT tr  %Tr.content; >
<!-- end of Tr.element -->]]>

<!ENTITY % Tr.attlist  "INCLUDE" >
<![%Tr.attlist;[
<!ATTLIST tr
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Tr.attlist -->]]>

<!-- th: Table Header Cell ............................. -->

<!-- th is for header cells, td for data,
     but for cells acting as both use td
-->

<!ENTITY % Th.element  "INCLUDE" >
<![%Th.element;[
<!ENTITY % Th.content
     "( #PCDATA | %Flow.mix; )*"
>
<!ELEMENT th  %Th.content; >
<!-- end of Th.element -->]]>

<!ENTITY % Th.attlist  "INCLUDE" >
<![%Th.attlist;[
<!ATTLIST th
      %Common.attrib;
      abbr         %Text.datatype;          #IMPLIED
      axis         CDATA                    #IMPLIED
      headers      IDREFS                   #IMPLIED
      %Scope.attrib;
      rowspan      %Number.datatype;        '1'
      colspan      %Number.datatype;        '1'
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Th.attlist -->]]>

<!-- td: Table Data Cell ............................... -->

<!ENTITY % Td.element  "INCLUDE" >
<![%Td.element;[
<!ENTITY % Td.content
     "( #PCDATA | %Flow.mix; )*"
>
<!ELEMENT td  %Td.content; >
<!-- end of Td.element -->]]>

<!ENTITY % Td.attlist  "INCLUDE" >
<![%Td.attlist;[
<!ATTLIST td
      %Common.attrib;
      abbr         %Text.datatype;          #IMPLIED
      axis         CDATA                    #IMPLIED
      headers      IDREFS                   #IMPLIED
      %Scope.attrib;
      rowspan      %Number.datatype;        '1'
      colspan      %Number.datatype;        '1'
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>
<!-- end of Td.attlist -->]]>

<!-- end of xhtml11-table-1.mod -->

C.3.6. Image

<!-- ...................................................................... -->
<!-- XHTML 1.1 Images Module  ............................................. -->
<!-- file: xhtml11-image-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-image-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Images 1.0//EN"
     SYSTEM "xhtml11-image-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

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

<!ENTITY % Img.element  "INCLUDE" >
<![%Img.element;[
<!ENTITY % Img.content  "EMPTY" >
<!ELEMENT img  %Img.content; >
<!-- end of Img.element -->]]>

<!ENTITY % Img.attlist  "INCLUDE" >
<![%Img.attlist;[
<!ATTLIST img
      %Common.attrib;
      src          %URI.datatype;           #REQUIRED
      alt          %Text.datatype;          #REQUIRED
      longdesc     %URI.datatype;           #IMPLIED
      height       %Length.datatype;        #IMPLIED
      width        %Length.datatype;        #IMPLIED
>
<!-- end of Img.attlist -->]]>

<!-- end of xhtml11-image-1.mod -->

C.3.7. Client-side Image Map

<!-- ...................................................................... -->
<!-- XHTML 1.1 Client-side Image Map Module  .............................. -->
<!-- file: xhtml11-csismap-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-csismap-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Client-side Image Maps 1.0//EN"
     SYSTEM "xhtml11-csismap-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

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

<!ENTITY % Map.element  "INCLUDE" >
<![%Map.element;[
<!ENTITY % Map.content
     "(( %Block.mix; ) | area )+"
>
<!ELEMENT map  %Map.content; >
<!-- end of Map.element -->]]>

<!ENTITY % Map.attlist  "INCLUDE" >
<![%Map.attlist;[
<!ATTLIST map
      id           ID                       #REQUIRED
      class        CDATA                    #IMPLIED
      title        %Text.datatype;          #IMPLIED
      xml:lang     %LanguageCode.datatype;  #IMPLIED
      dir          (ltr|rtl)                #IMPLIED
      %Events.attrib;
>
<!-- end of Map.attlist -->]]>

<!ENTITY % Area.element  "INCLUDE" >
<![%Area.element;[
<!ENTITY % Area.content  "EMPTY" >
<!ELEMENT area  %Area.content; >
<!-- end of Area.element -->]]>

<!ENTITY % Shape.datatype "( rect | circle | poly | default )">
<!ENTITY % Coords.datatype "CDATA" >

<!ENTITY % Area.attlist  "INCLUDE" >
<![%Area.attlist;[
<!ATTLIST area
      %Common.attrib;
      href         %URI.datatype;           #IMPLIED
      shape        %Shape.datatype;         'rect'
      coords       %Coords.datatype;        #IMPLIED
      nohref       (nohref)                 #IMPLIED
      alt          %Text.datatype;          #REQUIRED
      tabindex     %Number.datatype;        #IMPLIED
      accesskey    %Character.datatype;     #IMPLIED
>
<!-- end of Area.attlist -->]]>

<!-- modify anchor attribute definition list
     to allow for client-side image maps
-->
<!ATTLIST a
      shape        %Shape.datatype;         'rect'
      coords       %Coords.datatype;        #IMPLIED
>

<!-- modify img attribute definition list
     to allow for client-side image maps
-->
<!ATTLIST img
      usemap       IDREF                    #IMPLIED
>
<!-- '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.
-->

<!-- end of xhtml11-csismap-1.mod -->

C.3.8. Server-side Image Map

<!-- ...................................................................... -->
<!-- XHTML 1.1 Client-side Image Map Module  .............................. -->
<!-- file: xhtml11-csismap-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-csismap-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Client-side Image Maps 1.0//EN"
     SYSTEM "xhtml11-csismap-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

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

<!ENTITY % Map.element  "INCLUDE" >
<![%Map.element;[
<!ENTITY % Map.content
     "(( %Block.mix; ) | area )+"
>
<!ELEMENT map  %Map.content; >
<!-- end of Map.element -->]]>

<!ENTITY % Map.attlist  "INCLUDE" >
<![%Map.attlist;[
<!ATTLIST map
      id           ID                       #REQUIRED
      class        CDATA                    #IMPLIED
      title        %Text.datatype;          #IMPLIED
      xml:lang     %LanguageCode.datatype;  #IMPLIED
      dir          (ltr|rtl)                #IMPLIED
      %Events.attrib;
>
<!-- end of Map.attlist -->]]>

<!ENTITY % Area.element  "INCLUDE" >
<![%Area.element;[
<!ENTITY % Area.content  "EMPTY" >
<!ELEMENT area  %Area.content; >
<!-- end of Area.element -->]]>

<!ENTITY % Shape.datatype "( rect | circle | poly | default )">
<!ENTITY % Coords.datatype "CDATA" >

<!ENTITY % Area.attlist  "INCLUDE" >
<![%Area.attlist;[
<!ATTLIST area
      %Common.attrib;
      href         %URI.datatype;           #IMPLIED
      shape        %Shape.datatype;         'rect'
      coords       %Coords.datatype;        #IMPLIED
      nohref       (nohref)                 #IMPLIED
      alt          %Text.datatype;          #REQUIRED
      tabindex     %Number.datatype;        #IMPLIED
      accesskey    %Character.datatype;     #IMPLIED
>
<!-- end of Area.attlist -->]]>

<!-- modify anchor attribute definition list
     to allow for client-side image maps
-->
<!ATTLIST a
      shape        %Shape.datatype;         'rect'
      coords       %Coords.datatype;        #IMPLIED
>

<!-- modify img attribute definition list
     to allow for client-side image maps
-->
<!ATTLIST img
      usemap       IDREF                    #IMPLIED
>
<!-- '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.
-->

<!-- end of xhtml11-csismap-1.mod -->

C.3.9. Object

<!-- ...................................................................... -->
<!-- XHTML 1.0 External Inclusion Module  ................................. -->
<!-- file: xhtml1-object-1.mod

     This is XHTML 1.0, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml1-object-1.mod 1.4 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Object Element 1.0//EN"
     SYSTEM "xhtml1-object-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Embedded Objects

        object, param

     This module declares the object element type and its attributes,
     used to embed external objects as part of XHTML pages; param 
     elements should precede other content.
-->

<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
<!ENTITY % URIs.datatype "CDATA" >

<!-- object: Generic Embedded Object ................... -->

<!ENTITY % Object.element  "INCLUDE" >
<![%Object.element;[
<!ENTITY % Object.content
     "( #PCDATA | %Flow.mix; | param )*"
>
<!ELEMENT object  %Object.content; >
<!-- end of Object.element -->]]>

<!ENTITY % Object.attlist  "INCLUDE" >
<![%Object.attlist;[
<!ATTLIST object
      %Common.attrib;
      declare      (declare)                #IMPLIED
      classid      %URI.datatype;           #IMPLIED
      codebase     %URI.datatype;           #IMPLIED
      data         %URI.datatype;           #IMPLIED
      type         %ContentType.datatype;   #IMPLIED
      codetype     %ContentType.datatype;   #IMPLIED
      archive      %URIs.datatype;          #IMPLIED
      standby      %Text.datatype;          #IMPLIED
      height       %Length.datatype;        #IMPLIED
      width        %Length.datatype;        #IMPLIED
      usemap       IDREF                    #IMPLIED
      name         CDATA                    #IMPLIED
      tabindex     %Number.datatype;        #IMPLIED
>
<!-- end of Object.attlist -->]]>

<!-- param: Named Property Value ....................... -->

<!ENTITY % Param.element  "INCLUDE" >
<![%Param.element;[
<!ENTITY % Param.content  "EMPTY" >
<!ELEMENT param  %Param.content; >
<!-- end of Param.element -->]]>

<!ENTITY % Param.attlist  "INCLUDE" >
<![%Param.attlist;[
<!ATTLIST param
      id           ID                       #IMPLIED
      name         CDATA                    #REQUIRED
      value        CDATA                    #IMPLIED
      valuetype    (data|ref|object)        'data'
      type         %ContentType.datatype;   #IMPLIED
>
<!-- end of Param.attlist -->]]>

<!-- end of xhtml1-object-1.mod -->

C.3.10. Frames

<!-- ...................................................................... -->
<!-- XHTML 1.0 Frames Module  ............................................. -->
<!-- file: xhtml1-frames-1.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml1-frames-1.mod 1.4 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Frames//EN"
     SYSTEM "xhtml1-frames-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Frames 

        frame, frameset, noframes

     This module declares frame-related element types and attributes.
-->

<!-- comma-separated list of MultiLength -->
<!ENTITY % MultiLengths.datatype "CDATA" >

<!-- render in this frame --> 
<!ENTITY % FrameTarget.datatype "CDATA" >

<!-- The content model for XHTML documents depends on whether 
     the <head> is followed by a <frameset> or <body> element. 
--> 
 
<!ENTITY % Frameset.content  "(( frameset | frame )+, noframes? )" >
<!ELEMENT frameset  %Frameset.content; >
<!ATTLIST frameset 
      %Core.attrib;
      rows         %MultiLengths.datatype;  #IMPLIED
      cols         %MultiLengths.datatype;  #IMPLIED
> 
 
<!-- reserved frame names start with "_" otherwise starts with letter --> 

<!ENTITY % Frame.content  "EMPTY" >
<!ELEMENT frame  %Frame.content; >
<!ATTLIST frame 
      %Core.attrib;
      longdesc     %URI.datatype;           #IMPLIED
      name         CDATA                    #IMPLIED
      src          %URI.datatype;           #IMPLIED
      frameborder  (1|0)                    '1'
      marginwidth  %Pixels.datatype;        #IMPLIED
      marginheight %Pixels.datatype;        #IMPLIED
      noresize     (noresize)               #IMPLIED
      scrolling    (yes|no|auto)            'auto'
> 
 
<!-- changes to other declarations .................... -->

<!-- redefine content model for html element, 
     substituting frameset for body -->
<!ENTITY % Html.content "( head, frameset )" >
 
<!-- alternate content container for non frame-based rendering --> 
 
<!ENTITY % Noframes.content "( body )"> 
<!ELEMENT noframes  %Noframes.content; >
<!ATTLIST noframes 
      %Common.attrib;
> 

<!-- add 'target' attribute to 'a' element -->
<!ATTLIST a
      target       %FrameTarget.datatype;   #IMPLIED
>

<!-- end of xhtml1-frames-1.mod -->

C.3.11. Iframe

<!-- ...................................................................... -->
<!-- XHTML 1.0 IFrame Module  ............................................. -->
<!-- file: xhtml1-iframe-1.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml1-iframe-1.mod 1.4 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Frame Element//EN"
     SYSTEM "xhtml1-iframe-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Inline Frames 

        iframe

     This module declares the iframe element type and its attributes,
     used to create an inline frame within a document. 
-->

<!-- Inline Frames .................................... -->

<!ENTITY % Iframe.content  "( %Flow.mix; )*" > 
<!ELEMENT iframe  %Iframe.content; > 
<!ATTLIST iframe 
      %Core.attrib;
      longdesc     %URI.datatype;           #IMPLIED
      name         CDATA                    #IMPLIED
      src          %URI.datatype;           #IMPLIED
      frameborder  (1|0)                    '1'
      marginwidth  %Pixels.datatype;        #IMPLIED
      marginheight %Pixels.datatype;        #IMPLIED
      scrolling    (yes|no|auto)            'auto'
      height       %Length.datatype;        #IMPLIED
      width        %Length.datatype;        #IMPLIED
> 

<!-- end of xhtml1-iframe-1.mod -->

C.3.12. Intrinsic Events

<!-- ...................................................................... -->
<!-- XHTML 1.1 Intrinsic Events Module  ................................... -->
<!-- file: xhtml11-events-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-events-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Intrinsic Events 1.0//EN"
     SYSTEM "xhtml11-events-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- 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)."
-->

<!ENTITY % Events.attrib
     "onclick      %Script.datatype;        #IMPLIED
      ondblclick   %Script.datatype;        #IMPLIED
      onmousedown  %Script.datatype;        #IMPLIED
      onmouseup    %Script.datatype;        #IMPLIED
      onmouseover  %Script.datatype;        #IMPLIED
      onmousemove  %Script.datatype;        #IMPLIED
      onmouseout   %Script.datatype;        #IMPLIED
      onkeypress   %Script.datatype;        #IMPLIED
      onkeydown    %Script.datatype;        #IMPLIED
      onkeyup      %Script.datatype;        #IMPLIED"
>

<!-- additional attributes on anchor element
-->
<!ATTLIST a
     onfocus      %Script.datatype;         #IMPLIED
     onblur       %Script.datatype;         #IMPLIED
>

<!-- additional attributes on form element
-->
<!ATTLIST form
      onsubmit     %Script.datatype;        #IMPLIED
      onreset      %Script.datatype;        #IMPLIED
>

<!-- additional attributes on label element
-->
<!ATTLIST label
      onfocus      %Script.datatype;        #IMPLIED
      onblur       %Script.datatype;        #IMPLIED
>

<!-- additional attributes on input element
-->
<!ATTLIST input
      onfocus      %Script.datatype;        #IMPLIED
      onblur       %Script.datatype;        #IMPLIED
      onselect     %Script.datatype;        #IMPLIED
      onchange     %Script.datatype;        #IMPLIED
>

<!-- additional attributes on select element
-->
<!ATTLIST select
      onfocus      %Script.datatype;        #IMPLIED
      onblur       %Script.datatype;        #IMPLIED
      onchange     %Script.datatype;        #IMPLIED
>

<!-- additional attributes on textarea element
-->
<!ATTLIST textarea
      onfocus      %Script.datatype;        #IMPLIED
      onblur       %Script.datatype;        #IMPLIED
      onselect     %Script.datatype;        #IMPLIED
      onchange     %Script.datatype;        #IMPLIED
>

<!-- additional attributes on button element
-->
<!ATTLIST button
      onfocus      %Script.datatype;        #IMPLIED
      onblur       %Script.datatype;        #IMPLIED
>

<!-- additional attributes on body element
-->
<!ATTLIST body
      onload       %Script.datatype;        #IMPLIED
      onunload     %Script.datatype;        #IMPLIED
>

<!-- additional attributes on area element
-->
<!ATTLIST area
      onfocus      %Script.datatype;        #IMPLIED
      onblur       %Script.datatype;        #IMPLIED
>

<!-- end of xhtml11-events-1.mod -->

C.3.13. Metainformation

<!-- ...................................................................... -->
<!-- XHTML 1.1 Document Metainformation Module  ........................... -->
<!-- file: xhtml11-meta-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-meta-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Metainformation 1.0//EN"
     SYSTEM "xhtml11-meta-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Meta Information

        meta

     This module declares the meta element type and its attributes,
     used to provide declarative document metainformation.
-->

<!-- meta: Generic Metainformation ..................... -->

<!ENTITY % Meta.element  "INCLUDE" >
<![%Meta.element;[
<!ENTITY % Meta.content  "EMPTY" >
<!ELEMENT meta  %Meta.content; >
<!-- end of Meta.element -->]]>

<!ENTITY % Meta.attlist  "INCLUDE" >
<![%Meta.attlist;[
<!ATTLIST meta
      %I18n.attrib;
      http-equiv   NMTOKEN                  #IMPLIED
      name         NMTOKEN                  #IMPLIED
      content      CDATA                    #REQUIRED
      scheme       CDATA                    #IMPLIED
>
<!-- end of Meta.attlist -->]]>

<!-- end of xhtml11-meta-1.mod -->

C.3.14. Scripting

<!-- ...................................................................... -->
<!-- XHTML 1.1 Document Scripting Module  ................................. -->
<!-- file: xhtml11-script-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-script-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Scripting 1.0//EN"
     SYSTEM "xhtml11-script-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

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

<!ENTITY % Script.element  "INCLUDE" >
<![%Script.element;[
<!ENTITY % Script.content  "( #PCDATA )" >
<!ELEMENT script  %Script.content; >
<!-- end of Script.element -->]]>

<!ENTITY % Script.attlist  "INCLUDE" >
<![%Script.attlist;[
<!ATTLIST script
      charset      %Charset.datatype;       #IMPLIED
      type         %ContentType.datatype;   #REQUIRED
      src          %URI.datatype;           #IMPLIED
      defer        (defer)                  #IMPLIED
      xml:space    CDATA                    #FIXED 'preserve'
>
<!-- end of Script.attlist -->]]>

<!-- noscript: No-Script Alternate Content ............. -->

<!ENTITY % Noscript.element  "INCLUDE" >
<![%Noscript.element;[
<!ENTITY % Noscript.content
     "( %Block.mix; )+"
>
<!ELEMENT noscript  %Noscript.content; >
<!-- end of Noscript.element -->]]>

<!ENTITY % Noscript.attlist  "INCLUDE" >
<![%Noscript.attlist;[
<!ATTLIST noscript
      %Common.attrib;
>
<!-- end of Noscript.attlist -->]]>

<!-- end of xhtml11-script-1.mod -->

C.3.15. Stylesheet

<!-- ...................................................................... -->
<!-- XHTML 1.1 Document Stylesheet Module  ................................ -->
<!-- file: xhtml11-style-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-style-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//DTD XHTML 1.1 Stylesheets 1.0//EN"
     SYSTEM "xhtml11-style-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

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

<!ENTITY % Style.element  "INCLUDE" >
<![%Style.element;[
<!ENTITY % Style.content  "( #PCDATA )" >
<!ELEMENT style  %Style.content; >
<!-- end of Style.element -->]]>

<!ENTITY % Style.attlist  "INCLUDE" >
<![%Style.attlist;[
<!ATTLIST style
      %I18n.attrib;
      type         %ContentType.datatype;   #REQUIRED
      media        %MediaDesc.datatype;     #IMPLIED
      title        %Text.datatype;          #IMPLIED
      xml:space    CDATA                    #FIXED 'preserve'
>
<!-- end of Style.attlist -->]]>

<!-- end of xhtml11-style-1.mod -->

C.3.16. Link

<!-- ...................................................................... -->
<!-- XHTML 1.1 Link Element Module  ....................................... -->
<!-- file: xhtml11-link-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-link-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Link Element 1.0//EN"
     SYSTEM "xhtml11-link-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

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

<!ENTITY % Link.element  "INCLUDE" >
<![%Link.element;[
<!ENTITY % Link.content  "EMPTY" >
<!ELEMENT link  %Link.content; >
<!-- end of Link.element -->]]>

<!ENTITY % Link.attlist  "INCLUDE" >
<![%Link.attlist;[
<!ATTLIST link
      %Common.attrib;
      charset      %Charset.datatype;       #IMPLIED
      href         %URI.datatype;           #IMPLIED
      hreflang     %LanguageCode.datatype;  #IMPLIED
      type         %ContentType.datatype;   #IMPLIED
      rel          %LinkTypes.datatype;     #IMPLIED
      rev          %LinkTypes.datatype;     #IMPLIED
      media        %MediaDesc.datatype;     #IMPLIED
>
<!-- end of Link.attlist -->]]>

<!-- end of xhtml11-link-1.mod -->

C.3.17. Base

<!-- ...................................................................... -->
<!-- XHTML 1.1 Base Element Module  ....................................... -->
<!-- file: xhtml11-base-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-base-1.mod 1.6 99/08/26 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Base Element 1.0//EN"
     SYSTEM "xhtml11-base-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

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

<!ENTITY % Base.element  "INCLUDE" >
<![%Base.element;[
<!ENTITY % Base.content  "EMPTY" >
<!ELEMENT base  %Base.content; >
<!-- end of Base.element -->]]>

<!ENTITY % Base.attlist  "INCLUDE" >
<![%Base.attlist;[
<!ATTLIST base
      href         %URI.datatype;           #REQUIRED
>
<!-- end of Base.attlist -->]]>

<!ENTITY % Head.content
    "( %Head-opts.mix;,
     ( ( title, %Head-opts.mix;, ( base, %Head-opts.mix; )? )
     | ( base, %Head-opts.mix;, ( title, %Head-opts.mix; ))))"
>

<!-- end of xhtml11-base-1.mod -->