Abstract

RDFa Core 1.1 [RDFA-CORE] defines attributes and syntax for embedding semantic markup in Host Languages. This document defines one such Host Language. This language is a superset of XHTML 1.1 [XHTML11-2e], integrating the attributes as defined in RDFa Core 1.1. This document is intended for authors who want to create XHTML Family documents that embed rich semantic markup.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This is an Editorial Revision of the Recommendation published on the 22nd of August, 2013. That document was a revision of Sections 8 and 9 and Appendix A of RDFa Syntax 1.0 [RDFA-SYNTAX], superseding those sections. There are a number of substantive differences between this version and the 2008 version, including:

  1. Inheritance of basic processing rules from [RDFA-CORE].
  2. The inclusion of an implementation of the markup language using XML Schema.
  3. The addition of @lang to be consistent with recent changes in [XHTML11-2e].
  4. Removal of the collection of TERMs from this document - instead deferring the definitions in an RDFa Initial Context document.

A sample test harness is available. This set of tests is not intended to be exhaustive. Users may find the tests to be useful examples of RDFa usage.

The implementation report used by the director to transition to Recommendation has been made available. There have been no formal objections to the publication of this document.

This document was published by the RDFa Working Group as a Recommendation. If you wish to make comments regarding this document, please send them to [email protected] (subscribe, archives). All comments are welcome.

Please see the Working Group's implementation report.

This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 14 October 2005 W3C Process Document.

Table of Contents

1. Introduction

XHTML+RDFa 1.1 is an XHTML Family markup language. It extends the XHTML 1.1 markup language with the attributes defined in RDFa Core 1.1. The document also defines an XHTML Modularization-compatible [XHTML-MODULARIZATION11-2e] module for the RDFa Core attributes in both XML DTD and XML Schema formats.

2. Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, and SHOULD are to be interpreted as described in [RFC2119].

2.1 Document Conformance

A strictly conforming XHTML+RDFa document is a document that requires only the facilities described as mandatory in this specification. Such a document satisfies the following criteria:

  1. The document MUST conform to the constraints expressed in the schemas in Appendix A - XHTML+RDFa XML Schema and Appendix B - XHTML+RDFa Document Type Definition.

  2. The local part of the root element of the document MUST be html.

  3. The start tag of the root element of the document MUST explicitly contain a default namespace declaration for the XHTML namespace [XML-NAMES11]. The namespace URI for XHTML is defined to be http://www.w3.org/1999/xhtml.

    The start tag MAY also contain the declaration of the XML Schema Instance Namespace and an XML Schema Instance schemaLocation attribute [XMLSCHEMA11-2]. Such an attribute would associate the XHTML namespace http://www.w3.org/1999/xhtml with the XML Schema at the URI http://www.w3.org/MarkUp/SCHEMA/xhtml-rdfa-2.xsd.

  4. There MAY Be a @version attribute on the html element with the value "XHTML+RDFa 1.1".
Example 1: Example of an XHTML+RDFa 1.1 document
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" 
    version="XHTML+RDFa 1.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3.org/1999/xhtml
                        http://www.w3.org/MarkUp/SCHEMA/xhtml-rdfa-2.xsd"
    lang="en"
    xml:lang="en">
  <head>
    <title>Virtual Library</title>
  </head>
  <body>
    <p>Moved to <a href="http://example.org/">example.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 SHOULD use XML declarations in all their documents. XHTML document authors MUST use an XML declaration when the character encoding of the document is other than the default UTF-8 or UTF-16 and no encoding is specified by a higher-level protocol.

XHTML+RDFa documents SHOULD be labeled with the Internet Media Type "application/xhtml+xml" as defined in [RFC3236]. For further information on using media types with XHTML Family markup languages, see the informative note [XHTML-MEDIA-TYPES].

2.2 User Agent Conformance

A conforming user agent MUST support all of the features required in this specification. A conforming user agent must also support the User Agent conformance requirements as defined in XHTML Modularization [XHTML-MODULARIZATION11-2e] section on "XHTML Family User Agent Conformance".

3. Additional RDFa Processing Rules

Documents conforming to the rules in this specification are processed according to [RDFA-CORE] with the following extensions:

When an XHTML+RDFa document uses @version on the html element, a conforming RDFa Processor MUST examine the value of this attribute. If the value matches that of a defined version of XHTML+RDFa, then the processing rules for that version MUST be used. If the value does not match a defined version, or there is no @version attribute, then the processing rules for the most recent version of XHTML+RDFa must be used.

4. XHTML+RDFa 1.1 Definition

The XHTML+RDFa 1.1 document type is a fully functional document type with rich semantics. It is a superset of [XHTML11-2e].

The XHTML+RDFa 1.1 document type is made up of the following XHTML modules. The elements, attributes, and content models associated with these modules are defined in "XHTML Modularization" [XHTML-MODULARIZATION11-2e]. The elements are listed here for information purposes, but the definitions in XHTML Modularization should be considered authoritative.

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. @href is available on all elements.
List Module
dl, dt, dd, ol, ul, li
Object Module
object, param
Presentation Module
b, big, hr, i, small, sub, sup, tt
Edit Module
del, ins
Bidirectional Text Module
bdo
Forms Module
button, fieldset, form, input, label, legend, select, optgroup, option, textarea
Table Module
caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr
Image Module
img
Client-side Image Map Module
area, map
Server-side Image Map Module
Attribute ismap on img
Intrinsic Events Module
Events attributes
Metainformation Module
meta
Scripting Module
noscript, script
Stylesheet Module
style element
Style Attribute Module Deprecated
@style
Target Module
@target
Link Module
link
Base Module
base
Metainformation Attributes Module
@about, @content, @datatype, @inlist, @typeof, @prefix, @property, @rel, @resource, @rev, @vocab are available on all elements.
Ruby Annotation Module from [RUBY]
ruby, rbc, rtc, rb, rt, rp

This specification also adds the lang attribute to the I18N attribute collection as defined in [XHTML-MODULARIZATION11-2e]. The lang attribute is defined in [HTML5]. When this attribute and the xml:lang attribute are specified on the same element, the xml:lang attribute takes precedence. When both lang and xml:lang are specified on the same element, they MUST have the same value.

There are no additional definitions required by this document type. An implementation of this document type as an XML Schema is defined in Appendix A, and as an XML DTD is defined in Appendix B.

5. Metainformation Attributes Module

The Metainformation Attributes Module defines the Metainformation attribute collection in the format required by [XHTML-MODULARIZATION11-2e]. This collection allows elements to be annotated with metadata throughout an XHTML Family document. When this module is included in a markup language, this collection is added to the Common attribute collection as defined in [XHTML-MODULARIZATION11-2e].

5.1 Metainformation Attributes Collection

The following attributes are included in the attribute collection, and take values in the associated datatype:

Metainformation Attribute Collection
Attributes Notes
about (SafeCURIEorCURIEorIRI)  
content (CDATA)  
datatype (TERMorCURIEorAbsIRI) If not specified, then the default value is string as defined in [XMLSCHEMA11-2].
inlist (CDATA)  
prefix ( NCName ': ' IRI )+  
property (TERMorCURIEorAbsIRIs)  
rel (TERMorCURIEorAbsIRIs)
resource (SafeCURIEorCURIEorIRI)  
rev (TERMorCURIEorAbsIRIs)
typeof (TERMorCURIEorAbsIRIs)  
vocab (IRI) An IRI that defines the prefix to use when a CURIE is specified with no prefix and no colon.

An implementation of this module in XML Schema can be found in Appendix A and in XML DTD in Appendix B.

5.2 XHTML RDFa Initial Context

This section is non-normative.

This specification defines an RDFa Initial Context. It is available at http://www.w3.org/2011/rdfa-context/xhtml-rdfa-1.1.

A. XHTML+RDFa XML Schema

This appendix is normative.

This appendix includes an implementation of the XHTML+RDFa 1.1 language using XML Schema. It is implemented by combining the XHTML 1.1 Schema with the XHTML Metainformation Attribute Module. This is done by using a content model module, and then a driver module. There are direct links to the various files for download purposes. Please note that the files targeted by the "latest version" links may change slowly over time. See the W3C XHTML2 Working Group home page for more information.

A.1 XHTML Metainformation Attributes Module

You can download this version of this file from SCHEMA/xhtml-metaAttributes-2.xsd. The latest version is available at http://www.w3.org/MarkUp/SCHEMA/xhtml-metaAttributes-2.xsd.

