W3C

XHTML Basic

W3C Working Draft 10 February 2000

This version:
http://www.w3.org/TR/2000/WD-xhtml-basic-20000210
(Plain text version, PostScript version, PDF version, ZIP archive, or Gzip'd TAR archive)
Latest version:
http://www.w3.org/TR/xhtml-basic
Previous version:
http://www.w3.org/TR/1999/WD-xhtml-basic-19991221
Editors:
Masayasu Ishikawa, W3C
Shinichi Matsui, Panasonic
Peter Stark, Phone.com
Toshihiko Yamakami, Access Co., Ltd.

Abstract

The XHTML Basic document type is a subset of XHTML 1.1 [XHTML11]. It includes the minimal set of modules required to be an XHTML Family document type, and in addition it includes images, forms, and basic tables. It is designed for Web clients that do not support the full set of XHTML features; for example, Web clients such as mobile phones, PDAs, pagers, and settop boxes. The document type is rich enough for content authoring.

The document type definition is implemented using XHTML modules as defined in "Modularization of XHTML" [XHTMLMOD].

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.

This document is the "Last Call Working Draft" of "XHTML Basic". The Last Call review period ends at 2359Z on 15 March 2000. Please send review comments before the review period ends to www-html-editor@w3.org.

Public discussion of HTML takes place on www-html@w3.org (archived). To subscribe send an email to <www-html-request@w3.org> with the word subscribe in the subject line.

This document has been produced as part of the W3C HTML Activity, and it has been prepared by the Mobile Subgroup of the W3C HTML Working Group (members only) based on input from the WAP Forum Application's group and members of the W3C Mobile Access Interest Group (members only). This document will be used by the Mobile Subgroup of the W3C HTML Working Group and the W3C Mobile Access Interest Group to find a common ground for future markup languages aimed at content for small information appliances.

This is work in progress, and does not imply endorsement by, nor the consensus of, either W3C membership, WAP Forum membership, or members of the HTML Working Group or the Mobile Access Interest Group. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than "work in progress". A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR.

Table of Contents

1. Introduction

1.1. XHTML for Small Information Appliances

HTML 4 was designed for large devices, overlapping windows/frames menus, mouse input pointing device, high powered CPU, large power supply. Requiring a full fledge computer for access to the World Wide Web excludes a large portion of the population from consumer device access of online information and services.

Because there are many ways to subset HTML, there are many almost identical subsets defined by organizations and companies. Without a common base set of features, developing applications for a wide range of Web clients is difficult. Transformation between XHTML based languages is easier if they share a common set of elements. The goal of XHTML Basic is to converge various HTML subset into one common subset of XHTML.

The document type definition for XHTML Basic is implemented based on the XHTML modules defined in Modularized XHTML [XHTMLMOD].

1.2. Background and Requirements

Information appliances are targeted for particular uses. They support the features they need for the functions they are designed to fulfill. The following are examples of different information appliances:

Existing subsets and variants of HTML for these clients include "Compact HTML" [CHTML], the Wireless Markup Language [WML], and the "HTML 4.0 Guidelines for Mobile Access" [GUIDELINES]. The common features found in these document types include:

This set of HTML features has been the starting point for the design of XHTML Basic. The fact that most content developers are familiar with HTML makes it appropriate as a host language, that include markup modules from other languages using the methods described in "Building XHTML Modules" [XHTMLMOD]. For example, XHTML Basic may be extended with an Event Module that is more generic than the traditional HTML 4 event system.

It is not the intention of XHTML Basic to limit the functionality of future languages. But since the features in HTML 4 (frames, advanced tables, fixed set of attribute event handlers, and objects) were developed for a desktop computer type of client, they have proved to be inappropriate for many non-desktop devices. We believe XHTML Basic will be extended and built upon. Extending XHTML from a common and basic set of features, instead of many almost identical subsets or the too large set of functions in HTML 4, we think is good for interoperability on the Web, as well as scalability. Compared to the rich functionality of HTML 4, XHTML Basic may look like one step back, but in fact, it is two steps forward for clients that do not need what is in HTML 4 and for content developers that get one XHTML subset instead of many.

1.3. Design Rationale

This section explains why certain HTML features are not part of XHTML Basic.

1.3.1. Style Sheets

The style element is not supported. External Style sheets are recommended. The link element can be used to include external style sheets. The div and span elements and the class attribute are supported to hook style information onto the structure. Separation between structure and presentation allows user agents to download the style sheets if they support style sheets; user agents that do not support style sheets can ignore the external stylesheet. The media attribute can be used to select the appropriate stylesheets. See the section on "Media types" in the HTML 4.01 specification ([HTML4], section 14.2.4) for more details.

1.3.2. Script and Events

The script and noscript elements are not supported. Usually small devices have limited memory and CPU power. Execution of script programs may not be supported. Contents should be readable even if scripts are not executed.

Event handler attributes used to invoke script programs are not supported. Events are device dependent. An incoming-call event is unlikely to happen in a television. A generic event handling mehanism would be more appropriate than hardwiring the event names in the document type definition.

1.3.3. Presentation

Many simple Web clients cannot display fonts other than monospace. Bi-directional text, bold faced font, and other text extension elements are not supported. However, phrasal elements such as emphasize, em, and headers are supported.

It is recommended that style sheets are used to create a presentation that is appropriate for the device.

1.3.4. Forms

Basic XHTML forms ([XHTMLMOD], section 4.5.1) are supported. Since only devices with a local file system can take advantage of file and image input types in forms, they are not included in the basic forms. Also, content developers should keep in mind that users may not be able to input many characters from some devices (e.g a mobile phone).

1.3.5. Tables

Basic XHTML tables ([XHTMLMOD], section 4.6.1) are supported, but tables can be difficult to display on small devices. Content developers are recommended to follow the accessability guidelines for tables ([WAI-WEBCONTENT], Guideline 5). Note that in Basic Tables Module, nesting of tables is prohibited.

1.3.6. Frames

Frames are not supported. Frames depend on screen interface and are not part of XHTML 1.1.

1.3.7. Objects

Images are supported using the img element. The object and param elements are not supported. Limited input capabilities, for example no pointing device, has excluded image-maps.

2. Conformance

This section is normative.

2.1. Document Conformance

A Conforming XHTML Basic 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 name of the default namespace on the root element must be the XHTML namespace name, http://www.w3.org/1999/xhtml.
  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 Basic 1.0//EN"
                          "xhtml-basic10.dtd">
    

2.2. User Agent Conformance

The user agent must conform to the "User Agent Conformance" section of the XHTML specification ([XHTML1], section 3.2).

3. The XHTML Basic Document Type

This section is normative.

The XHTML Basic document type is defined as a set of XHTML modules. All XHTML modules are defined in the "Modularization of XHTML" specification [XHTMLMOD].

XHTML Basic consists of the following XHTML modules:

Structure Module*
body, head, html, title
Text Module*
abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var
Hypertext Module*
a
List Module*
dl, dt, dd, ol, ul, li
Basic Forms Module
form, input, label, select, option, textarea
Basic Tables Module
caption, table, td, th, tr
Image Module
img
Meta Information Module
meta
Link Module
link
Base Module
base

(*) = This module is a required XHTML Family module.

An XML 1.0 DTD is available in Appendix B.

NOTE: Since the HTML event handler attributes are not included in XHTML Basic, form controls outside forms may not function as expected by the user.

4. How to Use XHTML Basic

Although XHTML Basic can be used as it is, - a simple XHTML language with text, links, and images -, the intention with its simple design is to use it as a host language. A host language can contain a mix of vocabularies all rolled into one document type. It is natural that XHTML is the host language, since that is what most Web developers are used to.

When markup from other languages is added to XHTML Basic, the resulting document type will be an extension of XHTML Basic. Content developers can develop for the XHTML Basic or take advantage of the extensions. The point is that XHTML Basic always is the common language that user agents supports. See "Building XHTML Modules" [BUILDING] for information about how to define markup language modules that are compatible with the modularization framework used by XHTML.

5. Acknowledgements

Thanks to Gary Adams (Sun), Johan Hjelm (W3C/Ericsson), Wayne Carr (Intel) and the W3C HTML Working Group for contributing, reviewing and commenting on this document.

A. References

A.1. Normative References

[BUILDING]
"Building XHTML Modules", W3C Working Draft, M. Altheim, S. McCarron, eds., 5 January 2000. Available at: http://www.w3.org/TR/2000/WD-xhtml-building-20000105
The latest version is available at: http://www.w3.org/TR/xhtml-building
[HTML4]
"HTML 4.01 Specification", W3C Recommendation, D. Raggett, A. Le Hors, I. Jacobs, eds., 24 December 1999. Available at: http://www.w3.org/TR/1999/REC-html401-19991224
The latest version is available at: http://www.w3.org/TR/html4
[XHTML1]
"XHTML 1.0: The Extensible HyperText Markup Language - A Reformulation of HTML 4 in XML 1.0", W3C Recommendation, Steven Pemberton et al., 26 January 2000. Available at: http://www.w3.org/TR/2000/REC-xhtml1-20000126
The latest version is available at: http://www.w3.org/TR/xhtml1
[XHTML11]
"XHTML 1.1 - Module-based XHTML", W3C Working Draft, M. Altheim, S. McCarron, eds., 5 January 2000. Available at: http://www.w3.org/TR/2000/WD-xhtml11-20000105
The latest version is available at: http://www.w3.org/TR/xhtml11
[XHTMLMOD]
"Modularization of XHTML", W3C Working Draft, M. Altheim et al., eds., 5 January 2000. Available at: http://www.w3.org/TR/2000/WD-xhtml-modularization-20000105
The latest version is available at: http://www.w3.org/TR/xhtml-modularization
[XML]
"Extensible Markup Language (XML) 1.0", W3C Recommendation, T. Bray, J. Paoli, C. M. Sperberg-McQueen, eds., 10 February 1998. Available at: http://www.w3.org/TR/1998/REC-xml-19980210
The latest version is available at: http://www.w3.org/TR/REC-xml

A.2. Informative References

[CHTML]
"Compact HTML for Small Information Appliances", W3C Note, T. Kamada, 9 February 1998. Available at: http://www.w3.org/TR/1998/NOTE-compactHTML-19980209
[GUIDELINES]
"HTML 4.0 Guidelines for Mobile Access, W3C Note, T. Kamada, T. Asada, M. Ishikawa, S. Matsui, eds., 15 March 1999. Available at: http://www.w3.org/TR/1999/NOTE-html40-mobile-19990315
The latest version is available at: http://www.w3.org/TR/NOTE-html40-mobile
[WAI-WEBCONTENT]
"Web Content Accessibility Guidelines 1.0", W3C Recommendation, W. Chisholm, G. Vanderheiden, I. Jacobs, eds., 5 May 1999. Available at: http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505
The latest version is available at: http://www.w3.org/TR/WAI-WEBCONTENT
[WML]
"Wireless Markup Language Specification", WAP Forum Ltd. Available from http://www.wapforum.org/what/technical.htm

B. XHTML Basic Document Type Definition

This appendix is normative.

B.1. SGML Open Catalog Entry for XHTML Basic

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

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

--  XHTML Basic Catalog Data File

    Revision:  $Id: xhtml-basic10.cat,v 2.2 2000/02/09 21:33:57 altheim Exp $ SMI

    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 Basic DTD modular driver file  ..................................... --

PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"                       "xhtml-basic10.dtd"

-- XHTML Basic framework module ............................................. --

PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN"  "xhtml-basic10-model-1.mod"


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

B.2. XHTML Basic Driver

This section contains the driver for the XHTML Basic document type implementation as an XML DTD. It relies upon XHTML module implementations defined in [XHTMLMOD].

<!-- XHTML Basic 1.0 DTD  ...................................................... -->
<!-- file: xhtml-basic10.dtd -->

<!-- XHTML Basic 1.0 DTD

     This is XHTML Basic, a proper subset of XHTML.

     Copyright 1998-2000 World Wide Web Consortium
        (Massachusetts Institute of Technology, Institut National de
         Recherche en Informatique et en Automatique, Keio University).
         All Rights Reserved.

     Permission to use, copy, modify and distribute the XHTML Basic 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.

        Editors:    Murray M. Altheim <mailto:altheim@eng.sun.com>
                    Peter Stark       <mailto:stark@corp.phone.com>
        Revision:   $Id: xhtml-basic10.dtd,v 2.3 2000/02/10 00:12:44 altheim Exp $ SMI

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

     Please use this formal public identifier to identify it:

         "-//W3C//DTD XHTML Basic 1.0//EN"
-->
<!ENTITY % XHTML.version  "-//W3C//DTD XHTML Basic 1.0//EN" >

<!-- Use this URI to identify the default namespace:

         "http://www.w3.org/1999/xhtml"

     See the Qualified Names module for information
     on the use of namespace prefixes in the DTD.
-->
<!ENTITY % XHTML.prefixed "IGNORE" >
<!ENTITY % XHTML.prefix  "" >

<!-- Reserved for use with the XLink namespace:
-->
<!ENTITY % XLINK.xmlns "" >
<!ENTITY % XLINK.xmlns.attrib "" >

<!-- For example, if you are using XHTML Basic 1.0 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 Basic 1.0//EN"
                               "xhtml-basic10.dtd" >
         <html xmlns="http://www.w3.org/1999/xhtml"
               xml:lang="en" >
         ...
         </html>
-->

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

<!-- Bidirectional Text features
     This feature-test entity is used to declare elements
     and attributes used for bidirectional text support.
-->
<!ENTITY % XHTML.bidi  "IGNORE" >

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

<!ENTITY % xhtml-events.module   "IGNORE" >
<!ENTITY % xhtml-bdo.module      "%XHTML.bidi;" >

<!ENTITY % xhtml-model.mod
     PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN"
            "xhtml-basic10-model-1.mod" >

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

<!ENTITY % Pre.content
     "( #PCDATA
      | %Inlstruct.class;
      %Inlphras.class;
      %Anchor.class;
      %Inline.extra; )*"
