3. XHTML Schema Modules

Contents

This chapter is normative.

3.1. XHTML Abstract Modules

The DTD modularization framework specification speaks at length on the subject of abstract modules. In brief, an "abstract" module is simply a set of objects, in this case objects within an ordered hierarchy of content objects, which encapsulates all of the features of the objects and assembles them into a coherent set. This set of objects and their properties is independent of its machine representation, and so is the same whether written in DTD module form, as a Schema module, or as a Java class.

The abstract modules described in XHTML-MOD are composed in a functional manner, and each "abstract module" contains data structures that are generally functionally similar. (There is no requirement that modules be created along functional lines; any other method that suits the author's purpose may be used instead.)

The framework described here makes use of the same abstract modules as in XHTML-MOD with few exceptions. In the case of the schema module representation, the relationship between the "abstract" modules and the schema modules is quite close. In each case there is a one-to-one relationship between the abstract and concrete modules (with one exception for the changes to the legacy module) and they share essentially the same names and data structures.

3.2. XHTML Schema Modules

3.2.1. Required Modules

These modules must be included in any document that uses the XHTML namespace. Each section below describes the purpose of the module and its contents.

Schema location

SCHEMA/req/xhtml-framework-1.xsd

Use

Required

Type

Module Container

Description

Required XHTML modules

Contents

SCHEMA/req/xhtml-framework-1.xsd
SCHEMA/req/xhtml-core-1.xsd

Redefinitions

No

Dependencies

None

These files should not be modified by developers; instead use <redefine> or a substitution group.

3.2.1.1. Framework Modules

This is a module container for XHTML language support modules.

Schema location

SCHEMA/req/xhtml-framework-1.xsd

Use

Required

Type

Module Container

Description

Language support modules

Contents

SCHEMA/req/framework/xhtml-notations-1.xsd
SCHEMA/req/framework/xhtml-datatypes-1.xsd
SCHEMA/req/framework/xhtml-events-1.xsd
SCHEMA/req/framework/xhtml-attribs-1.xsd
SCHEMA/req/framework/xhtml11-model-1.xsd
SCHEMA/req/framework/xhtml-charent-1.xsd

Redefinitions

No

Dependencies

None

3.2.1.1.1. Notations

Schema location

SCHEMA/req/framework/xhtml-notations-1.xsd

Use

Required

Type

Language Support- SGML notations

Contents

SGML Notations- see the SGML catalog file

Redefinitions

No

Dependencies

None

3.2.1.1.2. Data types

Schema location

SCHEMA/req/framework/xhtml-datatypes-1.xsd

Use

Required

Type

Language Support - common data types

Contents

XHTML data type definitions

Redefinitions

No

Dependencies

None

3.2.1.1.3. Events

Schema location

SCHEMA/req/framework/xhtml-events-1.xsd

Use

Required

Type

Language Support - common events attributes

Contents

Common events attributes for XHTML

Redefinitions

Yes

Dependencies

Element definitions

3.2.1.1.4. Common Attributes

Schema location

SCHEMA/req/framework/xhtml-attribs-1.xsd

Use

Required

Type

Language Support - common attribute groups

Contents

Abstract attribute groups

Redefinitions

No

Dependencies

Element definitions

3.2.1.1.5. Common Content Models

Schema location

SCHEMA/req/framework/xhtml11-model-1.xsd

Use

Required

Type

Language Support - common content model groups

Contents

Abstract content models

Redefinitions

No

Dependencies

Element definitions

3.2.1.1.6. Character Entities

The character entities module includes three notation elements within an <appinfo> element, each referencing one of the required entity sets in XHTML: ISO Latin-1, Symbols, and Special characters.

Character entities are not fully supported in XML Schema, as described in Section 2.1.

Schema location

SCHEMA/req/framework/xhtml-charent-1.xsd

Use

Required

Type

Language Support

Contents

Character Entities for XHTML

Redefinitions

No

Dependencies

None

3.2.1.2. Core Element Modules

These are the core element definitions for the required modules.

Schema location

SCHEMA/req/core/xhtml-core-1.xsd

Use

Required

Type

Module Container

Description

Core element modules

Contents

SCHEMA/req/core/xhtml-text-1.xsd
SCHEMA/req/core/xhtml-hypertext-1.xsd
SCHEMA/req/core/xhtml-list-1.xsd
SCHEMA/req/core/xhtml-ruby-1.xsd
SCHEMA/req/core/xhtml-struct-1.xsd

Redefinitions

No

Dependencies

None

3.2.1.2.1. Text Modules

Schema location

SCHEMA/req/core/xhtml-text-1.xsd

Use

Required

Type

Module Container

Description

Text element modules

Contents

SCHEMA/req/core/text/xhtml-blkphras-1.xsd
SCHEMA/req/core/text/xhtml-blkstruct-1.xsd
SCHEMA/req/core/text/xhtml-inlphras-1.xsd
SCHEMA/req/core/text/xhtml-inlstruct-1.xsd

Redefinitions

No

Dependencies

None

Block Phrasal

Schema location

SCHEMA/req/core/text/xhtml-blkphras-1.xsd

Use

Required

Type

Element definitions

Redefinitions

No

Dependencies

None

Elements

address
blockquote
h1
h2
h3
h4
h5
h6
pre

Redefinitions

No

Dependencies

None

Block Structural

Schema location

SCHEMA/req/core/text/xhtml-blkstruct-1.xsd

Use

Required

Type

Element definitions

Elements

div
p

Redefinitions

No

Dependencies

None

Inline Phrasal

Schema location

SCHEMA/req/core/text/xhtml-inlphras-1.xsd

Use

Required

Type

Element definitions

Elements

abbr
acronym
cite
code
dfn
em
kbd
q
samp
strong
var

Redefinitions

No

Dependencies

None

  Inline Structural

Schema location

SCHEMA/req/core/text/xhtml-inlstruct-1.xsd

Use

Required

Type

Element definitions

Elements

br
span

Redefinitions

No

Dependencies

None

3.2.1.2.2. Hypertext

Schema location

SCHEMA/req/core/xhtml-hypertext-1.xsd

Use

Required

Type

Element definitions

Elements

a

Redefinitions

No

Dependencies

None

3.2.1.2.3. Lists

Schema location

SCHEMA/req/core/xhtml-list-1.xsd

Use

Required

Type

Element definitions

Elements

dd
dl
dt
li
ol
ul

Redefinitions

No

Dependencies

None

3.2.1.2.4. Ruby

Ruby elements denote annotations used in some Asian languages. [RUBY]

The Ruby module has been moved into the core element definitions module because it is normatively required in XHTML 1.1

Schema location

SCHEMA/req/core/xhtml-ruby-1.xsd

Use

Required

Type

Element definitions

Elements

rb
rbc
rp
rt
rtc
ruby

Redefinitions

No

Dependencies

None

3.2.1.2.5. Structural

Schema location

SCHEMA/req/core/xhtml-struct-1.xsd

Use

Required

Type

Element definitions

Elements

body
head
html
title

Redefinitions

No

Dependencies

None

3.2.2. Optional Modules

These modules are (clearly) optional; they may be removed or combined arbitrarily (except for dependencies). Developers should not modify the contents of these files as they part of the XHTML definition. Instead, extension in the optional modules should be confined to redefinitions and derivations.

Schema location

SCHEMA/xhtml-optional-1.xsd

Use

Required

Type

Module Container

Description

Optional modules

Contents

SCHEMA/opt/xhtml-edit-1.xsd
SCHEMA/opt/xhtml-bdo-1.xsd
SCHEMA/opt/xhtml-link-1.xsd
SCHEMA/opt/xhtml-meta-1.xsd
SCHEMA/opt/xhtml-base-1.xsd
SCHEMA/opt/xhtml-script-1.xsd
SCHEMA/opt/xhtml-style-1.xsd
SCHEMA/opt/xhtml-image-1.xsd
SCHEMA/opt/xhtml-csismap-1.xsd
SCHEMA/opt/xhtml-ssismap-1.xsd
SCHEMA/opt/xhtml-param-1.xsd
SCHEMA/opt/xhtml-applet-1.xsd
SCHEMA/opt/xhtml-object-1.xsd
SCHEMA/opt/xhtml-table-1.xsd
SCHEMA/opt/xhtml-form-1.xsd
SCHEMA/opt/xhtml-nameident-1.xsd
SCHEMA/opt/xhtml-legacy-1.xsd
SCHEMA/opt/frames/xhtml-frames-1.xsd
SCHEMA/opt/frames/xhtml-target-1.xsd
SCHEMA/opt/frames/xhtml-iframe-1.xsd

Redefinitions

No

Dependencies

None

3.2.2.1. Edit

Schema location

SCHEMA/opt/xhtml-edit-1.xsd

Use

Optional

Type

Element definitions

Elements

del
ins

Redefinitions

No

Dependencies

None

3.2.2.2. Bdo

Schema location

SCHEMA/opt/xhtml-bdo-1.xsd

Use

Optional

Type

Element definitions

Elements

bdo

Redefinitions

No

Dependencies

None

3.2.2.3. Presentational

Schema location

SCHEMA/opt/xhtml-pres-1.xsd

Use

Optional

Type

Module Container

Description

Presentational element modules

Contents

SCHEMA/opt/pres/xhtml-blkpres-1.xsd
SCHEMA/opt/pres/xhtml-inlpres-1.xsd

3.2.2.3.1. Inline Presentational

Schema location

SCHEMA/opt/pres/xhtml-inlpres-1.xsd

Use

Optional

Type

Element definitions

Elements

b
big
i
small
sub
sup
tt

Redefinitions

No

Dependencies

None

3.2.2.3.2. Block Presentational

Schema location

SCHEMA/opt/pres/xhtml-blkpres-1.xsd

Use

Optional

Type

Element definitions

Elements

hr

Redefinitions

No

Dependencies

None

3.2.2.4. Link

Schema location

SCHEMA/opt/xhtml-link-1.xsd

Use

Optional

Type

Element definitions

Elements

link

Redefinitions

No

Dependencies

None

3.2.2.5. Meta

Schema location

SCHEMA/opt/xhtml-meta-1.xsd

Use

Optional

Type

Element definitions

Elements

meta

Redefinitions

No

Dependencies

None

3.2.2.6. Base

Schema location

SCHEMA/opt/xhtml-base-1.xsd

Use

Optional

Type

Element definitions

Elements

base

Redefinitions

No

Dependencies

None

3.2.2.7. Scripting

Schema location

SCHEMA/opt/xhtml-script-1.xsd

Use

Optional

Type

Element definitions

Elements

noscript
script

Redefinitions

No

Dependencies

None

3.2.2.8. Style

Schema location

SCHEMA/opt/xhtml-style-1.xsd

Use

Optional

Type

Element definitions

Elements

style

Redefinitions

No

Dependencies

None

3.2.2.9. Image

Schema location

SCHEMA/opt/xhtml-image-1.xsd

Use

Optional

Type

Element definitions

Elements

img

Redefinitions

No

Dependencies

None

3.2.2.10. Client-side Image Maps

Schema location

SCHEMA/opt/xhtml-csismap-1.xsd

Use

Optional

Type

Element definitions

Elements

area
map

Redefinitions

No

Dependencies

None

3.2.2.11. Server-side Image Maps

Schema location

SCHEMA/opt/xhtml-ssismap-1.xsd

Use

Optional

Type

Attribute definitions

Redefinitions

No

Dependencies

None

3.2.2.12. Param

Schema location

SCHEMA/opt/xhtml-param-1.xsd

Use

Optional

Type

Element definitions

Elements

param

Redefinitions

No

Dependencies

None

3.2.2.13. Applet

Schema location

SCHEMA/opt/xhtml-applet-1.xsd

Use

Optional

Type

Element definitions

Elements

applet

Redefinitions

No

Dependencies

Param::param

3.2.2.14. Object

Schema location

SCHEMA/opt/xhtml-object-1.xsd

Use

Optional

Type

Element definitions

Elements

object

Redefinitions

No

Dependencies

Param::param

3.2.2.15. Tables

Schema location

SCHEMA/opt/xhtml-table-1.xsd

Use

Optional

Type

Element definitions

Elements

caption
col
colgroup
table
tbody
td
tfoot
th
thead
tr

Redefinitions

No

Dependencies

None

3.2.2.16. Forms

Schema location

SCHEMA/opt/xhtml-form-1.xsd

Use

Optional

Type

Element definitions

Elements

button
fieldset
form
input
label
legend
optgroup
option
select
textarea

Redefinitions

No

Dependencies

None

3.2.2.17. Nameident

Schema location

SCHEMA/opt/xhtml-nameident-1.xsd

Use

Optional

Type

Attribute definitions

Redefinitions

No

Dependencies

None

3.2.2.18. Legacy

This module has been reorganized to conform to the framework conventions used here. It has been divided here into two separate modules. The "misc" module contains everything in the DTD legacy model except frames. Frames are now in a separate module called framedefs. This allows the developer to easily separate the legacy features if desired.

Schema location

SCHEMA/opt/xhtml-legacy-1.xsd

Use

Optional

Type

Module container

Contents

SCHEMA/opt/misc/xhtml-misc-1.xsd SCHEMA/opt/xhtml-framedefs-1.xsd

Redefinitions

No

Dependencies

None

3.2.2.18.1. Misc

Schema location

SCHEMA/opt/misc/xhtml-misc-1.xsd

Use

Optional

Type

Element definitions

Elements

basefont
center
dir
font
isindex
menu
s
strike
u

Redefinitions

Yes

Dependencies

Yes

3.2.2.18.2. Framedefs

Schema location

SCHEMA/opt/xhtml-framedefs-1.xsd

Use

Optional

Type

Element definitions

Contents

SCHEMA/opt/xhtml-frames-1.xsd
SCHEMA/opt/frames/xhtml-target-1.xsd
SCHEMA/opt/frames/xhtml-iframe-1.xsd

Redefinitions

Yes

Dependencies

Yes

Frames

Schema location

SCHEMA/opt/frames/xhtml-frames-1.xsd

Use

Optional

Type

Element definitions

Elements

frame
frameset
noframes

Redefinitions

Yes

Dependencies

Target::target

Target

Schema location

SCHEMA/opt/frames/xhtml-target-1.xsd

Use

Optional

Type

Attribute redefinitions

Redefinitions

Yes

Dependencies

Yes

Iframe

Schema location

SCHEMA/opt/frames/xhtml-iframe-1.xsd

Use

Optional

Type

Element definitions

Elements

iframe

Redefinitions

Yes

Dependencies

Target::target

3.2.2.19. Basic Forms

Schema location

SCHEMA/opt/xhtml-basic-form-1.xsd

Use

Optional

Type

Element definitions

Elements

form
input
label
option
select
textarea

Redefinitions

No

Dependencies

Removal of Forms

3.2.2.20. Basic Tables

Schema location

SCHEMA/opt/xhtml-basic-table-1.xsd

Use

Optional

Type

Element definitions

Elements

caption
table
td
th
tr

Redefinitions

No

Dependencies

Removal of Tables

3.2.3. XHTML Hub Document   (Non-normative)

This is an example base schema document that includes all the other modules to create the complete schema.

3.2.3.1. XHTML 1.1

The hub document included here intends to approximate XHTML 1.1 subject to the requirements given in Section 1.4. This schema should be fully equivalent to the DTD version except for schema-specific additions and changes. This hub document is non-normative and provided only as an example.

Schema location

SCHEMA/xhtml-1.1.xsd

Use

Main schema document

Type

Module Container

Description

Hub document

Redefinitions

No

Dependencies

None

Contents

SCHEMA/req/xhtml-framework-1.xsd
SCHEMA/xhtml-optional-1.xsd  

3.3. Validity and Conformance

The purpose of any language definition, regardless of its basis on DTDs, XML Schema, or some other representation, is the same: to determine if a specific document instance conforms to the language definition. In XML Schema terms, this means that documents can be validated using the schema. The validation process attempts to determine the document's structural integrity, and the behavior of any XML processor in cases of validation errors is well-defined in the XML 1.0 specification. Therefore the real test of any modularization system for XHTML is whether the resulting schema can be used to determine if any particular XHTML document instance is valid.

This document does not attempt to define conformance beyond the ability to validate the structural integrity of documents. In particular it does not attempt to describe any level of user-agent conformance, as this is not a modularization issue, but an issue for the specification of the language semantics. Conformance to the XML Schema-based modularization framework is strictly defined in terms of document validation. Further levels of conformance are described in the published language specifications themselves.

3.3.1. XHTML Conformance

Schemas defining language variants within the XHTML namespace may be considered to be conformant if they:

3.3.2. Schema Modularization Conformance

An XML Schema or set of Schema modules can be considered to be conformant to this schema modularization framework if they follow the schema modularization framework conventions described in Section 2.2.

3.3.3. The XHTML Family of Documents

The XHTML Family of Documents is defined as the set of language variants that use the XHTML namespace as the namespace of the root element, which must be <html>.

In order to be a conformant member of the XHTML Family of Documents, an XML Schema or set of schema modules must:

This class of document definitions includes both XHTML language variants and compound document types using external modules.

3.3.4. Versioning

Versioning of modules that claim conformance to this specification is subject to the framework conventions in Section 2.2. Versioning information should be available in the version block section of each conformant module.