<?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-1.xsd" />
  <xs:annotation>
    <xs:documentation>
      This is the XML Schema Metainformation Attributes module for XHTML

      $Id: Overview.html,v 1.3 2018/01/23 15:25:37 denis Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-rdfa-copyright-1.xsd"/>
  </xs:annotation>

  <xs:annotation>
    <xs:documentation>
      XHTML Metainformation Attributes
    </xs:documentation>
  </xs:annotation>

  <xs:attribute name="about" type="xh11d:SafeCURIEorCURIEorIRI"/>
  <xs:attribute name="content" type="xh11d:CDATA"/>
  <xs:attribute name="datatype" type="xh11d:TERMorCURIEoAbsIRI"/>
  <xs:attribute name="inlist" type="xh11d:CDATA"/>
  <xs:attribute name="typeof" type="xh11d:TERMorCURIEoAbsIRIs"/>
  <xs:attribute name="prefix" type="xh11d:PREFIX"/>
  <xs:attribute name="property" type="xh11d:TERMorCURIEoAbsIRIs"/>
  <xs:attribute name="rel" type="xh11d:TERMorCURIEoAbsIRIs"/>
  <xs:attribute name="resource" type="xh11d:SafeCURIEorCURIEorIRI"/>
  <xs:attribute name="rev" type="xh11d:TERMorCURIEoAbsIRIs"/>
  <xs:attribute name="vocab" type="xs:anyURI"/>

  <xs:attributeGroup name="xhtml.metaAttributes.attrib">
    <xs:attribute name="about"/>
    <xs:attribute name="content"/>
    <xs:attribute name="datatype"/>
    <xs:attribute name="inlist"/>
    <xs:attribute name="typeof"/>
    <xs:attribute name="prefix"/>
    <xs:attribute name="property"/>
    <xs:attribute name="rel"/>
    <xs:attribute name="resource"/>
    <xs:attribute name="rev"/>
    <xs:attribute name="vocab"/>
  </xs:attributeGroup>

</xs:schema>

A.2 XHTML+RDFa Schema Content Model Module

You can download this version of this file from SCHEMA/xhtml-rdfa-model-2.xsd. The latest version is available at http://www.w3.org/MarkUp/SCHEMA/xhtml-rdfa-model-2.xsd.