>

<!ENTITY % xhtml-text.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
            "xhtml-text-1.mod" >
%xhtml-text.mod;

<!ENTITY % xhtml-hypertext.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
            "xhtml-hypertext-1.mod" >
%xhtml-hypertext.mod;

<!ENTITY % xhtml-list.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
            "xhtml-list-1.mod" >
%xhtml-list.mod;

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

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

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

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

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

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

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

<!ENTITY % xhtml-struct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
            "xhtml-struct-1.mod" >
%xhtml-struct.mod;

<!-- end of XHTML Basic 1.0 DTD  ........................................... -->

B.3. XHTML Basic Customizations

An XHTML Family Document Type (such as XHTML Basic) 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 Basic Driver (above) work together to customize the module implementations to the document type's specific requirements. The content model module for XHTML Basic is defined below:

<!-- ....................................................................... -->
<!-- XHTML Basic 1.0 Document Model Module  .................................... -->
<!-- file: xhtml-basic10-model-1.mod

     This is XHTML Basic, a proper subset of XHTML.
     Copyright 1998-2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: $Id: xhtml-basic10-model-1.mod,v 2.2 2000/02/10 00:12:44 altheim Exp $ SMI

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

       PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN"
       SYSTEM "xhtml-basic10-model-1.mod"

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

