Contents
This appendix is normative.
This section contains the driver for the XHTML 2 document type implementation as an XML Schema. Note that the structure and techniques in these driver files are as described in Modularization of XHTML [XHTMLMOD].
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3.org/1999/xhtml"
xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
xmlns="http://www.w3.org/1999/xhtml"
elementFormDefault="qualified" >
<xs:annotation>
<xs:documentation>
This is the XML Schema driver for XHTML 1.1.
Please use this namespace for XHTML elements:
"http://www.w3.org/1999/xhtml"
$Id: xhtml2.xsd,v 1.1.2.1 2009/01/16 17:50:25 ahby Exp $
</xs:documentation>
<xs:documentation source="xhtml-copyright-1.xsd"/>
</xs:annotation>
<xs:annotation>
<xs:documentation>
This is XHTML, a reformulation of HTML as a modular XML application
The Extensible HyperText Markup Language (XHTML)
Copyright ©1998-2007 World Wide Web Consortium
(Massachusetts Institute of Technology, European Research Consortium
for Informatics and Mathematics, Keio University).
All Rights Reserved.
Permission to use, copy, modify and distribute the XHTML Schema
modules and their accompanying xs: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
these XML Schema modules for any purpose.
They are provided "as is" without expressed or implied warranty.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
This is the Schema Driver file for XHTML2
Document Type
This schema
+ imports external schemas (xml.xsd)
+ refedines (and include)s schema modules for XHTML2 Document Type.
+ includes Schema for Named content model for the
XHTML2 Document Type
XHTML2 Document Type includes the following Modules
XHTML Core modules (Required for XHTML Family Conformance)
+ text
+ hypertext
+ lists
+ structure
Other XHTML modules
+ Edit
+ Bdo
+ Presentational
+ Link
+ Meta
+ Base
+ Scripting
+ Style
+ Image
+ Applet
+ Object
+ Param (Applet/Object modules require Param Module)
+ Tables
+ Forms
+ Client side image maps
+ Server side image maps
+ Ruby
</xs:documentation>
</xs:annotation>
<xs:import
namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd">
<xs:annotation>
<xs:documentation>
This import brings in the XML namespace attributes
The XML attributes are used by various modules.
</xs:documentation>
</xs:annotation>
</xs:import>
<xs:import
namespace="http://www.w3.org/1999/xhtml/datatypes/"
schemaLocation="xhtml-datatypes-2.xsd"/>
<xs:include
schemaLocation="xhtml2-modules-1.xsd">
<xs:annotation>
<xs:documentation>
Schema that includes all modules (and redefinitions)
for XHTML2 Document Type.
</xs:documentation>
</xs:annotation>
</xs:include>
<xs:include
schemaLocation="xhtml2-model-1.xsd">
<xs:annotation>
<xs:documentation>
Document Model module for the XHTML2 Document Type.
This schema file defines all named models used by XHTML
Modularization Framework for XHTML2 Document Type
</xs:documentation>
</xs:annotation>
</xs:include>
</xs:schema>
This section contains a driver that accumulates all of the attribute collections and defines the Common collection based upon them.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
<xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/"
schemaLocation="xhtml-datatypes-2.xsd" />
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd">
<xs:annotation>
<xs:documentation>
This import brings in the XML namespace attributes
The module itself does not provide the schemaLocation
and expects the driver schema to provide the
actual SchemaLocation.
</xs:documentation>
</xs:annotation>
</xs:import>
<xs:include schemaLocation="xhtml-core-2.xsd"/>
<xs:include schemaLocation="xhtml-bidi-2.xsd"/>
<xs:include schemaLocation="xml-events-attribs-2.xsd"/>
<xs:include schemaLocation="xhtml-edit-2.xsd"/>
<xs:include schemaLocation="xhtml-embedding-2.xsd"/>
<!-- forms common collection -->
<xs:include schemaLocation="xhtml-hyperAttributes-2.xsd"/>
<xs:include schemaLocation="xhtml-i18n-2.xsd"/>
<xs:include schemaLocation="xhtml-csismap-2.xsd"/>
<xs:include schemaLocation="xhtml-media-attrib-2.xsd"/>
<xs:include schemaLocation="xhtml-metaAttributes-2.xsd"/>
<xs:include schemaLocation="xhtml-role-attrib-2.xsd"/>
<xs:include schemaLocation="xhtml-style-attrib-2.xsd"/>
<xs:attributeGroup name="xhtml.Core.extra.attrib"/>
<xs:attributeGroup name="xhtml.Bidi.extra.attrib"/>
<xs:attributeGroup name="xmlEvents.extra.attrib"/>
<xs:attributeGroup name="xhtml.Edit.extra.attrib"/>
<xs:attributeGroup name="xhtml.Embedding.extra.attrib"/>
<xs:attributeGroup name="xhtml.Hypertext.extra.attrib"/>
<xs:attributeGroup name="xhtml.I18n.extra.attrib"/>
<xs:attributeGroup name="xhtml.Csismap.extra.attrib"/>
<xs:attributeGroup name="xhtml.Media.extra.attrib"/>
<xs:attributeGroup name="xhtml.MetaAttributes.extra.attrib"/>
<xs:attributeGroup name="xhtml.Role.extra.attrib"/>
<xs:attributeGroup name="xhtml.Style.extra.attrib"/>
<xs:attributeGroup name="xhtml.CommonNoEvents.attrib">
<xs:attributeGroup ref="xhtml.Core.attrib"/>
<xs:attributeGroup ref="xhtml.Bidi.attrib"/>
<xs:attributeGroup ref="xhtml.Edit.attrib"/>
<xs:attributeGroup ref="xhtml.Embedding.attrib"/>
<xs:attributeGroup ref="xhtml.Hypertext.attrib"/>
<xs:attributeGroup ref="xhtml.I18n.attrib"/>
<xs:attributeGroup ref="xhtml.ImageMap.attrib"/>
<xs:attributeGroup ref="xhtml.Media.attrib"/>
<xs:attributeGroup ref="xhtml.MetaAttributes.attrib"/>
<xs:attributeGroup ref="xhtml.Role.attrib"/>
<xs:attributeGroup ref="xhtml.Style.attrib"/>
<xs:attributeGroup ref="xhtml.Common.extra"/>
</xs:attributeGroup>
<xs:attributeGroup name="xhtml.Common.attrib">
<xs:attributeGroup ref="xhtml.CommonNoEvents.attrib"/>
<xs:attributeGroup ref="xmlEvents.attrib"/>
</xs:attributeGroup>
<xs:attributeGroup name="xhtml.Global.Core.extra.attrib"/>
<xs:attributeGroup name="xhtml.Global.Edit.extra.attrib"/>
<xs:attributeGroup name="xhtml.Global.Embedding.extra.attrib"/>
<xs:attributeGroup name="xhtml.Global.Hypertext.extra.attrib"/>
<xs:attributeGroup name="xhtml.Global.Media.extra.attrib"/>
</xs:schema>
This section instantiates the XHTML 2 Content Model using XML Schema, including defining the various XHTML 2 Content Sets that are used by the modules.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
elementFormDefault="qualified" >
<xs:import
namespace="http://www.w3.org/1999/xhtml/datatypes/"
schemaLocation="xhtml-datatypes-2.xsd"/>
<xs:annotation>
<xs:documentation>
This is the XML Schema module of common content models for XHTML11
$Id: xhtml2-model-1.xsd,v 1.1.2.2 2009/04/07 14:13:23 ahby Exp $
</xs:documentation>
<xs:documentation source="xhtml-copyright-1.xsd"/>
</xs:annotation>
<xs:annotation>
<xs:documentation>
XHTML Document Model
This module describes the groupings of elements/attributes
that make up common content models for XHTML elements.
XHTML has following basic content models:
xhtml.Text.mix; character-level elements
xhtml.Structural.mix; block-like elements, e.g., paragraphs and lists
xhtml.Flow.mix; any block or inline elements
xhtml.HeadOpts.mix; Head Elements
xhtml.StructuralPre.mix; Special class for pre content model
Any groups declared in this module may be used to create
element content models, but the above are considered 'global'
(insofar as that term applies here). XHTML has the
following Attribute Groups
xhtml.Core.extra.attrib
xhtml.I18n.extra.attrib
xhtml.Common.extra
The above attribute Groups are considered Global
</xs:documentation>
</xs:annotation>
<xs:attributeGroup
name="xhtml.Common.extra">
<xs:annotation>
<xs:documentation> Extended Common Attributes </xs:documentation>
</xs:annotation>
</xs:attributeGroup>
<xs:attributeGroup
name="xhtml.Global.Common.extra">
<xs:annotation>
<xs:documentation> Extended Global Common Attributes </xs:documentation>
</xs:annotation>
</xs:attributeGroup>
<xs:group
name="xhtml.Head.extra">
<xs:sequence/>
</xs:group>
<xs:group
name="xhtml.head.content">
<xs:sequence>
<xs:element
name="title"
minOccurs="1"
maxOccurs="1"
type="xhtml.title.type"/>
<xs:choice>
<xs:element
name="access"
type="xhtml.access.type"/>
<xs:element
name="action"
type="xmlHandlers.action.type"/>
<xs:element
name="link"
type="xhtml.link.type"/>
<xs:element
name="listener"
type="xmlEvents.listener.type"/>
<xs:element
name="meta"
type="xhtml.meta.type"/>
<xs:element
name="style"
type="xhtml.style.type"/>
<xs:group ref="xhtml.Head.extra"/>
</xs:choice>
</xs:sequence>
</xs:group>
<!-- Text Elements -->
<xs:group
name="xhtml.Text.extra">
<xs:sequence/>
</xs:group>
<xs:group
name="xhtml.TextNoRuby.class">
<xs:choice>
<xs:element
name="abbr"
type="xhtml.abbr.type"/>
<xs:element
name="caption"
type="xhtml.caption.type"/>
<xs:element
name="cite"
type="xhtml.cite.type"/>
<xs:element
name="code"
type="xhtml.code.type"/>
<xs:element
name="dfn"
type="xhtml.dfn.type"/>
<xs:element
name="em"
type="xhtml.em.type"/>
<xs:element
name="kbd"
type="xhtml.kbd.type"/>
<xs:element
name="l"
type="xhtml.l.type"/>
<xs:element
name="q"
type="xhtml.q.type"/>
<xs:element
name="samp"
type="xhtml.samp.type"/>
<xs:element
name="span"
type="xhtml.span.type"/>
<xs:element
name="strong"
type="xhtml.strong.type"/>
<xs:element
name="sub"
type="xhtml.sub.type"/>
<xs:element
name="sup"
type="xhtml.sup.type"/>
<xs:element
name="var"
type="xhtml.var.type"/>
<xs:element
name="img"
type="xhtml.img.type"/>
<xs:element
name="link"
type="xhtml.link.type"/>
<xs:element
name="meta"
type="xhtml.meta.type"/>
<xs:element
name="object"
type="xhtml.object.type"/>
</xs:choice>
</xs:group>
<xs:group name="xhtml.Text.class">
<xs:choice>
<xs:element
name="ruby"
type="xhtml.ruby.type"/>
<xs:group
ref="xhtml.TextNoRuby.class"/>
</xs:choice>
</xs:group>
<xs:group name="xhtml.Text.mix">
<xs:choice>
<xs:group ref="xhtml.Text.class"/>
<xs:group ref="xhtml.Text.extra"/>
</xs:choice>
</xs:group>
<xs:group
name="xhtml.Heading.class">
<xs:choice>
<xs:element
name="h"
type="xhtml.h.type"/>
<xs:element
name="h1"
type="xhtml.h1.type"/>
<xs:element
name="h2"
type="xhtml.h2.type"/>
<xs:element
name="h3"
type="xhtml.h3.type"/>
<xs:element
name="h4"
type="xhtml.h4.type"/>
<xs:element
name="h5"
type="xhtml.h5.type"/>
<xs:element
name="h6"
type="xhtml.h6.type"/>
</xs:choice>
</xs:group>
<xs:group
name="xhtml.List.class">
<xs:choice>
<xs:element
name="ul"
type="xhtml.ul.type"/>
<xs:element
name="ol"
type="xhtml.ol.type"/>
<xs:element
name="dl"
type="xhtml.dl.type"/>
</xs:choice>
</xs:group>
<xs:group
name="xhtml.List.extra">
<xs:sequence/>
</xs:group>
<xs:group name="xhtml.List.mix">
<xs:choice>
<xs:group ref="xhtml.List.class"/>
<xs:group ref="xhtml.List.extra"/>
</xs:choice>
</xs:group>
<xs:group
name="xhtml.Table.class">
<xs:choice>
<xs:element
name="table"
type="xhtml.table.type"/>
</xs:choice>
</xs:group>
<xs:group
name="xhtml.Structural.class">
<xs:choice>
<xs:element
name="action"
type="xmlHandlers.action.type"/>
<xs:element
name="address"
type="xhtml.address.type"/>
<xs:element
name="blockcode"
type="xhtml.blockcode.type"/>
<xs:element
name="blockquote"
type="xhtml.blockquote.type"/>
<xs:element
name="div"
type="xhtml.div.type"/>
<xs:group ref="xhtml.List.class"/>
<xs:element
name="listener"
type="xmlEvents.listener.type"/>
<xs:element
name="p"
type="xhtml.p.type"/>
<xs:element
name="pre"
type="xhtml.pre.type"/>
<xs:element
name="script"
type="xmlScripting.script.type"/>
<xs:element
name="section"
type="xhtml.section.type"/>
<xs:element
name="separator"
type="xhtml.separator.type"/>
<xs:element
name="style"
type="xhtml.style.type"/>
<xs:element
name="table"
type="xhtml.table.type"/>
</xs:choice>
</xs:group>
<xs:group
name="xhtml.Structural.extra">
<xs:sequence/>
</xs:group>
<!--
Structural.mix includes all block elements plus %Misc.class;
-->
<xs:group name="xhtml.Structural.mix">
<xs:choice>
<xs:group ref="xhtml.Structural.class"/>
<xs:group ref="xhtml.Structural.extra"/>
</xs:choice>
</xs:group>
<xs:group
name="xhtml.Flow.class">
<xs:choice>
<xs:group
ref="xhtml.Heading.class"/>
<xs:group
ref="xhtml.Structural.class"/>
<xs:group
ref="xhtml.Text.class"/>
</xs:choice>
</xs:group>
<!--
All Content Elements
Flow.mix includes all text content, block and inline
Note that the "any" element included here allows us
to add data from any other namespace, a necessity
for compound document creation.
Note however that it is not possible to add
to any head level element without further
modification. To add RDF metadata to the head
of a document, modify the structure module.
-->
<xs:group name="xhtml.Flow.extra">
<xs:sequence/>
</xs:group>
<xs:group
name="xhtml.Flow.mix">
<xs:choice>
<xs:group
ref="xhtml.Flow.class"/>
<xs:group
ref="xhtml.Flow.extra"/>
</xs:choice>
</xs:group>
<xs:element
name="html"
type="xhtml.html.type"/>
</xs:schema>
This section loads all of the modules that are used in XHTML 2. The modules themselves are defined in the next Appendix.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/" >
<xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/"
schemaLocation="xhtml-datatypes-2.xsd" />
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd" />
<xs:annotation>
<xs:documentation>
This schema includes all modules for XHTML1.1 Document Type.
$Id: xhtml2-modules-1.xsd,v 1.1.2.5 2009/04/07 16:32:57 ahby Exp $
</xs:documentation>
<xs:documentation source="xhtml-copyright-1.xsd"/>
</xs:annotation>
<xs:annotation>
<xs:documentation>
This schema includes all modules (and redefinitions)
for XHTML2 Document Type.
XHTML2 Document Type includes the following Modules
XHTML Core modules (Required for XHTML Family Conformance)
+ text
+ hypertext
+ lists
+ structure
Other XHTML modules
+ Edit
+ Bdo
+ Presentational
+ Link
+ Meta
+ Base
+ Scripting
+ Style
+ Image
+ Applet
+ Object
+ Param (Applet/Object modules require Param Module)
+ Tables
+ Target
+ Forms
+ Client side image maps
+ Server side image maps
</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="xhtml2-attribs-1.xsd"/>
<xs:include schemaLocation="xhtml-framework-2.xsd"/>
<xs:include schemaLocation="xhtml-structural-2.xsd"/>
<xs:include schemaLocation="xhtml-text-2.xsd"/>
<xs:include schemaLocation="xhtml-hypertext-2.xsd"/>
<xs:include schemaLocation="xhtml-list-2.xsd"/>
<xs:redefine schemaLocation="xhtml-document-2.xsd">
<xs:attributeGroup name="xhtml.version.attrib">
<xs:attribute name="version" type="xh11d:CDATA" fixed="xhtml2"/>
</xs:attributeGroup>
</xs:redefine>
<xs:include schemaLocation="xhtml-edit-2.xsd"/>
<xs:include schemaLocation="xhtml-i18n-2.xsd"/>
<xs:include schemaLocation="xhtml-meta-2.xsd"/>
<xs:include schemaLocation="xhtml-legacy-br-2.xsd"/>
<xs:include schemaLocation="xhtml-legacy-edit-2.xsd"/>
<xs:include schemaLocation="xhtml-legacy-heading-2.xsd"/>
<xs:redefine schemaLocation="xhtml-access-2.xsd">
<xs:attributeGroup name="xhtmlAccess.Common.attrib">
<xs:attributeGroup ref="xhtml.Common.attrib"/>
</xs:attributeGroup>
</xs:redefine>
<xs:redefine schemaLocation="xml-events-2.xsd">
<xs:attributeGroup name="xmlEvents.Common.attrib">
<xs:attributeGroup ref="xhtml.CommonNoEvents.attrib"/>
</xs:attributeGroup>
</xs:redefine>
<xs:redefine schemaLocation="xml-handlers-2.xsd">
<xs:attributeGroup name="xmlHandlers.Common.attrib">
<xs:attributeGroup ref="xhtml.Common.attrib"/>
</xs:attributeGroup>
</xs:redefine>
<xs:redefine schemaLocation="xml-script-2.xsd">
<xs:attributeGroup name="xmlScripting.Common.attrib"/>
<xs:attributeGroup name="xmlScripting.script.attlist">
<xs:attributeGroup ref="xhtml.Common.attrib"/>
<xs:attribute name="charset" type="xh11d:Charset"/>
<xs:attribute name="defer" type="xs:NMTOKEN" fixed="defer"/>
<xs:attribute name="implements" type="xh11d:URIorSafeCURIEs"/>
</xs:attributeGroup>
</xs:redefine>
<xs:include schemaLocation="xhtml-style-2.xsd"/>
<xs:include schemaLocation="xhtml-image-2.xsd"/>
<xs:include schemaLocation="xhtml-csismap-2.xsd"/>
<xs:include schemaLocation="xhtml-object-2.xsd"/>
<xs:include schemaLocation="xhtml-param-2.xsd"/>
<xs:include schemaLocation="xhtml-table-2.xsd"/>
<xs:include schemaLocation="xhtml-ruby-2.xsd"/>
<xs:include schemaLocation="xml-events-2.xsd"/>
</xs:schema>