<?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-1.xsd"/>
    <xs:annotation>
        <xs:documentation> 
            This is the XML Schema module of common content models for XHTML11 
            
            $Id: Overview.html,v 1.3 2018/01/23 15:25:37 denis 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.Inline.mix; character-level elements
               xhtml.Block.mix; block-like elements, e.g., paragraphs and lists
               xhtml.Flow.mix; any block or inline elements 
               xhtml.HeadOpts.mix; Head Elements 
               xhtml.InlinePre.mix; Special class for pre content model 
               xhtml.InlineNoAnchor.mix; Content model for Anchor 
            
            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:include schemaLocation="xhtml-metaAttributes-2.xsd">
        <xs:annotation>
            <xs:documentation>
        XHTML Metainformation Modules

        Attributes defined here:
          XHTML RDFa attribtues
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/rdfa-syntax"/>
        </xs:annotation>
    </xs:include>
    <xs:attributeGroup
        name="xhtml.I18n.extra.attrib">
        <xs:annotation>
            <xs:documentation> Extended I18n attribute </xs:documentation>
        </xs:annotation>
        <xs:attributeGroup
            ref="xhtml.dir.attrib">
            <xs:annotation>
                <xs:documentation> 
                "dir" Attribute from Bi Directional Text (bdo) Module
                </xs:documentation>
            </xs:annotation>
        </xs:attributeGroup>
    </xs:attributeGroup>
    <xs:attributeGroup
        name="xhtml.Common.extra">
        <xs:annotation>
            <xs:documentation> Extended Common Attributes </xs:documentation>
        </xs:annotation>
        <xs:attributeGroup
            ref="xhtml.style.attrib">
            <xs:annotation>
                <xs:documentation> 
                "style" attribute from Inline Style Module 
                </xs:documentation>
            </xs:annotation>
        </xs:attributeGroup>
    	<xs:attributeGroup ref="xhtml.Events.attrib">
			<xs:annotation>
				<xs:documentation> 
				Attributes from Events Module
				</xs:documentation>
			</xs:annotation>
		</xs:attributeGroup>
    	<xs:attributeGroup ref="xhtml.metaAttributes.attrib">
			<xs:annotation>
				<xs:documentation> 
				Attributes from Metainformation Module
				</xs:documentation>
			</xs:annotation>
		</xs:attributeGroup>
	</xs:attributeGroup>
    <xs:attributeGroup
        name="xhtml.Core.extra.attrib">
        <xs:annotation>
            <xs:documentation> Extend Core Attributes </xs:documentation>
        </xs:annotation>
    </xs:attributeGroup>
    <xs:attributeGroup
        name="xhtml.Global.core.extra.attrib">
        <xs:annotation>
            <xs:documentation> Extended Global Core Attributes </xs:documentation>
        </xs:annotation>
    </xs:attributeGroup>
    <xs:attributeGroup
        name="xhtml.Global.I18n.extra.attrib">
        <xs:annotation>
            <xs:documentation> Extended Global I18n 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.HeadOpts.mix">
        <xs:choice>
            <xs:element name="script"
                type="xhtml.script.type"/>
            <xs:element name="style"
                type="xhtml.style.type"/>
            <xs:element name="meta"
                type="xhtml.meta.type"/>
            <xs:element name="link"
                type="xhtml.link.type"/>
            <xs:element name="object"
                type="xhtml.object.type"/>
            <xs:group
                ref="xhtml.Head.extra"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.head.content">
        <xs:sequence>
            <xs:group
                ref="xhtml.HeadOpts.mix"
                minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:choice>
                <xs:sequence>
                    <xs:element name="title"
                        minOccurs="1"
                        maxOccurs="1"
                        type="xhtml.title.type"/>
                    <xs:group
                        ref="xhtml.HeadOpts.mix"
                        minOccurs="0"
                        maxOccurs="unbounded"/>
                    <xs:sequence
                        minOccurs="0">
                        <xs:element name="base"
                            type="xhtml.base.type"/>
                        <xs:group
                            ref="xhtml.HeadOpts.mix"
                            minOccurs="0"
                            maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:sequence>
                <xs:sequence>
                    <xs:element name="base"
                        type="xhtml.base.type"
                        minOccurs="1"
                        maxOccurs="1"/>
                    <xs:group
                        ref="xhtml.HeadOpts.mix"
                        minOccurs="0"
                        maxOccurs="unbounded"/>
                    <xs:element name="title"
                        minOccurs="1"
                        maxOccurs="1"
                        type="xhtml.title.type"/>
                    <xs:group
                        ref="xhtml.HeadOpts.mix"
                        minOccurs="0"
                        maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <!--
    ins and del are used to denote editing changes
  -->
    <xs:group
        name="xhtml.Edit.class">
        <xs:choice>
            <xs:element name="ins"
                type="xhtml.edit.type"/>
            <xs:element name="del"
                type="xhtml.edit.type"/>
        </xs:choice>
    </xs:group>
    <!--
    script and noscript are used to contain scripts
    and alternative content
  -->
    <xs:group
        name="xhtml.Script.class">
        <xs:choice>
            <xs:element name="script"
                type="xhtml.script.type"/>
            <xs:element name="noscript"
                type="xhtml.noscript.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.Misc.extra">
        <xs:sequence/>
    </xs:group>
    <!--
    These elements are neither block nor inline, and can
    essentially be used anywhere in the document body.
  -->
    <xs:group
        name="xhtml.Misc.class">
        <xs:choice>
            <xs:group
                ref="xhtml.Edit.class"/>
            <xs:group
                ref="xhtml.Script.class"/>
            <xs:group
                ref="xhtml.Misc.extra"/>
        </xs:choice>
    </xs:group>
    <!-- Inline Elements -->
    <xs:group
        name="xhtml.InlStruct.class">
        <xs:choice>
            <xs:element name="br"
                type="xhtml.br.type"/>
            <xs:element name="span"
                type="xhtml.span.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.InlPhras.class">
        <xs:choice>
            <xs:element name="em"
                type="xhtml.em.type"/>
            <xs:element name="strong"
                type="xhtml.strong.type"/>
            <xs:element name="dfn"
                type="xhtml.dfn.type"/>
            <xs:element name="code"
                type="xhtml.code.type"/>
            <xs:element name="samp"
                type="xhtml.samp.type"/>
            <xs:element name="kbd"
                type="xhtml.kbd.type"/>
            <xs:element name="var"
                type="xhtml.var.type"/>
            <xs:element name="cite"
                type="xhtml.cite.type"/>
            <xs:element name="abbr"
                type="xhtml.abbr.type"/>
            <xs:element name="acronym"
                type="xhtml.acronym.type"/>
            <xs:element name="q"
                type="xhtml.q.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.InlPres.class">
        <xs:choice>
            <xs:element name="tt"
                type="xhtml.InlPres.type"/>
            <xs:element name="i"
                type="xhtml.InlPres.type"/>
            <xs:element name="b"
                type="xhtml.InlPres.type"/>
            <xs:element name="big"
                type="xhtml.InlPres.type"/>
            <xs:element name="small"
                type="xhtml.InlPres.type"/>
            <xs:element name="sub"
                type="xhtml.InlPres.type"/>
            <xs:element name="sup"
                type="xhtml.InlPres.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.I18n.class">
        <xs:sequence>
            <xs:element name="bdo"
                type="xhtml.bdo.type"/>
        </xs:sequence>
    </xs:group>
    <xs:group
        name="xhtml.Anchor.class">
        <xs:sequence>
            <xs:element name="a"
                type="xhtml.a.type"/>
        </xs:sequence>
    </xs:group>
    <xs:group
        name="xhtml.InlSpecial.class">
        <xs:choice>
            <xs:element name="img"
                type="xhtml.img.type"/>
            <xs:element name="map"
                type="xhtml.map.type"/>
            <xs:element name="object"
                type="xhtml.object.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.InlForm.class">
        <xs:choice>
            <xs:element name="input"
                type="xhtml.input.type"/>
            <xs:element name="select"
                type="xhtml.select.type"/>
            <xs:element name="textarea"
                type="xhtml.textarea.type"/>
            <xs:element name="label"
                type="xhtml.label.type"/>
            <xs:element name="button"
                type="xhtml.button.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.Inline.extra">
        <xs:sequence/>
    </xs:group>
    <xs:group
        name="xhtml.Ruby.class">
        <xs:sequence>
            <xs:element name="ruby"
                type="xhtml.ruby.type"/>
        </xs:sequence>
    </xs:group>
    <!--
    Inline.class includes all inline elements,
    used as a component in mixes
  -->
    <xs:group
        name="xhtml.Inline.class">
        <xs:choice>
            <xs:group
                ref="xhtml.InlStruct.class"/>
            <xs:group
                ref="xhtml.InlPhras.class"/>
            <xs:group
                ref="xhtml.InlPres.class"/>
            <xs:group
                ref="xhtml.I18n.class"/>
            <xs:group
                ref="xhtml.Anchor.class"/>
            <xs:group
                ref="xhtml.InlSpecial.class"/>
            <xs:group
                ref="xhtml.InlForm.class"/>
            <xs:group
                ref="xhtml.Ruby.class"/>
            <xs:group
                ref="xhtml.Inline.extra"/>
        </xs:choice>
    </xs:group>
    <!--
     InlNoRuby.class includes all inline elements
     except ruby
  -->
    <xs:group
        name="xhtml.InlNoRuby.class">
        <xs:choice>
            <xs:group
                ref="xhtml.InlStruct.class"/>
            <xs:group
                ref="xhtml.InlPhras.class"/>
            <xs:group
                ref="xhtml.InlPres.class"/>
            <xs:group
                ref="xhtml.I18n.class"/>
            <xs:group
                ref="xhtml.Anchor.class"/>
            <xs:group
                ref="xhtml.InlSpecial.class"/>
            <xs:group
                ref="xhtml.InlForm.class"/>
            <xs:group
                ref="xhtml.Inline.extra"/>
        </xs:choice>
    </xs:group>
    <!--
    InlinePre.mix
    Used as a component in pre model
  -->
    <xs:group
        name="xhtml.InlinePre.mix">
        <xs:choice>
            <xs:group
                ref="xhtml.InlStruct.class"/>
            <xs:group
                ref="xhtml.InlPhras.class"/>
            <xs:element name="tt"
                type="xhtml.InlPres.type"/>
            <xs:element name="i"
                type="xhtml.InlPres.type"/>
            <xs:element name="b"
                type="xhtml.InlPres.type"/>
            <xs:group
                ref="xhtml.I18n.class"/>
            <xs:group
                ref="xhtml.Anchor.class"/>
            <xs:group
                ref="xhtml.Misc.class"/>
            <xs:element name="map"
                type="xhtml.map.type"/>
            <xs:group
                ref="xhtml.Inline.extra"/>
        </xs:choice>
    </xs:group>
    <!--
    InlNoAnchor.class includes all non-anchor inlines,
    used as a component in mixes
  -->
    <xs:group
        name="xhtml.InlNoAnchor.class">
        <xs:choice>
            <xs:group
                ref="xhtml.InlStruct.class"/>
            <xs:group
                ref="xhtml.InlPhras.class"/>
            <xs:group
                ref="xhtml.InlPres.class"/>
            <xs:group
                ref="xhtml.I18n.class"/>
            <xs:group
                ref="xhtml.InlSpecial.class"/>
            <xs:group
                ref="xhtml.InlForm.class"/>
            <xs:group
                ref="xhtml.Ruby.class"/>
            <xs:group
                ref="xhtml.Inline.extra"/>
        </xs:choice>
    </xs:group>
    <!--
    InlNoAnchor.mix includes all non-anchor inlines
  -->
    <xs:group
        name="xhtml.InlNoAnchor.mix">
        <xs:choice>
            <xs:group
                ref="xhtml.InlNoAnchor.class"/>
            <xs:group
                ref="xhtml.Misc.class"/>
        </xs:choice>
    </xs:group>
    <!--
    Inline.mix includes all inline elements, including Misc.class
  -->
    <xs:group
        name="xhtml.Inline.mix">
        <xs:choice>
            <xs:group
                ref="xhtml.Inline.class"/>
            <xs:group
                ref="xhtml.Misc.class"/>
        </xs:choice>
    </xs:group>
    <!--
   InlNoRuby.mix includes all of inline.mix elements
   except ruby
  -->
    <xs:group
        name="xhtml.InlNoRuby.mix">
        <xs:choice>
            <xs:group
                ref="xhtml.InlNoRuby.class"/>
            <xs:group
                ref="xhtml.Misc.class"/>
        </xs:choice>
    </xs:group>
    <!--
    In the HTML 4 DTD, heading and list elements were included
    in the block group. The Heading.class and
    List.class groups must now be included explicitly
    on element declarations where desired.
  -->
    <xs:group
        name="xhtml.Heading.class">
        <xs:choice>
            <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.Table.class">
        <xs:choice>
            <xs:element name="table"
                type="xhtml.table.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.Form.class">
        <xs:choice>
            <xs:element name="form"
                type="xhtml.form.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.Fieldset.class">
        <xs:choice>
            <xs:element name="fieldset"
                type="xhtml.fieldset.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.BlkStruct.class">
        <xs:choice>
            <xs:element name="p"
                type="xhtml.p.type"/>
            <xs:element name="div"
                type="xhtml.div.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.BlkPhras.class">
        <xs:choice>
            <xs:element name="pre"
                type="xhtml.pre.type"/>
            <xs:element name="blockquote"
                type="xhtml.blockquote.type"/>
            <xs:element name="address"
                type="xhtml.address.type"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.BlkPres.class">
        <xs:sequence>
            <xs:element name="hr"
                type="xhtml.hr.type"/>
        </xs:sequence>
    </xs:group>
    <xs:group
        name="xhtml.BlkSpecial.class">
        <xs:choice>
            <xs:group
                ref="xhtml.Table.class"/>
            <xs:group
                ref="xhtml.Form.class"/>
            <xs:group
                ref="xhtml.Fieldset.class"/>
        </xs:choice>
    </xs:group>
    <xs:group
        name="xhtml.Block.extra">
        <xs:sequence/>
    </xs:group>
    <!--
    Block.class includes all block elements,
    used as an component in mixes
  -->
    <xs:group
        name="xhtml.Block.class">
        <xs:choice>
            <xs:group
                ref="xhtml.BlkStruct.class"/>
            <xs:group
                ref="xhtml.BlkPhras.class"/>
            <xs:group
                ref="xhtml.BlkPres.class"/>
            <xs:group
                ref="xhtml.BlkSpecial.class"/>
            <xs:group
                ref="xhtml.Block.extra"/>
        </xs:choice>
    </xs:group>
    <!--
   Block.mix includes all block elements plus %Misc.class;
  -->
    <xs:group
        name="xhtml.Block.mix">
        <xs:choice>
            <xs:group
                ref="xhtml.Heading.class"/>
            <xs:group
                ref="xhtml.List.class"/>
            <xs:group
                ref="xhtml.Block.class"/>
            <xs:group
                ref="xhtml.Misc.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.mix">
        <xs:choice>
            <xs:group
                ref="xhtml.Heading.class"/>
            <xs:group
                ref="xhtml.List.class"/>
            <xs:group
                ref="xhtml.Block.class"/>
            <xs:group
                ref="xhtml.Inline.class"/>
            <xs:group
                ref="xhtml.Misc.class"/>
        </xs:choice>
    </xs:group>
    <!--
    BlkNoForm.mix includes all non-form block elements,
    plus Misc.class
  -->
    <xs:group
        name="xhtml.BlkNoForm.mix">
        <xs:choice>
            <xs:group
                ref="xhtml.Heading.class"/>
            <xs:group
                ref="xhtml.List.class"/>
            <xs:group
                ref="xhtml.BlkStruct.class"/>
            <xs:group
                ref="xhtml.BlkPhras.class"/>
            <xs:group
                ref="xhtml.BlkPres.class"/>
            <xs:group
                ref="xhtml.Table.class"/>
            <xs:group
                ref="xhtml.Block.extra"/>
            <xs:group
                ref="xhtml.Misc.class"/>
        </xs:choice>
    </xs:group>
    <xs:element name="html"
        type="xhtml.html.type"/>