<!-- XHTML Basic Document Model

     This module describes the groupings of elements that make up
     common content models for XHTML elements.
-->

<!-- Optional Elements in head  .............. -->

<!ENTITY % Head-opts.mix  
     "( %Meta.qname; | %Link.qname; )*" >

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

<!ENTITY % Misc.class "" >

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

<!ENTITY % Inlstruct.class "%Br.qname; | %Span.qname;" >

<!ENTITY % Inlphras.class
     "| %Em.qname; | %Strong.qname; | %Dfn.qname; | %Code.qname; 
      | %Samp.qname; | %Kbd.qname; | %Var.qname; | %Cite.qname; 
      | %Abbr.qname; | %Acronym.qname; | %Q.qname;" >

<!ENTITY % Inlpres.class "" >
<!ENTITY % I18n.class "" >
<!ENTITY % Anchor.class "| %A.qname;" >
<!ENTITY % Inlspecial.class "| %Img.qname;" >

<!ENTITY % Inline.extra 
     "| %Input.qname; | %Select.qname; | %Textarea.qname;
      | %Label.qname;" 
>

<!ENTITY % Inline.class
     "%Inlstruct.class;
      %Inlphras.class;
      %Anchor.class;
      %Inlspecial.class;
      %Inline.extra;"
>