</xs:schema>

A.3 XHTML+RDFa Schema Modules

You can download this version of this file from SCHEMA/xhtml-rdfa-modules-2.xsd. The latest version is available at http://www.w3.org/MarkUp/SCHEMA/xhtml-rdfa-modules-2.xsd.

<?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-1.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: Overview.html,v 1.3 2018/01/23 15:25:37 denis Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation>
     This schema includes all modules (and redefinitions)
     for XHTML1.1 Document Type.
     XHTML1.1 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="xhtml-framework-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Schema Framework Component Modules:
            +  notations
            +  datatypes
            +  common attributes
            +  character entities
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_commonatts"/>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-text-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Text module

        The Text module includes declarations for all core
        text container elements and their attributes.

            +  block phrasal
            +  block structural
            +  inline phrasal
            +  inline structural

        Elements defined here:
          * address, blockquote, pre, h1, h2, h3, h4, h5, h6
          * div, p
          * abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var
          * br, span
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_textmodule"/>
        </xs:annotation>
    </xs:include>

    <xs:include schemaLocation="xhtml-list-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Lists module

        Elements defined here:
          * dt, dd, dl, ol, ul, li
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_listmodule"/>
        </xs:annotation>
    </xs:include>
    <xs:redefine schemaLocation="xhtml-struct-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Structural module

        Elements defined here:
          * title, head, body, html
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_structuremodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.version.attrib">
            <xs:annotation>
                <xs:documentation>
            Redefinition by the XHTML11 Markup (for value of version attr)
         </xs:documentation>
            </xs:annotation>
            <xs:attribute name="version" type="xh11d:CDATA" fixed="XHTML+RDFa 1.1"/>
        </xs:attributeGroup>
        <xs:attributeGroup name="xhtml.body.attlist">
            <xs:attributeGroup ref="xhtml.body.attlist">
                <xs:annotation>
                    <xs:documentation>
              Original Body Attlist
            </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.body.events.attlist">
                <xs:annotation>
                    <xs:documentation>
              Redefinition by XHTML Event Attribute Module
            </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
        <xs:attributeGroup name="xhtml.head.attlist">  
            <xs:attributeGroup ref="xhtml.I18n.attrib"/>
            <xs:attributeGroup ref="xhtml.id"/>
            <xs:attributeGroup ref="xhtml.class"/>
            <xs:attributeGroup ref="xhtml.title"/>
             <xs:attributeGroup ref="xhtml.Common.extra"/>
        </xs:attributeGroup>
		<xs:attributeGroup name="xhtml.title.attlist">
		    <xs:attributeGroup ref="xhtml.title.attlist"/>
		    <xs:attributeGroup ref="xhtml.class"/>
		    <xs:attributeGroup ref="xhtml.title"/>
		    <xs:attributeGroup ref="xhtml.Common.extra"/>
		</xs:attributeGroup>
    </xs:redefine>
    <xs:include schemaLocation="xhtml-edit-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Edit module

        Elements defined here:
          * ins, del
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_editmodule"/>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-bdo-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Bidirectional element module

        Elements defined here:
          * bdo
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_bdomodule"/>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-pres-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Presentational module

         Elements defined here:
           * hr, b, big, i, small,sub, sup, tt
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_presentationmodule"/>
        </xs:annotation>
    </xs:include>
    <xs:redefine schemaLocation="xhtml-base-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Base module

        Elements defined here:
          * base
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_basemodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.base.attlist">
            <xs:annotation>
                <xs:documentation>
            Changes to XHTML base Attlist
          </xs:documentation>
            </xs:annotation>
            <xs:attributeGroup ref="xhtml.base.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original Base Attributes (declared in Base Module)
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.base.target.attlist">
                <xs:annotation>
                    <xs:documentation>
                XHTML Target Module - Attribute additions
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
    </xs:redefine>
    <xs:include schemaLocation="xhtml-script-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Scripting module

        Elements defined here:
          * script, noscript
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_scriptmodule"/>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-style-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Style module

        Elements defined here:
          * style
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_stylemodule"/>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-inlstyle-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Style attribute module

        Attribute defined here:
          * style
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_styleattributemodule"/>
        </xs:annotation>
    </xs:include>
    <xs:redefine schemaLocation="xhtml-image-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Image module

        Elements defined here:
          * img
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_imagemodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.img.attlist">
            <xs:attributeGroup ref="xhtml.img.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original Image Attributes (in Image Module)
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.img.csim.attlist">
                <xs:annotation>
                    <xs:documentation>
                Redefinition by Client Side Image Map Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.img.ssimap.attlist">
                <xs:annotation>
                    <xs:documentation>
                Redefinition by Server Side Image Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
    </xs:redefine>
    <xs:redefine schemaLocation="xhtml-csismap-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Client-side mage maps module

        Elements defined here:
          * area, map
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_imapmodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.area.attlist">
            <xs:attributeGroup ref="xhtml.area.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original Area Attributes (in CSI Module)
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.area.events.attlist">
                <xs:annotation>
                    <xs:documentation>
                Redefinition by Events Attribute Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.area.target.attlist">
                <xs:annotation>
                    <xs:documentation>
                Target Module - Area Attribute Additions
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
    </xs:redefine>
    <xs:include schemaLocation="xhtml-ssismap-1.xsd">
        <xs:annotation>
            <xs:documentation>
       Server-side image maps module

        Attributes defined here:
          * ismap on img
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_servermapmodule"/>
        </xs:annotation>
    </xs:include>
    <xs:redefine schemaLocation="xhtml-object-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Object module

        Elements defined here:
          * object
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_objectmodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.object.attlist">
            <xs:attributeGroup ref="xhtml.object.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original Object Attlist
              </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.object.csim.attlist">
                <xs:annotation>
                    <xs:documentation>
                Redefinition by Client Image Map Module
              </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
    </xs:redefine>
    <xs:include schemaLocation="xhtml-param-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Param module

        Elements defined here:
          * param
      </xs:documentation>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-table-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Tables module

        Elements defined here:
          * table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_tablemodule"/>
        </xs:annotation>
    </xs:include>
    <xs:redefine schemaLocation="xhtml-form-1.xsd">
        <xs:annotation>
            <xs:documentation>
            Forms module

            Elements defined here:
              * form, label, input, select, optgroup, option,
              * textarea, fieldset, legend, button
          </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_extformsmodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.form.attlist">
            <xs:annotation>
                <xs:documentation>
            Changes to XHTML Form Attlist
          </xs:documentation>
            </xs:annotation>
            <xs:attributeGroup ref="xhtml.form.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original Form Attributes (declared in Forms Module)
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.form.events.attlist">
                <xs:annotation>
                    <xs:documentation>
                XHTML Events Module - Attribute additions
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.form.target.attlist">
                <xs:annotation>
                    <xs:documentation>
                      XHTML Target Module - Attribute additions
                     </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
        <xs:attributeGroup name="xhtml.input.attlist">
            <xs:annotation>
                <xs:documentation>
            Changes to XHTML Form Input Element
          </xs:documentation>
            </xs:annotation>
            <xs:attributeGroup ref="xhtml.input.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original Input Attributes (in Forms Module)
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.input.csim.attlist">
                <xs:annotation>
                    <xs:documentation>
                Redefinition by Client Side Image Map Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.input.ssimap.attlist">
                <xs:annotation>
                    <xs:documentation>
                Redefinition by Server Side Image Map Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.input.events.attlist">
                <xs:annotation>
                    <xs:documentation>
               Redefinition by Event Attribute Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
        <xs:attributeGroup name="xhtml.label.attlist">
            <xs:attributeGroup ref="xhtml.label.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original Label Attributes (in Forms Module)
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.label.events.attlist">
                <xs:annotation>
                    <xs:documentation>
               Redefinition by Event Attribute Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
        <xs:attributeGroup name="xhtml.select.attlist">
            <xs:attributeGroup ref="xhtml.select.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original Select Attributes (in Forms Module)
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.select.events.attlist">
                <xs:annotation>
                    <xs:documentation>
               Redefinition by Event Attribute Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
        <xs:attributeGroup name="xhtml.textarea.attlist">
            <xs:attributeGroup ref="xhtml.textarea.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original TextArea Attributes (in Forms Module)
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.textarea.events.attlist">
                <xs:annotation>
                    <xs:documentation>
               Redefinition by Event Attribute Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
        <xs:attributeGroup name="xhtml.button.attlist">
            <xs:attributeGroup ref="xhtml.button.attlist">
                <xs:annotation>
                    <xs:documentation>
                Original Button Attributes (in Forms Module)
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
            <xs:attributeGroup ref="xhtml.button.events.attlist">
                <xs:annotation>
                    <xs:documentation>
               Redefinition by Event Attribute Module
             </xs:documentation>
                </xs:annotation>
            </xs:attributeGroup>
        </xs:attributeGroup>
    </xs:redefine>
    <xs:include schemaLocation="xhtml-ruby-basic-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Ruby module

        Elements defined here:
          * ruby, rbc, rtc, rb, rt, rp

        Note that either Ruby or Basic Ruby should be used but not both
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-ruby-20010531/#simple-ruby1"/>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-events-1.xsd">
        <xs:annotation>
            <xs:documentation>
        XHTML Events Modules

        Attributes defined here:
          XHTML Event Types
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_intrinsiceventsmodule"/>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-metaAttributes-1.xsd">
        <xs:annotation>
            <xs:documentation>
                XHTML Metainformation Modules
                
                Attributes defined here:
                XHTML RDFa attribtues
            </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/rdfa-syntax"/>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-target-1.xsd">
        <xs:annotation>
            <xs:documentation>
        XHTML Target Attribute Module

        Attributes defined here:
          target
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_targetmodule"/>
        </xs:annotation>
    </xs:include>
</xs:schema>

A.4 XHTML+RDFa XML Schema Driver Module

You can download this version of this file from SCHEMA/xhtml-rdfa-2.xsd. The latest version is available at http://www.w3.org/MarkUp/SCHEMA/xhtml-rdfa-2.xsd.

<?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 + RDFa Please use this namespace
            for XHTML elements: "http://www.w3.org/1999/xhtml" $Id: xhtml-rdfa-1.xsd,v 1.2
            2008/07/02 13:26:46 ahby Exp $ </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation> This is the Schema Driver file for XHTML + RDFa Document Type This schema
            + imports external schemas (xml.xsd) + refedines (and include)s schema modules for
            XHTML1.1 Document Type. + includes Schema for Named content model for the XHTML1.1
            Document Type XHTML1.1 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-1.xsd"/>
    <xs:include schemaLocation="xhtml-rdfa-model-2.xsd">
        <xs:annotation>
            <xs:documentation> Document Model module for the XHTML+RDFa Document Type. This schema
                file defines all named models used by XHTML Modularization Framework for XHTML+RDFa
                Document Type </xs:documentation>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-rdfa-modules-2.xsd">
        <xs:annotation>
            <xs:documentation> Schema that includes all modules (and redefinitions) for XHTML1.1
                Document Type. </xs:documentation>
        </xs:annotation>
    </xs:include>
    <!-- link, meta, and a need to be defined directly here -->
    <xs:attributeGroup name="xhtml.a.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="href" type="xh11d:URI"/>
        <xs:attribute name="charset" type="xh11d:Charset"/>
        <xs:attribute name="type" type="xh11d:ContentType"/>
        <xs:attribute name="hreflang" type="xh11d:LanguageCode"/>
        <xs:attribute name="accesskey" type="xh11d:Character"/>
        <xs:attribute name="tabindex" type="xh11d:Number"/>
        <xs:attributeGroup ref="xhtml.a.csim.attlist">
            <xs:annotation>
                <xs:documentation>
                    Redefinition by Client Side Image Map Module
                </xs:documentation>
            </xs:annotation>
        </xs:attributeGroup>
        <xs:attributeGroup ref="xhtml.a.events.attlist">
            <xs:annotation>
                <xs:documentation>
                    Redefinition by XHTML Event Attribute Module
                </xs:documentation>
            </xs:annotation>
        </xs:attributeGroup>
        <xs:attributeGroup ref="xhtml.a.target.attlist">
            <xs:annotation>
                <xs:documentation>
                    Target Module - A Attribute Additions
                </xs:documentation>
            </xs:annotation>
        </xs:attributeGroup>
    </xs:attributeGroup>
    <xs:group name="xhtml.a.content">
        <xs:sequence>
            <xs:group ref="xhtml.InlNoAnchor.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.a.type" mixed="true">
        <xs:group ref="xhtml.a.content"/>
        <xs:attributeGroup ref="xhtml.a.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.link.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="charset" type="xh11d:Charset"/>
        <xs:attribute name="href" type="xh11d:URI"/>
        <xs:attribute name="hreflang" type="xh11d:LanguageCode"/>
        <xs:attribute name="type" type="xh11d:ContentType"/>
        <xs:attribute name="media" type="xh11d:MediaDesc"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.link.content">
        <xs:sequence/>
    </xs:group>
    <xs:complexType name="xhtml.link.type">
        <xs:group ref="xhtml.link.content"/>
        <xs:attributeGroup ref="xhtml.link.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.meta.attlist">
        <xs:attributeGroup ref="xhtml.I18n.attrib"/>
        <xs:attribute ref="xml:space"/>
        <xs:attribute name="http-equiv" type="xs:NMTOKEN"/>
        <xs:attribute name="name" type="xs:NMTOKEN"/>
        <xs:attribute name="content" type="xh11d:CDATA" use="required"/>
        <xs:attribute name="scheme" type="xh11d:CDATA"/>
        <xs:attribute name="about" type="xh11d:SafeCURIEorCURIEorIRI"/>
        <xs:attribute name="datatype" type="xh11d:TERMorCURIEoAbsIRI"/>
        <xs:attribute name="typeof" type="xh11d:TERMorCURIEoAbsIRIs"/>
        <xs:attribute name="prefix" type="xh11d:PREFIX"/>
        <xs:attribute name="property" type="xh11d:TERMorCURIEoAbsIRIs"/>
        <xs:attribute name="rel" type="xh11d:TERMorCURIEoAbsIRIs"/>
        <xs:attribute name="resource" type="xh11d:SafeCURIEorCURIEorIRI"/>
        <xs:attribute name="rev" type="xh11d:TERMorCURIEoAbsIRIs"/>
        <xs:attribute name="vocab" type="xs:anyURI"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.meta.content">
        <xs:sequence/>
    </xs:group>
    <xs:complexType name="xhtml.meta.type">
        <xs:group ref="xhtml.meta.content"/>
        <xs:attributeGroup ref="xhtml.meta.attlist"/>
    </xs:complexType>
</xs:schema>

B. XHTML+RDFa Document Type Definition

This appendix includes an implementation of the XHTML+RDFa 1.1 language as an XML DTD. It is implemented by combining the XHTML 1.1 DTD with the XHTML Metainformation Attribute Module. This is done by using a content model module, and then a driver module. There are direct links to the various files for download purposes. Please note that the files targeted by the "latest version" links may change slowly over time. See the W3C XHTML2 Working Group home page for more information.

B.1 XHTML Metainformation Attributes Module

You can download this version of this file from DTD/xhtml-metaAttributes-2.mod. The latest version is available at http://www.w3.org/MarkUp/DTD/xhtml-metaAttributes-2.mod.

<!-- ...................................................................... -->
<!-- XHTML MetaAttributes Module  ......................................... -->
<!-- file: xhtml-metaAttributes-1.mod

     This is XHTML-RDFa, modules to annotate XHTML family documents.
     Copyright 2007-2008 W3C (MIT, ERCIM, Keio), All Rights Reserved.
     Revision: $Id: Overview.html,v 1.3 2018/01/23 15:25:37 denis Exp $

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

       PUBLIC "-//W3C//ENTITIES XHTML MetaAttributes 1.0//EN"
       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-metaAttributes-1.mod"

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

<!ENTITY % XHTML.global.attrs.prefixed "IGNORE" >

<!-- Placeholder Compact URI-related types -->
<!ENTITY % CURIE.datatype "CDATA" >
<!ENTITY % CURIEs.datatype "CDATA" >
<!ENTITY % CURIEorIRI.datatype "CDATA" >
<!ENTITY % CURIEorIRIs.datatype "CDATA" >
<!ENTITY % IRI.datatype "CDATA" >
<!ENTITY % IRIs.datatype "CDATA" >
<!ENTITY % PREFIX.datatype "CDATA" >
<!ENTITY % SafeCURIEorCURIEorIRI.datatype "CDATA" >
<!ENTITY % SafeCURIEorCURIEorIRIs.datatype "CDATA" >
<!ENTITY % TERMorCURIEorAbsIRI.datatype "CDATA" >
<!ENTITY % TERMorCURIEorAbsIRIs.datatype "CDATA" >