<!ENTITY % Inline-noA.class
     "%Inlstruct.class;
      %Inlphras.class;
      %Inlspecial.class;
      %Inline.extra;"
>

<!ENTITY % Inline-noA.mix
     "%Inline-noA.class;
      %Misc.class;"
>

<!ENTITY % Inline.mix
     "%Inline.class;
      %Misc.class;"
>

<!-- Block Elements  ......................... -->

<!ENTITY % Heading.class 
     "%H1.qname; | %H2.qname; | %H3.qname;
      | %H4.qname; | %H5.qname; | %H6.qname;"
>
<!ENTITY % List.class  "%Ul.qname; | %Ol.qname; | %Dl.qname;" >
<!ENTITY % Table.class "| %Table.qname;" >
<!ENTITY % Form.class  "| %Form.qname;" >

<!ENTITY % Blkstruct.class "%P.qname; | %Div.qname;" >
<!ENTITY % Blkphras.class 
     "| %Pre.qname; | %Blockquote.qname; | %Address.qname;"
>
<!ENTITY % Blkpres.class "" >
<!ENTITY % Block.extra 
     "%Table.class;
      %Form.class;"
>

<!ENTITY % Block.class
     "%Blkstruct.class;
      %Blkphras.class;
      %Block.extra;"
>

<!ENTITY % Block.mix
     "%Heading.class;
      | %List.class;
      | %Block.class;
      %Misc.class;"
>

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

<!-- declares all content except tables
-->
<!ENTITY % Flow-noTable.mix
     "%Heading.class;
      | %List.class;
      | %Blkstruct.class;
      %Blkphras.class;
      %Form.class;
      | %Inline.class;
      %Misc.class;"
>

<!ENTITY % Flow.mix
     "%Heading.class;
      | %List.class;
      | %Block.class;
      | %Inline.class;
      %Misc.class;"
>

<!-- end of xhtml-basic10-model-1.mod -->