<!-- Common Attributes

     This module declares a collection of meta-information related 
     attributes.

     %NS.decl.attrib; is declared in the XHTML Qname module.

	 This file also includes declarations of "global" versions of the 
     attributes.  The global versions of the attributes are for use on 
     elements in other namespaces.  
-->

<!ENTITY % about.attrib
     "about        %SafeCURIEorCURIEorIRI.datatype;             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.about.attrib
     "%XHTML.prefix;:about   %SafeCURIEorCURIEorIRI.datatype;    #IMPLIED"
>
]]>

<!ENTITY % typeof.attrib
     "typeof        %TERMorCURIEorAbsIRIs.datatype;             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.typeof.attrib
     "%XHTML.prefix;:typeof           %TERMorCURIEorAbsIRIs.datatype;        #IMPLIED"
>
]]>

<!ENTITY % property.attrib
     "property        %TERMorCURIEorAbsIRIs.datatype;             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.property.attrib
     "%XHTML.prefix;:property           %TERMorCURIEorAbsIRIs.datatype;        #IMPLIED"
>
]]>

<!ENTITY % resource.attrib
     "resource        %SafeCURIEorCURIEorIRI.datatype;             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.resource.attrib
     "%XHTML.prefix;:resource           %SafeCURIEorCURIEorIRI.datatype;        #IMPLIED"
>
]]>

<!ENTITY % content.attrib
     "content        CDATA             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.content.attrib
     "%XHTML.prefix;:content           CDATA        #IMPLIED"
>
]]>

<!ENTITY % datatype.attrib
     "datatype        %TERMorCURIEorAbsIRI.datatype;             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.datatype.attrib
     "%XHTML.prefix;:datatype           %TERMorCURIEorAbsIRI.datatype;        #IMPLIED"
>
]]>

<!ENTITY % inlist.attrib
     "inlist        CDATA             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.inlist.attrib
     "%XHTML.prefix;:inlist           CDATA        #IMPLIED"
>
]]>

<!ENTITY % rel.attrib
     "rel        %TERMorCURIEorAbsIRIs.datatype;             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.rel.attrib
     "%XHTML.prefix;:rel           %TERMorCURIEorAbsIRIs.datatype;        #IMPLIED"
>
]]>

<!ENTITY % rev.attrib
     "rev        %TERMorCURIEorAbsIRIs.datatype;             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.rev.attrib
     "%XHTML.prefix;:rev           %TERMorCURIEorAbsIRIs.datatype;        #IMPLIED"
>
]]>

<!ENTITY % prefix.attrib
     "prefix        %PREFIX.datatype;             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.prefix.attrib
     "%XHTML.prefix;:prefix           %PREFIX.datatype;        #IMPLIED"
>
]]>

<!ENTITY % vocab.attrib
     "vocab        %IRI.datatype;             #IMPLIED"
>

<![%XHTML.global.attrs.prefixed;[
<!ENTITY % XHTML.global.vocab.attrib
     "%XHTML.prefix;:vocab           %IRI.datatype;        #IMPLIED"
>
]]>

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

<!ENTITY % Metainformation.attrib
     "%about.attrib;
      %content.attrib;
      %datatype.attrib;
	  %inlist.attrib;
      %typeof.attrib;
      %prefix.attrib;
      %property.attrib;
      %rel.attrib;
      %resource.attrib;
      %rev.attrib;
      %vocab.attrib;
      %Metainformation.extra.attrib;"
>

<!ENTITY % XHTML.global.metainformation.extra.attrib "" >

<![%XHTML.global.attrs.prefixed;[

<!ENTITY % XHTML.global.metainformation.attrib
     "%XHTML.global.about.attrib;
      %XHTML.global.content.attrib;
      %XHTML.global.datatype.attrib;
      %XHTML.global.inlist.attrib;
      %XHTML.global.typeof.attrib;
      %XHTML.global.prefix.attrib;
      %XHTML.global.property.attrib;
      %XHTML.global.rel.attrib;
      %XHTML.global.resource.attrib;
      %XHTML.global.rev.attrib;
      %XHTML.global.vocab.attrib;
      %XHTML.global.metainformation.extra.attrib;"
>
]]>

<!ENTITY % XHTML.global.metainformation.attrib "" >


<!-- end of xhtml-metaAttributes-1.mod -->

B.2 XHTML+RDFa Content Model Module

You can download this version of this file from DTD/xhtml-rdfa-model-2.mod. The latest version is available at http://www.w3.org/MarkUp/DTD/xhtml-rdfa-model-2.mod.

<!-- ....................................................................... -->
<!-- XHTML+RDFa Document Model Module  ..................................... -->
<!-- file: xhtml-rdfa-model-2.mod

     This is XHTML+RDFa.
     Copyright 1998-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
     Revision: $Id: Overview.html,v 1.3 2018/01/23 15:25:37 denis Exp $ SMI

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

       PUBLIC "-//W3C//ENTITIES XHTML+RDFa Document Model 1.1//EN"
       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-model-2.mod"

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

<!-- XHTML+RDFa 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 % HeadOpts.mix
     "( %script.qname; | %style.qname; | %meta.qname;
      | %link.qname; | %object.qname; )*"
>

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

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

<!-- script and noscript are used to contain scripts
     and alternative content
-->
<!ENTITY % Script.class "| %script.qname; | %noscript.qname;" >

<!ENTITY % Misc.extra "" >

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

<!-- ....................  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
     "| %tt.qname; | %i.qname; | %b.qname; | %big.qname;
      | %small.qname; | %sub.qname; | %sup.qname;" >

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

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

<!ENTITY % InlSpecial.class
     "| %img.qname; | %map.qname;
      | %object.qname;" >

<!ENTITY % InlForm.class
     "| %input.qname; | %select.qname; | %textarea.qname;
      | %label.qname; | %button.qname;" >

<!ENTITY % Inline.extra "" >

<!ENTITY % Ruby.class "| %ruby.qname;" >

<!-- %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;
      %InlForm.class;
      %Ruby.class;
      %Inline.extra;"
>

<!-- %InlNoRuby.class; includes all inline elements
     except ruby, used as a component in mixes
-->
<!ENTITY % InlNoRuby.class
     "%InlStruct.class;
      %InlPhras.class;
      %InlPres.class;
      %I18n.class;
      %Anchor.class;
      %InlSpecial.class;
      %InlForm.class;
      %Inline.extra;"
>

<!-- %NoRuby.content; includes all inlines except ruby
-->
<!ENTITY % NoRuby.content
     "( #PCDATA
      | %InlNoRuby.class;
      %Misc.class; )*"
>

<!-- %InlNoAnchor.class; includes all non-anchor inlines,
     used as a component in mixes
-->
<!ENTITY % InlNoAnchor.class
     "%InlStruct.class;
      %InlPhras.class;
      %InlPres.class;
      %I18n.class;
      %InlSpecial.class;
      %InlForm.class;
      %Ruby.class;
      %Inline.extra;"
>

<!-- %InlNoAnchor.mix; includes all non-anchor inlines
-->
<!ENTITY % InlNoAnchor.mix
     "%InlNoAnchor.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.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 % Fieldset.class  "| %fieldset.qname;" >

<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >

<!ENTITY % BlkPhras.class
     "| %pre.qname; | %blockquote.qname; | %address.qname;" >

<!ENTITY % BlkPres.class "| %hr.qname; " >

<!ENTITY % BlkSpecial.class
     "%Table.class;
      %Form.class;
      %Fieldset.class;"
>

<!ENTITY % Block.extra "" >

<!-- %Block.class; includes all block elements,
     used as an component in mixes
-->
<!ENTITY % Block.class
     "%BlkStruct.class;
      %BlkPhras.class;
      %BlkPres.class;
      %BlkSpecial.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 xhtml-rdfa-model-2.mod -->

B.3 XHTML+RDFa Driver Module

You can download this version of this file from DTD/xhtml-rdfa-2.dtd. The latest version is available at http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd.

<!-- ....................................................................... -->
<!-- XHTML 1.1 + RDFa DTD  ................................................. -->
<!-- file: xhtml-rdfa-2.dtd
-->

<!-- XHTML 1.1 + RDFa DTD

     This is an example markup language combining XHTML 1.1 and the RDFa
     modules.

     XHTML+RDFa
     Copyright 1998-2010 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 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.

-->
<!-- This is the driver file for version 1 of the XHTML + RDFa DTD.

     Please use this public identifier to identify it:

         "-//W3C//DTD XHTML+RDFa 1.1//EN"
-->
<!ENTITY % XHTML.version  "XHTML+RDFa 1.1" >

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

	 Note that XHTML namespace elements are not prefixed by default,
	 but the XHTML namespace prefix is defined as "xhtml" so that
	 other markup languages can extend this one and use the XHTML
	 prefixed global attributes if required.

-->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % XHTML.prefix "xhtml" >

<!-- Be sure to include prefixed global attributes - we don't need
     them, but languages that extend XHTML 1.1 might.
-->
<!ENTITY % XHTML.global.attrs.prefixed "INCLUDE" >

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

<!-- For example, if you are using XHTML 1.1 directly, use the public
     identifier in the DOCTYPE declaration, with the namespace declaration
     on the document element to identify the default namespace:

       <?xml version="1.0"?>
       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN"
                             "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">
       <html xmlns="http://www.w3.org/1999/xhtml"
             xml:lang="en">
       ...
       </html>

     Revisions:
     (none)
-->

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

<!-- ensure XHTML Notations are disabled -->
<!ENTITY % xhtml-notations.module "IGNORE" >

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

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

<!-- Pre-Framework Redeclaration placeholder  .................... -->
<!-- this serves as a location to insert markup declarations
     into the DTD prior to the framework declarations.
-->
<!ENTITY % xhtml-prefw-redecl.module "IGNORE" >
<!ENTITY % xhtml-prefw-redecl.mod "" >
<![%xhtml-prefw-redecl.module;[
%xhtml-prefw-redecl.mod;
<!-- end of xhtml-prefw-redecl.module -->]]>

<!-- we need the datatypes now -->
<!ENTITY % xhtml-datatypes.module "INCLUDE" >
<![%xhtml-datatypes.module;[
<!ENTITY % xhtml-datatypes.mod
     PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-datatypes-1.mod" >
%xhtml-datatypes.mod;]]>

<!-- bring in the RDFa attributes cause we need them in Common -->
<!ENTITY % xhtml-metaAttributes.module "INCLUDE" >
<![%xhtml-metaAttributes.module;[
<!ENTITY % xhtml-metaAttributes.mod
     PUBLIC "-//W3C//ENTITIES XHTML MetaAttributes 1.1//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-metaAttributes-2.mod" >
%xhtml-metaAttributes.mod;]]>

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

<!ENTITY % Common.extra.attrib
   "href         %URI.datatype;           #IMPLIED
    %Metainformation.attrib;"
>
<!-- adding the lang attribute into the I18N collection -->

<!ENTITY % lang.attrib
     "xml:lang     %LanguageCode.datatype;  #IMPLIED
      lang         %LanguageCode.datatype;  #IMPLIED"
>

<!-- Inline Style Module  ........................................ -->
<!ENTITY % xhtml-inlstyle.module "INCLUDE" >
<![%xhtml-inlstyle.module;[
<!ENTITY % xhtml-inlstyle.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod" >
%xhtml-inlstyle.mod;]]>

<!-- declare Document Model module instantiated in framework
-->
<!ENTITY % xhtml-model.mod
     PUBLIC "-//W3C//ENTITIES XHTML+RDFa Document Model 1.1//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-model-2.mod" >

<!-- Modular Framework Module (required) ......................... -->
<!ENTITY % xhtml-framework.module "INCLUDE" >
<![%xhtml-framework.module;[
<!ENTITY % xhtml-framework.mod
     PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod" >
%xhtml-framework.mod;]]>

<!-- Post-Framework Redeclaration placeholder  ................... -->
<!-- this serves as a location to insert markup declarations
     into the DTD following the framework declarations.
-->
<!ENTITY % xhtml-postfw-redecl.module "IGNORE" >
<!ENTITY % xhtml-postfw-redecl.mod "">
<![%xhtml-postfw-redecl.module;[
%xhtml-postfw-redecl.mod;
<!-- end of xhtml-postfw-redecl.module -->]]>



<!-- Text Module (Required)  ..................................... -->
<!ENTITY % xhtml-text.module "INCLUDE" >
<![%xhtml-text.module;[
<!ENTITY % xhtml-text.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod" >
%xhtml-text.mod;]]>

<!-- Hypertext Module (required) ................................. -->
<!ENTITY % a.attlist  "IGNORE" >
<!ENTITY % xhtml-hypertext.module "INCLUDE" >
<![%xhtml-hypertext.module;[
<!ENTITY % xhtml-hypertext.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod" >
%xhtml-hypertext.mod;]]>
<!ATTLIST %a.qname;
      %Common.attrib;
      charset      %Charset.datatype;       #IMPLIED
      type         %ContentType.datatype;   #IMPLIED
      hreflang     %LanguageCode.datatype;  #IMPLIED
      accesskey    %Character.datatype;     #IMPLIED
      tabindex     %Number.datatype;        #IMPLIED
>

<!-- Lists Module (required)  .................................... -->
<!ENTITY % xhtml-list.module "INCLUDE" >
<![%xhtml-list.module;[
<!ENTITY % xhtml-list.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod" >
%xhtml-list.mod;]]>

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

<!-- Edit Module  ................................................ -->
<!ENTITY % xhtml-edit.module "INCLUDE" >
<![%xhtml-edit.module;[
<!ENTITY % xhtml-edit.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod" >
%xhtml-edit.mod;]]>

<!-- BIDI Override Module  ....................................... -->
<!ENTITY % xhtml-bdo.module "%XHTML.bidi;" >
<![%xhtml-bdo.module;[
<!ENTITY % xhtml-bdo.mod
     PUBLIC "-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod" >
%xhtml-bdo.mod;]]>

<!-- Ruby Module  ................................................ -->
<!ENTITY % Ruby.common.attlists "INCLUDE" >
<!ENTITY % Ruby.common.attrib "%Common.attrib;" >
<!ENTITY % xhtml-ruby.module "INCLUDE" >
<![%xhtml-ruby.module;[
<!ENTITY % xhtml-ruby.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
            "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" >
%xhtml-ruby.mod;]]>

<!-- Presentation Module  ........................................ -->
<!ENTITY % xhtml-pres.module "INCLUDE" >
<![%xhtml-pres.module;[
<!ENTITY % xhtml-pres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod" >
%xhtml-pres.mod;]]>

<!ENTITY % link.attlist  "IGNORE" >
<!-- Link Element Module  ........................................ -->
<!ENTITY % xhtml-link.module "INCLUDE" >
<![%xhtml-link.module;[
<!ENTITY % xhtml-link.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod" >
%xhtml-link.mod;]]>

<!ATTLIST %link.qname;
      %Common.attrib;
      charset      %Charset.datatype;       #IMPLIED
      hreflang     %LanguageCode.datatype;  #IMPLIED
      type         %ContentType.datatype;   #IMPLIED
      media        %MediaDesc.datatype;     #IMPLIED
>

<!-- Document Metainformation Module  ............................ -->
<!ENTITY % meta.attlist  "IGNORE" >
<!ENTITY % xhtml-meta.module "INCLUDE" >
<![%xhtml-meta.module;[
<!ENTITY % xhtml-meta.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod" >
%xhtml-meta.mod;]]>
<!ATTLIST %meta.qname;
	  %Common.attrib;
      http-equiv   NMTOKEN                  #IMPLIED
      name         NMTOKEN                  #IMPLIED
      scheme       CDATA                    #IMPLIED
>

<!-- Base Element Module  ........................................ -->
<!ENTITY % xhtml-base.module "INCLUDE" >
<![%xhtml-base.module;[
<!ENTITY % xhtml-base.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod" >
%xhtml-base.mod;]]>

<!-- Scripting Module  ........................................... -->
<!ENTITY % script.attlist  "IGNORE" >
<!ENTITY % xhtml-script.module "INCLUDE" >
<![%xhtml-script.module;[
<!ENTITY % xhtml-script.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod" >
%xhtml-script.mod;]]>

<!ATTLIST %script.qname;
      %XHTML.xmlns.attrib;
	  %id.attrib;
      %Metainformation.attrib;
      href         %URI.datatype;           #IMPLIED
      xml:space    ( preserve )             #FIXED 'preserve'
      charset      %Charset.datatype;       #IMPLIED
      type         %ContentType.datatype;   #REQUIRED
      src          %URI.datatype;           #IMPLIED
      defer        ( defer )                #IMPLIED
>

<!-- Style Sheets Module  ......................................... -->
<!ENTITY % style.attlist  "IGNORE" >
<!ENTITY % xhtml-style.module "INCLUDE" >
<![%xhtml-style.module;[
<!ENTITY % xhtml-style.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod" >
%xhtml-style.mod;]]>
<!ATTLIST %style.qname;
      %XHTML.xmlns.attrib;
      %id.attrib;
      %title.attrib;
      %I18n.attrib;
      %Metainformation.attrib;
      href         %URI.datatype;           #IMPLIED
      xml:space    ( preserve )             #FIXED 'preserve'
      type         %ContentType.datatype;   #REQUIRED
      media        %MediaDesc.datatype;     #IMPLIED
>

<!-- Image Module  ............................................... -->
<!ENTITY % xhtml-image.module "INCLUDE" >
<![%xhtml-image.module;[
<!ENTITY % xhtml-image.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod" >
%xhtml-image.mod;]]>

<!-- Client-side Image Map Module  ............................... -->
<!ENTITY % area.attlist  "IGNORE" >

<!ENTITY % xhtml-csismap.module "INCLUDE" >
<![%xhtml-csismap.module;[
<!ENTITY % xhtml-csismap.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod" >
%xhtml-csismap.mod;]]>

<!ATTLIST %area.qname;
      %Common.attrib;
      shape        %Shape.datatype;         'rect'
      coords       %Coords.datatype;        #IMPLIED
      nohref       ( nohref )               #IMPLIED
      alt          %Text.datatype;          #REQUIRED
      tabindex     %Number.datatype;        #IMPLIED
      accesskey    %Character.datatype;     #IMPLIED
>

<!-- Server-side Image Map Module  ............................... -->
<!ENTITY % xhtml-ssismap.module "INCLUDE" >
<![%xhtml-ssismap.module;[
<!ENTITY % xhtml-ssismap.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod" >
%xhtml-ssismap.mod;]]>

<!-- Param Element Module  ....................................... -->
<!ENTITY % param.attlist  "IGNORE" >
<!ENTITY % xhtml-param.module "INCLUDE" >
<![%xhtml-param.module;[
<!ENTITY % xhtml-param.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod" >
%xhtml-param.mod;]]>

<!ATTLIST %param.qname;
      %XHTML.xmlns.attrib;
      %id.attrib;
      %Metainformation.attrib;
      href         %URI.datatype;           #IMPLIED
      name         CDATA                    #REQUIRED
      value        CDATA                    #IMPLIED
      valuetype    ( data | ref | object )  'data'
      type         %ContentType.datatype;   #IMPLIED
>
<!-- Embedded Object Module  ..................................... -->
<!ENTITY % xhtml-object.module "INCLUDE" >
<![%xhtml-object.module;[
<!ENTITY % xhtml-object.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod" >
%xhtml-object.mod;]]>

<!-- Tables Module ............................................... -->
<!ENTITY % xhtml-table.module "INCLUDE" >
<![%xhtml-table.module;[
<!ENTITY % xhtml-table.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod" >
%xhtml-table.mod;]]>

<!-- Forms Module  ............................................... -->
<!ENTITY % xhtml-form.module "INCLUDE" >
<![%xhtml-form.module;[
<!ENTITY % xhtml-form.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod" >
%xhtml-form.mod;]]>

<!-- Target Attribute Module  .................................... -->
<!ENTITY % xhtml-target.module "INCLUDE" >
<![%xhtml-target.module;[
<!ENTITY % xhtml-target.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Target 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-target-1.mod" >
%xhtml-target.mod;]]>

<!-- Legacy Markup ............................................... -->
<!ENTITY % xhtml-legacy.module "IGNORE" >
<![%xhtml-legacy.module;[
<!ENTITY % xhtml-legacy.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Legacy Markup 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-legacy-1.mod" >
%xhtml-legacy.mod;]]>

<!-- Document Structure Module (required)  ....................... -->
<!ENTITY % html.attlist  "IGNORE" >
<!ENTITY % head.attlist  "IGNORE" >
<!ENTITY % title.attlist  "IGNORE" >
<!ENTITY % xhtml-struct.module "INCLUDE" >
<![%xhtml-struct.module;[
<!ENTITY % xhtml-struct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod" >
%xhtml-struct.mod;]]>
<!ENTITY % XHTML.version.attrib
     "version      %FPI.datatype;           #FIXED '%XHTML.version;'"
>
<!ATTLIST %html.qname;
	  %Common.attrib;
      %XSI.schemaLocation.attrib;
      %XHTML.version.attrib;
>
<!ATTLIST %head.qname;
	  %Common.attrib;
>
<!ATTLIST %title.qname;
      %Common.attrib;
>

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

B.4 SGML Open Catalog Entry for XHTML+RDFa

This section contains the SGML Open Catalog-format definition [SGML-CATALOG] of the public identifiers for XHTML+RDFa 1.1.

You can download this version of this file from DTD/xhtml-rdfa.cat. The latest version is available at http://www.w3.org/MarkUp/DTD/xhtml-rdfa.cat.

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

--  XHTML+RDFa Catalog Data File

    Revision:  $Revision: 1.3 $

    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/html/tr9401.html>
--

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

OVERRIDE YES

SGMLDECL "xml1.dcl"

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

-- XHTML+RDFa modules          .............................................. --


PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN"       "xhtml-rdfa-2.dtd"


PUBLIC "-//W3C//ENTITIES XHTML+RDFa Document Model 1.1//EN"      "xhtml-rdfa-model-2.mod"

PUBLIC "-//W3C//ENTITIES XHTML MetaAttributes 1.1//EN"           "xhtml-metaAttributes-2.mod"

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

C. Deployment Advice

This section is non-normative.

Documents written using the markup language defined in this specification can be validated using the DTD defined in Appendix B. If a document author wants to facilitate such validation, they may include the following declaration at the top of their document:

Example 2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN"
    "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">

The XML Namespace document associated with the XHTML Family of markup languages uses the mechanism for transforming XHTML+RDFa documents into RDF as defined by [GRDDL]. Authors who want to be certain their documents are transformable by all [GRDDL] processors may also include a profile attribute on the head element that includes a reference to the RDFa Initial Context IRI http://www.w3.org/2011/rdfa-context/xhtml-rdfa-1.1.

D. Change History

This section is non-normative.

2010-02-25: First version of the split-out XHTML specialization.

E. Acknowledgments

This section is non-normative.

At the time of publication, the members of the RDFa Working Group were:

F. References

F.1 Normative references

[HTML5]
Ian Hickson; Robin Berjon; Steve Faulkner; Travis Leithead; Erika Doyle Navara; Theresa O'Connor; Silvia Pfeiffer. HTML5. 28 October 2014. W3C Recommendation. URL: http://www.w3.org/TR/html5/
[RDFA-CORE]
Shane McCarron et al. RDFa Core 1.1 - Third Edition: Syntax and processing rules for embedding RDF through attributes. 17 March 2015. W3C Recommendation. URL: http://www.w3.org/TR/rdfa-core/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[RFC3236]
M. Baker; P. Stark. The 'application/xhtml+xml' Media Type. January 2002. Informational. URL: https://tools.ietf.org/html/rfc3236
[RUBY]
Marcin Sawicki; Michel Suignard; Masayasu Ishikawa; Martin Dürst; Tex Texin et al. Ruby Annotation. 31 May 2001. W3C Recommendation. URL: http://www.w3.org/TR/ruby/
[XHTML-MODULARIZATION11-2e]
Shane McCarron et al. XHTML™ Modularization 1.1 - Second Edition. 29 July 2010. W3C Recommendation. URL: http://www.w3.org/TR/2010/REC-xhtml-modularization-20100729
[XHTML11-2e]
Shane McCarron; Masayasu Ishikawa. XHTML™ 1.1 - Module-based XHTML - Second Edition. 23 November 2010. W3C Recommendation. URL: http://www.w3.org/TR/2010/REC-xhtml11-20101123
[XML-NAMES11]
Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin et al. Namespaces in XML 1.1 (Second Edition). 16 August 2006. W3C Recommendation. URL: http://www.w3.org/TR/xml-names11/
[XMLSCHEMA11-2]
David Peterson; Sandy Gao; Ashok Malhotra; Michael Sperberg-McQueen; Henry Thompson; Paul V. Biron et al. W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes. 5 April 2012. W3C Recommendation. URL: http://www.w3.org/TR/xmlschema11-2/

F.2 Informative references

[GRDDL]
Dan Connolly. Gleaning Resource Descriptions from Dialects of Languages (GRDDL). 11 September 2007. W3C Recommendation. URL: http://www.w3.org/TR/grddl/
[RDFA-SYNTAX]
Ben Adida; Mark Birbeck; Shane McCarron; Steven Pemberton et al. RDFa in XHTML: Syntax and Processing. 14 October 2008. W3C Recommendation. URL: http://www.w3.org/TR/2008/REC-rdfa-syntax-20081014
[SGML-CATALOG]
Paul Grosso. Entity Management: OASIS Technical Resolution 9401:1997 (Amendment 2 to TR 9401) 10 september 1007. Entity Management Subcommittee, SGML Open. URL: https://www.oasis-open.org/html/a401.htm
[XHTML-MEDIA-TYPES]
Shane McCarron. XHTML Media Types - Second Edition. 16 January 2009. W3C Note. URL: http://www.w3.org/TR/xhtml-media-types