You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1289 lines
51 KiB
1289 lines
51 KiB
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
|
"http://www.w3.org/TR/html4/strict.dtd">
|
|
<html lang="en">
|
|
<head>
|
|
<title>An XHTML + MathML + SVG Profile</title>
|
|
<link rel="alternate" title="HTML version"
|
|
type="text/html" href="xhtml-math-svg.html">
|
|
<link rel="alternate" title="XHTML version"
|
|
type="application/xhtml+xml" href="xhtml-math-svg.xhtml">
|
|
<link rel="alternate" title="zip archive (non-normative)"
|
|
type="application/zip" href="XHTMLplusMathMLplusSVG.zip">
|
|
<link rel="alternate" title="gzip'd tar archive (non-normative)"
|
|
type="application/octet-stream" href="XHTMLplusMathMLplusSVG.tgz">
|
|
<link rel="copyright" href="#copyright">
|
|
<link rel="contents" href="#contents">
|
|
<link rel="alternate stylesheet" type="text/css" title="Normative part only"
|
|
href="style/normative.css">
|
|
<link rel="stylesheet" type="text/css" href="style/style.css">
|
|
<link rel="stylesheet" type="text/css"
|
|
href="http://www.w3.org/StyleSheets/TR/W3C-WD">
|
|
</head>
|
|
<body>
|
|
<div class="head">
|
|
<p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C"
|
|
src="http://www.w3.org/Icons/w3c_home"></a></p>
|
|
|
|
<h1 id="title">An
|
|
<abbr title="Extensible HyperText Markup Language">XHTML</abbr> +
|
|
<abbr title="Mathematical Markup Language">MathML</abbr> +
|
|
<abbr title="Scalable Vector Graphics">SVG</abbr> Profile</h1>
|
|
|
|
<h2 id="date"><abbr title="World Wide Web Consortium">W3C</abbr>
|
|
Working Draft 9 August 2002</h2>
|
|
|
|
<dl>
|
|
<dt id="thisVersion">This version:</dt>
|
|
|
|
<dd><p><a
|
|
href="http://www.w3.org/TR/2002/WD-XHTMLplusMathMLplusSVG-20020809/"
|
|
>http://www.w3.org/TR/2002/WD-XHTMLplusMathMLplusSVG-20020809</a></p>
|
|
<p>(<a type="text/html" title="HTML served as 'text/html'"
|
|
href="xhtml-math-svg.html">HTML</a>,
|
|
<a type="application/xhtml+xml" title="XHTML served as 'application/xhtml+xml'"
|
|
href="xhtml-math-svg.xhtml">XHTML</a>)</p></dd>
|
|
|
|
<dt id="latestVersion">Latest version:</dt>
|
|
|
|
<dd><a href="http://www.w3.org/TR/XHTMLplusMathMLplusSVG/"
|
|
>http://www.w3.org/TR/XHTMLplusMathMLplusSVG</a></dd>
|
|
|
|
<dt id="previousVersion">Previous version:</dt>
|
|
|
|
<dd><p><a
|
|
href="http://www.w3.org/TR/2002/WD-XHTMLplusMathMLplusSVG-20020430/"
|
|
>http://www.w3.org/TR/2002/WD-XHTMLplusMathMLplusSVG-20020430</a></p></dd>
|
|
|
|
<dt id="editor">Editor:</dt>
|
|
|
|
<dd><a lang="ja" href="mailto:mimasa@w3.org">石川 雅康
|
|
(<span class="familyname">Ishikawa</span> Masayasu)</a>, W3C</dd>
|
|
</dl>
|
|
|
|
<p id="alternate">This document is also available in these non-normative
|
|
formats:
|
|
<a type="application/zip" href="XHTMLplusMathMLplusSVG.zip">zip archive</a>
|
|
and <a type="application/octet-stream" href="XHTMLplusMathMLplusSVG.tgz">gzip'd
|
|
tar archive</a></p>
|
|
|
|
<p id="copyright" class="copyright"><a
|
|
href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#Copyright"
|
|
>Copyright</a> ©2002 <a href="http://www.w3.org/"><abbr
|
|
title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a
|
|
href="http://www.lcs.mit.edu/"><abbr
|
|
title="Massachusetts Institute of Technology">MIT</abbr></a>, <a
|
|
href="http://www.inria.fr/"><acronym lang="fr"
|
|
title="Institut National de Recherche en Informatique et Automatique"
|
|
>INRIA</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>),
|
|
All Rights Reserved. W3C <a
|
|
href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#Legal_Disclaimer"
|
|
>liability</a>, <a
|
|
href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#W3C_Trademarks"
|
|
>trademark</a>, <a
|
|
href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document
|
|
use</a> and <a
|
|
href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software
|
|
licensing</a> rules apply.</p>
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
|
|
<h2 id="abstract">Abstract</h2>
|
|
|
|
<p>An XHTML+MathML+SVG profile is a profile that combines
|
|
XHTML 1.1 [<a class="normref" href="#ref-xhtml11">XHTML11</a>], MathML 2.0
|
|
[<a class="normref" href="#ref-mathml2">MathML2</a>] and SVG 1.1
|
|
[<a class="normref" href="#ref-svg11">SVG11</a>] together. This profile
|
|
enables mixing XHTML, MathML and SVG in the same document using <abbr
|
|
title="Extensible Markup Language">XML</abbr> namespaces
|
|
[<a class="normref" href="#ref-xmlns">XMLNS</a>] mechanism, while allowing
|
|
validation of such a mixed-namespace document. An XHTML 1.1 + MathML 2.0 +
|
|
SVG 1.1 <abbr title="Document Type Definition">DTD</abbr> driver is provided.
|
|
An XHTML version of this document is conforming to this DTD.</p>
|
|
|
|
|
|
<h2 id="status">Status of This Document</h2>
|
|
|
|
<p><em>This section describes the status of this document at the time of its
|
|
publication. Other documents may supersede this document. The latest
|
|
status of this document series is maintained at the W3C.</em></p>
|
|
|
|
<p>This document is the second public Working Draft of an XHTML+MathML+SVG
|
|
profile for review by W3C Members and other interested parties.
|
|
This document <em>does not</em> define the normative
|
|
profile of XHTML + MathML + SVG. This is <em>a</em> possible profile.
|
|
Publication of this Working Draft by W3C indicates no endorsement by W3C or
|
|
the W3C Team, or any W3C Members.
|
|
It is an early draft document and may be updated, replaced or made obsolete
|
|
by other documents at any time. It is inappropriate to use W3C Working
|
|
Drafts as reference material or to cite them as other than "work in
|
|
progress".</p>
|
|
|
|
<p>This document has been produced jointly by the
|
|
<a href="http://www.w3.org/MarkUp/Group/">W3C
|
|
<abbr title="HyperText Markup Language">HTML</abbr> Working Group</a>
|
|
<em class="member">(<a href="http://cgi.w3.org/MemberAccess/">members
|
|
only</a>)</em> and the <a href="http://www.w3.org/Graphics/SVG/Group/">SVG
|
|
Working Group</a> <em class="member">(<a
|
|
href="http://cgi.w3.org/MemberAccess/">members only</a>)</em> as part of
|
|
the <a href="http://www.w3.org/MarkUp/Activity">HTML Activity</a>
|
|
and the <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
|
|
within the <a href="http://www.w3.org/DF/">Document Formats Domain</a>.
|
|
A <a href="http://www.w3.org/TR/">list of current W3C Recommendations</a>
|
|
and other technical documents can be found at http://www.w3.org/TR.</p>
|
|
|
|
<p>At the time of publication, the Working Groups believed there were
|
|
zero patent disclosures relevant to this specification. A current list
|
|
of patent disclosures relevant to this specification may be found on
|
|
the patent disclosure pages on
|
|
<a href="http://www.w3.org/2002/07/HTML-IPR">XHTML</a>,
|
|
<a href="http://www.w3.org/Math/Disclosures">MathML</a> and
|
|
<a href="http://www.w3.org/Graphics/SVG/Disclosures">SVG</a>.</p>
|
|
|
|
<p>Comments on this document may be sent to
|
|
<a href="mailto:www-html-editor@w3.org">www-html-editor@w3.org</a>
|
|
(<a href="http://lists.w3.org/Archives/Public/www-html-editor/">archive</a>).
|
|
Public discussion on this document may take place on the public mailing lists
|
|
<a href="mailto:www-html@w3.org">www-html@w3.org</a>
|
|
(<a href="http://lists.w3.org/Archives/Public/www-html/">archive</a>) or
|
|
<a href="mailto:www-svg@w3.org">www-svg@w3.org</a>
|
|
(<a href="http://lists.w3.org/Archives/Public/www-svg/">archive</a>).</p>
|
|
|
|
|
|
<div class="toc">
|
|
<h2 id="contents">Table of Contents</h2>
|
|
|
|
<ul class="toc">
|
|
<li class="informative">1.  <a href="#intro">Introduction</a></li>
|
|
<li class="normative">2.  <a href="#dtd">XHTML 1.1 + MathML 2.0 +
|
|
SVG 1.1 DTD</a>
|
|
<ul>
|
|
<li>2.1.  <a href="#driver">XHTML 1.1 + MathML 2.0 + SVG 1.1
|
|
DTD Driver</a></li>
|
|
</ul></li>
|
|
<li class="informative">3.  <a href="#howto">How to use
|
|
XHTML 1.1 + MathML 2.0 + SVG 1.1 DTD</a>
|
|
<ul>
|
|
<li>3.1.  <a href="#howto-xhtml">XHTML as the Host
|
|
Language</a></li>
|
|
<li>3.2.  <a href="#howto-svg">SVG as the Host Language</a></li>
|
|
<li>3.3.  <a href="#howto-math">Using MathML with
|
|
Universal MathML stylesheet</a></li>
|
|
</ul></li>
|
|
<li class="informative">4.  <a href="#profiles">How to define
|
|
new profiles from XHTML 1.1 + MathML 2.0 + SVG 1.1 DTD</a></li>
|
|
<li class="informative">5.  <a href="#bugs">Known
|
|
limitations</a></li>
|
|
<li><a href="#ref">References</a>
|
|
<ul>
|
|
<li class="normative"><a href="#normref">Normative references</a></li>
|
|
<li class="informative"><a href="#informref">Informative references</a></li>
|
|
</ul></li>
|
|
<li class="informative"><a href="#changes">Changes from previous
|
|
Working Draft</a></li>
|
|
<li class="informative"><a href="#acknowledgments">Acknowledgments</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
|
|
<div class="informative">
|
|
<h2><a id="intro">1.  Introduction</a></h2>
|
|
|
|
<p><em>This section is informative.</em></p>
|
|
|
|
<p>An XHTML+MathML+SVG profile integrates XHTML 1.1
|
|
[<a class="normref" href="#ref-xhtml11">XHTML11</a>], MathML 2.0
|
|
[<a class="normref" href="#ref-mathml2">MathML2</a>] and SVG 1.1
|
|
[<a class="normref" href="#ref-svg11">SVG11</a>] together, using
|
|
the XHTML Modularization Framework [<a class="normref"
|
|
href="#ref-xhtmlmod">XHTMLMOD</a>].
|
|
This profile enables mixing XHTML, MathML and SVG in a same document
|
|
using XML namespaces [<a class="normref" href="#ref-xmlns">XMLNS</a>]
|
|
mechanism, while allowing validation of such a mixed-namespace document.
|
|
An XHTML 1.1 + MathML 2.0 + SVG 1.1 DTD driver is provided in
|
|
<a href="#driver">section 2.1</a>.
|
|
The possibility of combining those modules written in XML Schema
|
|
[<a class="informref" href="#ref-xmlschema">XMLSchema</a>] might be explored
|
|
when XML Schemas for XHTML [<a class="informref"
|
|
href="#ref-xhtmlmodschema">XHTMLMODSchema</a>] and others become available
|
|
and mature.</p>
|
|
|
|
<p>This DTD driver can primarily be used for an XHTML document
|
|
that contains MathML and SVG fragments, but it can also be used
|
|
for an SVG document that contains XHTML and MathML fragments.
|
|
An SVG fragment inside an XHTML document can contain another
|
|
XHTML or MathML fragments, and that XHTML fragment can again
|
|
contain another MathML or SVG fragments. There's no restriction on
|
|
nesting levels.</p>
|
|
|
|
<p>Inside XHTML, MathML and SVG fragments are allowed basically anywhere inside
|
|
the document body. Inside SVG, XHTML and MathML may be embedded through
|
|
the <code class="element">foreignObject</code> element (<cite>SVG 1.1</cite>
|
|
[<a class="normref" href="#ref-svg11">SVG11</a>], section 23.3).
|
|
A <a href="sample.xhtml" type="application/xhtml+xml">sample
|
|
document</a> (<em>MathML and SVG-enabled XHTML browsers only</em>)
|
|
shows features in XHTML 1.1 (ruby) and simple MathML and
|
|
SVG examples, and a mixture of them using
|
|
<code class="element">foreignObject</code>, in the same document.
|
|
On MathML and SVG-enabled XHTML browsers, mixed sample would be rendered
|
|
like this:</p>
|
|
|
|
<p id="mixed-sample" class="figure"><img src="mixed-sample.png"
|
|
width="600" height="750" alt="Mixed XHTML+MathML+SVG sample"
|
|
longdesc="sample.xhtml#mixed"></p>
|
|
|
|
<p>This DTD driver can also be used as a basis for defining other
|
|
profiles that combine some or all of XHTML, MathML and SVG.
|
|
How to define new profiles using this DTD driver is explained in
|
|
<a href="#profiles">section 4</a>.</p>
|
|
</div>
|
|
|
|
|
|
<div class="normative">
|
|
<h2 id="dtd">2.  XHTML 1.1 + MathML 2.0 + SVG 1.1
|
|
Document Type Definition</h2>
|
|
|
|
<p><em>This section is normative.</em></p>
|
|
|
|
<p>The XHTML 1.1 + MathML 2.0 + SVG 1.1 DTD driver is available as follows:</p>
|
|
|
|
<dl>
|
|
<dt id="thisVersionDTD">URI for this version of the DTD:</dt>
|
|
<dd><a type="application/xml-dtd"
|
|
href="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-20020809.dtd"
|
|
>http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-20020809.dtd</a></dd>
|
|
|
|
<dt id="latestVersionDTD">URI for the latest version of the DTD:</dt>
|
|
<dd><a type="application/xml-dtd"
|
|
href="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"
|
|
>http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd</a></dd>
|
|
</dl>
|
|
|
|
<p>"This version" of the DTD will be kept as is, while the "latest version"
|
|
of the DTD will evolve over time, e.g. it might incorporate errata and
|
|
add new features later. Users of this DTD driver should be aware of this
|
|
difference.</p>
|
|
|
|
<p>Note that each referenced DTD modules might also evolve over time.
|
|
Non-normative "snapshot" of all DTD modules at the time of publication
|
|
as a flattened DTD is available as follows:</p>
|
|
|
|
<dl>
|
|
<dt id="thisVersionDTD-flat">URI for this version of the flattened DTD:</dt>
|
|
<dd><a type="application/xml-dtd"
|
|
href="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat-20020809.dtd"
|
|
>http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat-20020809.dtd</a></dd>
|
|
|
|
<dt id="latestVersionDTD-flat">URI for the latest version of
|
|
the flattened DTD:</dt>
|
|
<dd><a type="application/xml-dtd"
|
|
href="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd"
|
|
>http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd</a></dd>
|
|
</dl>
|
|
|
|
<p>The "latest version" of the flattened DTD will be kept up-to-date, too.</p>
|
|
|
|
<h3 id="driver">2.1.  XHTML 1.1 + MathML 2.0 + SVG 1.1 DTD Driver</h3>
|
|
|
|
<p>This section contains the driver for an XHTML 1.1 + MathML 2.0 + SVG 1.1
|
|
profile implementation as an XML DTD. It relies upon XHTML module
|
|
implementations defined in <cite>Modularization of XHTML</cite>
|
|
[<a class="normref" href="#ref-xhtmlmod">XHTMLMOD</a>] and in <cite>Ruby
|
|
Annotation</cite> [<a class="normref" href="#ref-ruby">Ruby</a>], the XHTML
|
|
1.1 DTD implementation defined in <cite>XHTML 1.1</cite> [<a class="normref"
|
|
href="#ref-xhtml11">XHTML11</a>], MathML DTD module implementations defined in
|
|
<cite>MathML 2.0</cite> [<a class="normref" href="#ref-mathml2">MathML2</a>],
|
|
and SVG DTD module implementations defined in <cite>SVG 1.1</cite>
|
|
[<a class="normref" href="#ref-svg11">SVG11</a>].</p>
|
|
|
|
<pre id="xhtml-math-svg.dtd" class="dtd"
|
|
><!-- ....................................................................... -->
|
|
<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD ........................... -->
|
|
<!-- URI: <a type="application/xml-dtd"
|
|
href="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"
|
|
>http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd</a>
|
|
-->
|
|
|
|
<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD
|
|
|
|
This is a prototype extension of XHTML 1.1 incorporating MathML 2.0
|
|
and SVG 1.1.
|
|
|
|
Copyright 2002 World Wide Web Consortium
|
|
(Massachusetts Institute of Technology, Institut National de
|
|
Recherche en Informatique et en Automatique, Keio University).
|
|
All Rights Reserved.
|
|
|
|
Permission to use, copy, modify and distribute this DTD and its
|
|
accompanying documentation for any purpose and without fee is hereby
|
|
granted in perpetuity, provided that the above copyright notice and
|
|
this paragraph appear in all copies. The copyright holders make no
|
|
representation about the suitability of the DTD for any purpose.
|
|
|
|
It is provided "as is" without expressed or implied warranty.
|
|
|
|
Editors: Murray M. Altheim <altheim@eng.sun.com> (XHTML modules)
|
|
David Carlisle <davidc@nag.co.uk> (MathML modules)
|
|
Jun Fujisawa <fujisawa.jun@canon.co.jp> (SVG modules)
|
|
Masayasu Ishikawa <mimasa@w3.org> (DTD driver)
|
|
Revision:
|
|
$Id: xhtml-math-svg.dtd,v 1.26 2002/08/08 12:33:40 mimasa Exp $
|
|
|
|
-->
|
|
<!-- This is the driver for an XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD.
|
|
-->
|
|
|
|
<!-- Switches to include/ignore each vocabulary.
|
|
-->
|
|
<!ENTITY <a id="pe-XHTML.module" class="entity">% XHTML.module</a> "INCLUDE" >
|
|
<!ENTITY <a id="pe-MATHML.module" class="entity">% MATHML.module</a> "INCLUDE" >
|
|
<!ENTITY <a id="pe-SVG.module" class="entity">% SVG.module</a> "INCLUDE" >
|
|
|
|
<![%XHTML.module;[
|
|
<!ENTITY <a id="pe-XHTML.version" class="entity">% XHTML.version</a>
|
|
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" >
|
|
]]>
|
|
|
|
<!-- Switches to enable subsets.
|
|
-->
|
|
<!ENTITY <a id="pe-XHTML.Basic.module" class="entity">% XHTML.Basic.module</a> "IGNORE" >
|
|
<!ENTITY <a id="pe-SVG.Basic.module" class="entity">% SVG.Basic.module</a> "IGNORE" >
|
|
<!ENTITY <a id="pe-SVG.Tiny.module" class="entity">% SVG.Tiny.module</a> "IGNORE" >
|
|
|
|
<!-- Use the following entities to identify the namespaces:
|
|
-->
|
|
<!ENTITY <a id="pe-XHTML.xmlns" class="entity">% XHTML.xmlns</a> "http://www.w3.org/1999/xhtml" >
|
|
<!ENTITY <a id="pe-MATHML.xmlns" class="entity">% MATHML.xmlns</a> "http://www.w3.org/1998/Math/MathML" >
|
|
<!ENTITY <a id="pe-MATHML.pref.xmlns" class="entity">% MATHML.pref.xmlns</a> "http://www.w3.org/2002/Math/preference" >
|
|
<!ENTITY <a id="pe-SVG.xmlns" class="entity">% SVG.xmlns</a> "http://www.w3.org/2000/svg" >
|
|
<!ENTITY <a id="pe-XLINK.xmlns" class="entity">% XLINK.xmlns</a> "http://www.w3.org/1999/xlink" >
|
|
|
|
<!-- Declare base URIs for the relevant DTD modules.
|
|
-->
|
|
<![%XHTML.module;[
|
|
<!ENTITY <a id="pe-XHTML.sysid.base" class="entity">% XHTML.sysid.base</a>
|
|
"http://www.w3.org/TR/xhtml-modularization/DTD/" >
|
|
]]>
|
|
<![%MATHML.module;[
|
|
<!ENTITY <a id="pe-MATHML.sysid.base" class="entity">% MATHML.sysid.base</a>
|
|
"http://www.w3.org/Math/DTD/mathml2/" >
|
|
]]>
|
|
<![%SVG.module;[
|
|
<!ENTITY <a id="pe-SVG.sysid.base" class="entity">% SVG.sysid.base</a>
|
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/" >
|
|
]]>
|
|
|
|
<!-- Declare system identifiers for the relevant DTD modules.
|
|
-->
|
|
<![%XHTML.module;[
|
|
<![%XHTML.Basic.module;[
|
|
<!ENTITY % XHTML.dtd.fpi
|
|
"-//W3C//DTD XHTML Basic 1.0//EN" >
|
|
<!ENTITY % XHTML.dtd.sysid
|
|
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd" >
|
|
]]>
|
|
<!ENTITY <a id="pe-XHTML.dtd.fpi" class="entity">% XHTML.dtd.fpi</a>
|
|
"-//W3C//DTD XHTML 1.1//EN" >
|
|
<!ENTITY <a id="pe-XHTML.dtd.sysid" class="entity">% XHTML.dtd.sysid</a>
|
|
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
|
|
]]>
|
|
<![%MATHML.module;[
|
|
<!ENTITY <a id="pe-MATHML.dtd.sysid" class="entity">% MATHML.dtd.sysid</a>
|
|
"%MATHML.sysid.base;mathml2.dtd" >
|
|
<!ENTITY <a id="pe-MATHML.qname.sysid" class="entity">% MATHML.qname.sysid</a>
|
|
"%MATHML.sysid.base;mathml2-qname-1.mod" >
|
|
]]>
|
|
<![%SVG.module;[
|
|
<![%SVG.Tiny.module;[
|
|
<!ENTITY % SVG.dtd.fpi
|
|
"-//W3C//DTD SVG 1.1 Tiny//EN" >
|
|
<!ENTITY % SVG.dtd.sysid
|
|
"%SVG.sysid.base;svg11-tiny.dtd" >
|
|
]]>
|
|
<![%SVG.Basic.module;[
|
|
<!ENTITY % SVG.dtd.fpi
|
|
"-//W3C//DTD SVG 1.1 Basic//EN" >
|
|
<!ENTITY % SVG.dtd.sysid
|
|
"%SVG.sysid.base;svg11-basic.dtd" >
|
|
]]>
|
|
<!ENTITY <a id="pe-SVG.dtd.fpi" class="entity">% SVG.dtd.fpi</a>
|
|
"-//W3C//DTD SVG 1.1//EN" >
|
|
<!ENTITY <a id="pe-SVG.dtd.sysid" class="entity">% SVG.dtd.sysid</a>
|
|
"%SVG.sysid.base;svg11.dtd" >
|
|
]]>
|
|
|
|
<!-- See the XHTML / MathML / SVG Qualified Names modules for information
|
|
on the use of namespace prefixes in the DTD. Default values are
|
|
as follows:
|
|
|
|
<!ENTITY % NS.prefixed "IGNORE" >
|
|
<!ENTITY % XHTML.prefixed "%NS.prefixed;" >
|
|
<!ENTITY % XHTML.prefix "" >
|
|
<!ENTITY % MATHML.prefixed "%NS.prefixed;" >
|
|
<!ENTITY % MATHML.prefix "m" >
|
|
<!ENTITY % MATHML.pref.prefixed "IGNORE" >
|
|
<!ENTITY % MATHML.pref.prefix "pref" >
|
|
<!ENTITY % SVG.prefixed "%NS.prefixed;" >
|
|
<!ENTITY % SVG.prefix "" >
|
|
<!ENTITY % XLINK.prefix "xlink" >
|
|
|
|
In this DTD driver, XHTML and MathML are not prefixed, and SVG is
|
|
prefixed by default. It can be changed by redeclaring the above
|
|
parameter entities.
|
|
-->
|
|
<!ENTITY <a id="pe-XHTML.prefixed" class="entity">% XHTML.prefixed</a> "IGNORE" >
|
|
<!ENTITY <a id="pe-MATHML.prefixed" class="entity">% MATHML.prefixed</a> "IGNORE" >
|
|
<!ENTITY <a id="pe-MATHML.prefix" class="entity">% MATHML.prefix</a> "m" >
|
|
<!ENTITY <a id="pe-MATHML.pref.prefixed" class="entity">% MATHML.pref.prefixed</a> "IGNORE" >
|
|
<!ENTITY <a id="pe-MATHML.pref.prefix" class="entity">% MATHML.pref.prefix</a> "pref" >
|
|
<!ENTITY <a id="pe-SVG.prefixed" class="entity">% SVG.prefixed</a> "INCLUDE" >
|
|
<!ENTITY <a id="pe-SVG.prefix" class="entity">% SVG.prefix</a> "svg" >
|
|
<!ENTITY <a id="pe-XLINK.prefix" class="entity">% XLINK.prefix</a> "xlink" >
|
|
|
|
<!-- a URI reference, see [URI] -->
|
|
<!ENTITY <a id="pe-URI.datatype" class="entity">% URI.datatype</a> "CDATA" >
|
|
|
|
<!-- Declare a parameter entity %XLINK.xmlns.attrib; containing
|
|
the XML Namespace declarations for XLink.
|
|
-->
|
|
<!ENTITY <a id="pe-XLINK.xmlns.attrib" class="entity">% XLINK.xmlns.attrib</a>
|
|
"xmlns:%XLINK.prefix; %URI.datatype; #FIXED '%XLINK.xmlns;'"
|
|
>
|
|
|
|
<!-- Allow universal MathML stylesheet-related declarations.
|
|
When it is used, it must always be prefixed.
|
|
-->
|
|
<![%MATHML.module;[
|
|
<![%MATHML.pref.prefixed;[
|
|
<!ENTITY <a id="pe-MATHML.pref.renderer.extra" class="entity">% MATHML.pref.renderer.extra</a> "">
|
|
<!ENTITY <a id="pe-MATHML.pref.renderer" class="entity">% MATHML.pref.renderer</a>
|
|
"css | mathplayer-dl | mathplayer | techexplorer-plugin | techexplorer">
|
|
<!ENTITY <a id="pe-MATHML.pref.xmlns.attrib" class="entity">% MATHML.pref.xmlns.attrib</a>
|
|
"xmlns:%MATHML.pref.prefix; %URI.datatype; #FIXED '%MATHML.pref.xmlns;'
|
|
%MATHML.pref.prefix;:renderer
|
|
( %MATHML.pref.renderer; %MATHML.pref.renderer.extra; ) #IMPLIED"
|
|
>
|
|
]]>
|
|
]]>
|
|
<!ENTITY % MATHML.pref.xmlns.attrib "" >
|
|
|
|
<!-- The parameter entities %SVG.xmlns.extra.attrib; and
|
|
%XHTML.xmlns.extra.attrib; may be redeclared to contain
|
|
any foreign namespace declarations for namespaces embedded
|
|
in XHTML+MathML+SVG. The default value is an empty string.
|
|
-->
|
|
<!ENTITY <a id="pe-SVG.xmlns.extra.attrib" class="entity">% SVG.xmlns.extra.attrib</a> "" >
|
|
<!ENTITY <a id="pe-XHTML.xmlns.extra.attrib" class="entity">% XHTML.xmlns.extra.attrib</a> "" >
|
|
|
|
<!-- Declare parameter entities to define XML Namespace declarations
|
|
for SVG, XHTML and MathML.
|
|
-->
|
|
<![%SVG.module;[
|
|
<![%SVG.prefixed;[
|
|
<!ENTITY <a id="pe-SVG.xmlns.decl.attrib" class="entity">% SVG.xmlns.decl.attrib</a>
|
|
"xmlns:%SVG.prefix; %URI.datatype; #FIXED '%SVG.xmlns;'"
|
|
>
|
|
]]>
|
|
<!ENTITY % SVG.xmlns.decl.attrib
|
|
"xmlns %URI.datatype; #FIXED '%SVG.xmlns;'"
|
|
>
|
|
]]>
|
|
<!ENTITY % SVG.xmlns.decl.attrib "" >
|
|
|
|
<![%XHTML.module;[
|
|
<![%XHTML.prefixed;[
|
|
<!ENTITY % XHTML.xmlns.decl.attrib
|
|
"xmlns:%XHTML.prefix; %URI.datatype; #FIXED '%XHTML.xmlns;'"
|
|
>
|
|
]]>
|
|
<!ENTITY <a id="pe-XHTML.xmlns.decl.attrib" class="entity">% XHTML.xmlns.decl.attrib</a>
|
|
"xmlns %URI.datatype; #FIXED '%XHTML.xmlns;'"
|
|
>
|
|
]]>
|
|
<!ENTITY % XHTML.xmlns.decl.attrib "" >
|
|
|
|
<![%MATHML.module;[
|
|
<![%MATHML.prefixed;[
|
|
<!ENTITY % MATHML.xmlns.decl.attrib
|
|
"xmlns:%MATHML.prefix; %URI.datatype; #FIXED '%MATHML.xmlns;'"
|
|
>
|
|
]]>
|
|
<!ENTITY <a id="pe-MATHML.xmlns.decl.attrib" class="entity">% MATHML.xmlns.decl.attrib</a>
|
|
"xmlns %URI.datatype; #FIXED '%MATHML.xmlns;'"
|
|
>
|
|
]]>
|
|
<!ENTITY % MATHML.xmlns.decl.attrib "" >
|
|
|
|
<!-- Declare common case for %NS.decl.attrib;.
|
|
-->
|
|
<!ENTITY <a id="pe-NS.common.decl.attrib" class="entity">% NS.common.decl.attrib</a>
|
|
"%SVG.xmlns.decl.attrib;
|
|
%XHTML.xmlns.decl.attrib;
|
|
%MATHML.xmlns.decl.attrib;
|
|
%XLINK.xmlns.attrib;
|
|
%MATHML.pref.xmlns.attrib;
|
|
%SVG.xmlns.extra.attrib;
|
|
%XHTML.xmlns.extra.attrib;"
|
|
>
|
|
|
|
<!-- Redeclare the parameter entity %NS.decl.attrib; containing
|
|
all XML Namespace declarations used in the DTD, its form
|
|
dependent on whether prefixing is active.
|
|
-->
|
|
<![%SVG.prefixed;[
|
|
<![%XHTML.prefixed;[
|
|
<!-- SVG and XHTML are prefixed, MathML is either prefixed or not prefixed.
|
|
-->
|
|
<!ENTITY % NS.decl.attrib
|
|
"%NS.common.decl.attrib;"
|
|
>
|
|
]]>
|
|
<![%MATHML.prefixed;[
|
|
<!-- SVG and MathML are prefixed, XHTML is not prefixed.
|
|
-->
|
|
<!ENTITY % NS.decl.attrib
|
|
"%NS.common.decl.attrib;"
|
|
>
|
|
]]>
|
|
<!-- SVG is prefixed, XHTML and MathML are not prefixed.
|
|
MathML namespace must always be specified on the math element.
|
|
-->
|
|
<!ENTITY <a id="pe-NS.decl.attrib" class="entity">% NS.decl.attrib</a>
|
|
"%SVG.xmlns.decl.attrib;
|
|
%XHTML.xmlns.decl.attrib;
|
|
%XLINK.xmlns.attrib;
|
|
%MATHML.pref.xmlns.attrib;
|
|
%SVG.xmlns.extra.attrib;
|
|
%XHTML.xmlns.extra.attrib;"
|
|
>
|
|
]]>
|
|
<![%XHTML.prefixed;[
|
|
<![%MATHML.prefixed;[
|
|
<!-- SVG is not prefixed, XHTML and MathML are prefixed.
|
|
-->
|
|
<!ENTITY % NS.decl.attrib
|
|
"%NS.common.decl.attrib;"
|
|
>
|
|
]]>
|
|
<!-- SVG and MathML are not prefixed, which is not allowed.
|
|
-->
|
|
<!ENTITY % NS.decl.attrib "" >
|
|
]]>
|
|
<!-- SVG, MathML and XHTML are all not prefixed, which is not allowed.
|
|
-->
|
|
<!ENTITY % NS.decl.attrib "" >
|
|
|
|
<!-- Redeclare parameter entities %SVG.xmlns.attrib; and
|
|
%XHTML.xmlns.attrib; containing all XML namespace declarations
|
|
used by XHTML+MathML+SVG, including a default xmlns declaration
|
|
when prefixing is inactive.
|
|
-->
|
|
<![%SVG.module;[
|
|
<!ENTITY <a id="pe-SVG.xmlns.attrib" class="entity">% SVG.xmlns.attrib</a>
|
|
"%NS.decl.attrib;"
|
|
>
|
|
]]>
|
|
|
|
<![%XHTML.module;[
|
|
<!ENTITY <a id="pe-XHTML.xmlns.attrib" class="entity">% XHTML.xmlns.attrib</a>
|
|
"%NS.decl.attrib;"
|
|
>
|
|
]]>
|
|
|
|
<!-- Redeclare the parameter entity %MATHML.xmlns.extra.attrib;
|
|
containing XLink and MathML preferences namespace declarations
|
|
allowed on MathML elements.
|
|
-->
|
|
<![%MATHML.module;[
|
|
<!ENTITY <a id="pe-MATHML.xmlns.extra.attrib" class="entity">% MATHML.xmlns.extra.attrib</a>
|
|
"%XLINK.xmlns.attrib;
|
|
%MATHML.pref.xmlns.attrib;"
|
|
>
|
|
]]>
|
|
|
|
<!-- Framework Redeclaration placeholders ....................... -->
|
|
|
|
<![%XHTML.module;[
|
|
<!ENTITY <a id="pe-XHTML.redecl.module" class="entity">% XHTML.redecl.module</a> "INCLUDE" >
|
|
<![%XHTML.redecl.module;[
|
|
<!-- Pre-Framework Redeclaration placeholder .................... -->
|
|
<!ENTITY <a id="pe-xhtml-prefw-redecl.mod" class="entity">% xhtml-prefw-redecl.mod</a> "" >
|
|
|
|
<!-- Post-Framework Redeclaration placeholder ................... -->
|
|
<!ENTITY <a id="pe-xhtml-postfw-redecl.mod" class="entity">% xhtml-postfw-redecl.mod</a> "" >
|
|
]]>
|
|
]]>
|
|
|
|
<![%SVG.module;[
|
|
<!ENTITY <a id="pe-SVG.redecl.module" class="entity">% SVG.redecl.module</a> "INCLUDE" >
|
|
<![%SVG.redecl.module;[
|
|
<!-- Pre-Framework Redeclaration placeholder ..................... -->
|
|
<!ENTITY <a id="pe-svg-prefw-redecl.mod" class="entity">% svg-prefw-redecl.mod</a> "" >
|
|
|
|
<!-- Post-Framework Redeclaration placeholder .................... -->
|
|
<!ENTITY <a id="pe-svg-postfw-redecl.mod" class="entity">% svg-postfw-redecl.mod</a> "" >
|
|
]]>
|
|
]]>
|
|
|
|
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
|
|
<!-- Declare MathML Qualified Names module as an extension of
|
|
XHTML's Qualified Names module.
|
|
-->
|
|
<![%MATHML.module;[
|
|
<!ENTITY <a id="pe-xhtml-qname-extra.decl" class="entity">% xhtml-qname-extra.decl</a>
|
|
'PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN"
|
|
"%MATHML.qname.sysid;"'
|
|
>
|
|
<!ENTITY <a id="pe-xhtml-qname-extra.mod" class="entity">% xhtml-qname-extra.mod</a>
|
|
%xhtml-qname-extra.decl;
|
|
>
|
|
]]>
|
|
|
|
<!-- Declare location of math and svg contents in XHTML.
|
|
-->
|
|
|
|
<![%MATHML.module;[
|
|
<![%MATHML.prefixed;[
|
|
<!ENTITY % MATHML.pfx "%MATHML.prefix;:" >
|
|
]]>
|
|
<!ENTITY <a id="pe-MATHML.pfx" class="entity">% MATHML.pfx</a> "" >
|
|
<!ENTITY <a id="pe-math.qname" class="entity">% math.qname</a> "%MATHML.pfx;math" >
|
|
<!ENTITY <a id="pe-MATHML.math.class" class="entity">% MATHML.math.class</a> "| %math.qname;" >
|
|
]]>
|
|
<!ENTITY % MATHML.math.class "" >
|
|
|
|
<![%SVG.module;[
|
|
<![%SVG.prefixed;[
|
|
<!ENTITY <a id="pe-SVG.pfx" class="entity">% SVG.pfx</a> "%SVG.prefix;:" >
|
|
]]>
|
|
<!ENTITY % SVG.pfx "" >
|
|
<!ENTITY <a id="pe-SVG.svg.qname" class="entity">% SVG.svg.qname</a> "%SVG.pfx;svg" >
|
|
<!ENTITY <a id="pe-SVG.svg.class" class="entity">% SVG.svg.class</a> "| %SVG.svg.qname;" >
|
|
]]>
|
|
<!ENTITY % SVG.svg.class "" >
|
|
|
|
<![%XHTML.module;[
|
|
<![%XHTML.Basic.module;[
|
|
<!ENTITY <a id="pe-Misc.class" class="entity">% Misc.class</a>
|
|
"%MATHML.math.class; %SVG.svg.class;" >
|
|
]]>
|
|
<!ENTITY <a id="pe-Misc.extra" class="entity">% Misc.extra</a>
|
|
"%MATHML.math.class; %SVG.svg.class;" >
|
|
]]>
|
|
|
|
<!-- Redeclare SVG's foreignObject content (allow anything).
|
|
-->
|
|
<![%SVG.module;[
|
|
<!ENTITY <a id="pe-SVG.foreignObject.content" class="entity">% SVG.foreignObject.content</a> "ANY" >
|
|
]]>
|
|
|
|
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
|
|
<!-- Instantiate SVG DTD ........................................ -->
|
|
<![%SVG.module;[
|
|
<!ENTITY <a id="pe-SVG.dtd.decl" class="entity">% SVG.dtd.decl</a>
|
|
'PUBLIC "%SVG.dtd.fpi;"
|
|
"%SVG.dtd.sysid;"'
|
|
>
|
|
<!ENTITY <a id="pe-SVG.dtd" class="entity">% SVG.dtd</a> %SVG.dtd.decl; >
|
|
%SVG.dtd;
|
|
]]>
|
|
|
|
<!-- Instantiate XHTML DTD ...................................... -->
|
|
<![%XHTML.module;[
|
|
<!ENTITY <a id="pe-XHTML.dtd.decl" class="entity">% XHTML.dtd.decl</a>
|
|
'PUBLIC "%XHTML.dtd.fpi;"
|
|
"%XHTML.dtd.sysid;"'
|
|
>
|
|
<!ENTITY <a id="pe-XHTML.dtd" class="entity">% XHTML.dtd</a> %XHTML.dtd.decl; >
|
|
%XHTML.dtd;
|
|
]]>
|
|
|
|
<!-- instantiate MathML 2.0 DTD ................................. -->
|
|
<![%MATHML.module;[
|
|
<!ENTITY <a id="pe-MATHML.dtd.decl" class="entity">% MATHML.dtd.decl</a>
|
|
'PUBLIC "-//W3C//DTD MathML 2.0//EN"
|
|
"%MATHML.dtd.sysid;"'
|
|
>
|
|
<!ENTITY <a id="pe-MATHML.dtd" class="entity">% MATHML.dtd</a> %MATHML.dtd.decl; >
|
|
%MATHML.dtd;
|
|
]]>
|
|
|
|
<!-- end of xhtml-math-svg.dtd -->
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="informative">
|
|
<h2 id="howto">3.  How to use XHTML 1.1 + MathML 2.0 +
|
|
SVG 1.1 DTD</h2>
|
|
|
|
<p><em>This section is informative.</em></p>
|
|
|
|
<p>As shown in the above DTD driver, a couple of parameter entities are
|
|
prepared to switch on/off namespace prefixes and to change namespace
|
|
prefixes arbitrarily. The default values are as follows:</p>
|
|
|
|
<pre id="pe-MODULE.prefixing" class="dtd-fragment"
|
|
><!ENTITY % XHTML.prefixed "IGNORE" >
|
|
<!ENTITY % XHTML.prefix "" >
|
|
<!ENTITY % MATHML.prefixed "IGNORE" >
|
|
<!ENTITY % MATHML.prefix "m" >
|
|
<!ENTITY % SVG.prefixed "INCLUDE" >
|
|
<!ENTITY % SVG.prefix "svg" >
|
|
<!ENTITY % XLINK.prefix "xlink" >
|
|
</pre>
|
|
|
|
<dl>
|
|
<dt id="pe-MODULE.prefixed"><code class="pe">%XHTML.prefixed;</code>,
|
|
<code class="pe">%MATHML.prefixed;</code>,
|
|
<code class="pe">%SVG.prefixed;</code></dt>
|
|
<dd>
|
|
<p>These parameter entities switch on/off namespace prefixing. Setting
|
|
the value to '<code>INCLUDE</code>' makes namespace prefixing on,
|
|
and '<code>IGNORE</code>' switches off namespace prefixing.
|
|
By default, XHTML and MathML are not prefixed, and SVG is prefixed
|
|
with '<var class="prefix">svg:</var>'.</p>
|
|
|
|
<p>Also check the <a href="#bug-name-collision">limitation on
|
|
name collisions</a>.</p>
|
|
</dd>
|
|
|
|
<dt id="pe-MODULE.prefix"><code class="pe">%XHTML.prefix;</code>,
|
|
<code class="pe">%MATHML.prefix;</code>,
|
|
<code class="pe">%SVG.prefix;</code>,
|
|
<code class="pe">%XLINK.prefix;</code></dt>
|
|
<dd>
|
|
<p>These parameter entities set namespace prefixes for relevant
|
|
vocabularies. These values take effect only if relevant prefixing
|
|
is enabled. The same prefix may not be used for different vocabularies.
|
|
Note that XLink attributes must always be prefixed, so the value of
|
|
<code class="pe">%XLINK.prefix;</code> must not be an empty string.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p>There are also parameter entities that define system identifiers
|
|
for relevant DTD modules as follows:</p>
|
|
|
|
<pre id="pe-MODULE.sysid" class="dtd-fragment"
|
|
><!ENTITY % XHTML.sysid.base
|
|
"http://www.w3.org/TR/xhtml-modularization/DTD/" >
|
|
<!ENTITY % MATHML.sysid.base
|
|
"http://www.w3.org/Math/DTD/mathml2/" >
|
|
<!ENTITY % SVG.sysid.base
|
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/" >
|
|
|
|
<!ENTITY % XHTML.dtd.sysid
|
|
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
|
|
<!ENTITY % MATHML.dtd.sysid
|
|
"%MATHML.sysid.base;mathml2.dtd" >
|
|
<!ENTITY % MATHML.qname.sysid
|
|
"%MATHML.sysid.base;mathml2-qname-1.mod" >
|
|
<!ENTITY % SVG.dtd.sysid
|
|
"%SVG.sysid.base;svg11.dtd" >
|
|
</pre>
|
|
|
|
<p>When necessary, these parameter entities may be overridden to point to
|
|
local copies of those DTD modules, e.g. for off-line authoring. Authors
|
|
should not override these parameter entities when delivering the content.</p>
|
|
|
|
|
|
<h3 id="howto-xhtml">3.1.  XHTML as the Host Language</h3>
|
|
|
|
<p>If authors want to use XHTML as the host language, this DTD driver may
|
|
be typically invoked as follows:</p>
|
|
|
|
<pre id="xhtml-prolog" class="prolog"
|
|
><!DOCTYPE html PUBLIC
|
|
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
|
|
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
|
|
</pre>
|
|
|
|
<p>If necessary, authors may change the above parameter entities as appropriate
|
|
in the internal DTD subset. A typical document might look something like
|
|
this:</p>
|
|
|
|
<pre id="ex-xhtml" class="xml"
|
|
><?xml version="1.0"?>
|
|
<!DOCTYPE html PUBLIC
|
|
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
|
|
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
<head>
|
|
<title>XHTML as the host language</title>
|
|
</head>
|
|
<body>
|
|
<var>... XHTML content ...</var>
|
|
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
|
<var>... MathML content ...</var>
|
|
</math>
|
|
<var>... XHTML content ...</var>
|
|
<svg:svg version="1.1"
|
|
xmlns:svg="http://www.w3.org/2000/svg"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<var>... SVG content ...</var>
|
|
<svg:switch>
|
|
<svg:foreignObject ...>
|
|
<p>
|
|
<var>... XHTML content ...</var>
|
|
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
|
<var>... MathML content ...</var>
|
|
</math>
|
|
<var>... XHTML content ...</var>
|
|
</p>
|
|
</svg:foreignObject>
|
|
</svg:switch>
|
|
</svg:svg>
|
|
</body>
|
|
</html>
|
|
</pre>
|
|
|
|
<p>If MathML is not prefixed, the MathML namespace must always be
|
|
declared on the <code class="element">math</code> element to avoid
|
|
confusion of namespace defaulting with XHTML.</p>
|
|
|
|
<h3 id="howto-svg">3.2.  SVG as the Host Language</h3>
|
|
|
|
<p>If authors want to use SVG as the host language, this DTD driver may
|
|
be typically invoked as follows:</p>
|
|
|
|
<pre id="svg-prolog" class="prolog"
|
|
><!DOCTYPE svg:svg PUBLIC
|
|
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
|
|
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
|
|
</pre>
|
|
|
|
<p>In this case SVG elements are still prefixed and XHTML and MathML
|
|
elements are not prefixed. In order to make SVG elements non-prefixed,
|
|
authors may adjust <a href="#pe-MODULE.prefixing">relevant parameter
|
|
entities</a> in the internal DTD subset like this:</p>
|
|
|
|
<pre id="ex-svg1" class="xml"
|
|
><?xml version="1.0"?>
|
|
<!DOCTYPE svg PUBLIC
|
|
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
|
|
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"[
|
|
<!ENTITY % SVG.prefixed "IGNORE" >
|
|
<!ENTITY % XHTML.prefixed "INCLUDE" >
|
|
<!ENTITY % XHTML.prefix "xhtml" >
|
|
<!ENTITY % MATHML.prefixed "INCLUDE" >
|
|
<!ENTITY % MATHML.prefix "math" >
|
|
]>
|
|
<svg version="1.1" xml:lang="en"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<desc>SVG as the host language</desc>
|
|
<var>... SVG content ...</var>
|
|
<switch>
|
|
<foreignObject ...>
|
|
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
|
<var>... XHTML content ...</var>
|
|
<math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
|
|
<var>... MathML content ...</var>
|
|
</math:math>
|
|
<var>... XHTML content ...</var>
|
|
</xhtml:p>
|
|
</foreignObject>
|
|
</switch>
|
|
<var>... SVG content ...</var>
|
|
</svg>
|
|
</pre>
|
|
|
|
<p>Note that the namespace declarations may be collectively declared on
|
|
the root element (or other elements), like:</p>
|
|
|
|
<pre id="ex-svg2" class="xml"
|
|
><?xml version="1.0"?>
|
|
<!DOCTYPE svg PUBLIC
|
|
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
|
|
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"[
|
|
<!ENTITY % SVG.prefixed "IGNORE" >
|
|
<!ENTITY % XHTML.prefixed "INCLUDE" >
|
|
<!ENTITY % XHTML.prefix "xhtml" >
|
|
<!ENTITY % MATHML.prefixed "INCLUDE" >
|
|
<!ENTITY % MATHML.prefix "math" >
|
|
]>
|
|
<svg version="1.1" xml:lang="en"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
|
xmlns:math="http://www.w3.org/1998/Math/MathML">
|
|
<desc>SVG as the host language</desc>
|
|
<var>... SVG content ...</var>
|
|
<switch>
|
|
<foreignObject ...>
|
|
<xhtml:p>
|
|
<var>... XHTML content ...</var>
|
|
<math:math>
|
|
<var>... MathML content ...</var>
|
|
</math:math>
|
|
<var>... XHTML content ...</var>
|
|
</xhtml:p>
|
|
</foreignObject>
|
|
</switch>
|
|
<var>... SVG content ...</var>
|
|
</svg>
|
|
</pre>
|
|
|
|
<h3 id="howto-math">3.3.  Using MathML with Universal
|
|
MathML stylesheet</h3>
|
|
|
|
|
|
<p>When using MathML, authors may wish to use the "Universal MathML stylesheet"
|
|
[<a class="informref" href="#ref-mathml-xsl">MathML-XSL</a>] to make it
|
|
possible to be viewed on a large number of Web browsers. This DTD driver
|
|
allows authors to use this <abbr title="XSL Transformations">XSLT</abbr>
|
|
stylesheet easily.
|
|
The DTD driver includes the following parameter entities:</p>
|
|
|
|
<pre id="pe-MATHML.pref" class="xml"
|
|
><!ENTITY % MATHML.pref.prefixed "IGNORE" >
|
|
<!ENTITY % MATHML.pref.prefix "pref" >
|
|
</pre>
|
|
|
|
<p>Authors may include an XML stylesheet processing instruction for
|
|
the universal MathML stylesheet as explained in "<cite>Putting mathematics
|
|
on the Web with MathML</cite>" [<a class="informref"
|
|
href="#ref-mathml-xsl">MathML-XSL</a>], and when they want to
|
|
specify preferences for the MathML renderer, they may set the
|
|
<code class="pe">%MATHML.pref.prefixed;</code> parameter entity to
|
|
"<code>INCLUDE</code>".
|
|
This allows authors to declare the MathML preferences namespace
|
|
and use the <code class="attribute">renderer</code> attribute like this:</p>
|
|
|
|
<pre id="ex-mathml" class="xml"
|
|
><?xml version="1.0"?>
|
|
<?xml-stylesheet type="text/xsl" href="http://www.w3.org/Math/XSL/mathml.xsl"?>
|
|
<!DOCTYPE html PUBLIC
|
|
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
|
|
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"[
|
|
<!ENTITY % MATHML.pref.prefixed "INCLUDE" >
|
|
]>
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
|
|
xmlns:pref="http://www.w3.org/2002/Math/preference"
|
|
pref:renderer="css">
|
|
<head> ... </head>
|
|
<body> ... </body>
|
|
</html>
|
|
</pre>
|
|
|
|
<p>The namespace prefix for the MathML preferences namespace may be
|
|
changed by redeclaring the <code class="pe">%MATHML.pref.prefix;</code>
|
|
parameter entity in the internal DTD subset.</p>
|
|
</div>
|
|
|
|
<div class="informative">
|
|
<h2 id="profiles">4.  How to define new profiles from XHTML 1.1 +
|
|
MathML 2.0 + SVG 1.1 DTD</h2>
|
|
|
|
<p><em>This section is informative.</em></p>
|
|
|
|
<p>This DTD driver can also be used as a basis for defining other
|
|
profiles that combine some or all of XHTML, MathML and SVG.
|
|
This DTD driver has switches to include/ignore each vocabulary,
|
|
all set to "<code>INCLUDE</code>" by default:</p>
|
|
|
|
<pre id="pe-MODULE.module" class="dtd-fragment"
|
|
><!ENTITY % XHTML.module "INCLUDE" >
|
|
<!ENTITY % MATHML.module "INCLUDE" >
|
|
<!ENTITY % SVG.module "INCLUDE" >
|
|
</pre>
|
|
|
|
<p>For example, by redeclaring the <code class="pe">%MATHML.module;</code>
|
|
parameter entity to "<code>IGNORE</code>", this DTD driver
|
|
can be used as an XHTML 1.1 + SVG 1.1 DTD.</p>
|
|
|
|
<p>People might want to use other XHTML Family document type such as
|
|
XHTML Basic [<a class="informref" href="#ref-xhtml-basic">XHTMLBasic</a>]
|
|
instead of XHTML 1.1, or other SVG profiles like SVG Basic/Tiny
|
|
[<a class="informref" href="#ref-svgmobile">SVGMobile</a>] instead of full
|
|
SVG 1.1. There are predefined parameter entities to allow those subsets
|
|
easily, all set to "<code>IGNORE</code>" by default:</p>
|
|
|
|
<pre id="pe-MODULE.SUBSET.module" class="dtd-fragment"
|
|
><!ENTITY % XHTML.Basic.module "IGNORE" >
|
|
<!ENTITY % SVG.Basic.module "IGNORE" >
|
|
<!ENTITY % SVG.Tiny.module "IGNORE" >
|
|
</pre>
|
|
|
|
<p>By redeclaring the <code class="pe">%XHTML.Basic.module;</code>
|
|
parameter entity to "<code>INCLUDE</code>", this DTD driver will use
|
|
XHTML Basic instead of XHTML 1.1 for XHTML part. Likewise,
|
|
<code class="pe">%SVG.Basic.module;</code> and
|
|
<code class="pe">%SVG.Tiny.module;</code> control whether to use
|
|
SVG Basic/Tiny instead of SVG 1.1, respectively.
|
|
When both <code class="pe">%SVG.Basic.module;</code> and
|
|
<code class="pe">%SVG.Tiny.module;</code> are set to "<code>INCLUDE</code>",
|
|
SVG Tiny will be used.</p>
|
|
|
|
<p>Using this mechanism, XHTML Basic + SVG Tiny DTD can be
|
|
simply written like this:</p>
|
|
|
|
<pre id="xhtml-basic-svg-tiny.dtd" class="dtd"
|
|
><!-- ....................................................................... -->
|
|
<!-- XHTML Basic plus SVG Tiny DTD ........................................ -->
|
|
<!-- URI: <a type="application/xml-dtd"
|
|
href="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-basic-svg-tiny.dtd"
|
|
>http://www.w3.org/2002/04/xhtml-math-svg/xhtml-basic-svg-tiny.dtd</a>
|
|
-->
|
|
|
|
<!ENTITY % XHTML.version
|
|
"-//W3C//DTD XHTML Basic plus SVG Tiny//EN" >
|
|
|
|
<!ENTITY % XHTML.Basic.module "INCLUDE" >
|
|
<!ENTITY % MATHML.module "IGNORE" >
|
|
<!ENTITY % SVG.Tiny.module "INCLUDE" >
|
|
|
|
<!ENTITY % XHTML-MATH-SVG.dtd
|
|
PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
|
|
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd" >
|
|
%XHTML-MATH-SVG.dtd;
|
|
|
|
<!-- end of xhtml-basic-svg-tiny.dtd -->
|
|
</pre>
|
|
|
|
<p>In addition, each DTD is parameterized as
|
|
<a href="#pe-XHTML.dtd"><code class="pe">%XHTML.dtd;</code></a>,
|
|
<a href="#pe-MATHML.dtd"><code class="pe">%MATHML.dtd;</code></a> and
|
|
<a href="#pe-SVG.dtd"><code class="pe">%SVG.dtd;</code></a>,
|
|
so by redeclaring the relevant parameter entity to refer to a different
|
|
DTD, different profile may be easily defined.</p>
|
|
</div>
|
|
|
|
|
|
<div class="informative">
|
|
<h2 id="bugs">5.  Known limitations</h2>
|
|
|
|
<p><em>This section is informative.</em></p>
|
|
|
|
<p>Although this DTD driver has taken a great stride to provide
|
|
as much flexibility as possible, there are some limitations,
|
|
mostly due to the limitation of the DTD mechanism itself.</p>
|
|
|
|
<ul>
|
|
<li id="bug-name-collision">Due to name collisions, XHTML and SVG, or MathML
|
|
and SVG cannot be used together without prefixing either of them.</li>
|
|
<li id="bug-prefixing">Arbitrary prefixes can be chosen, but those cannot be
|
|
changed in the middle of the same document (e.g. if authors choose to
|
|
prefix SVG elements, authors have to always prefix them and have to use
|
|
the same prefix throughout the document, and they cannot use
|
|
defaulting in that document).</li>
|
|
<li id="bug-mathml-nsdecl">Only MathML and XLink namespace declarations are
|
|
allowed on MathML elements, and XHTML or SVG namespaces cannot be
|
|
declared.</li>
|
|
<li id="bug-extension">This DTD driver is not designed to allow arbitrary
|
|
foreign namespaces (simply not possible with DTD). Adding yet another
|
|
vocabulary beyond XHTML+MathML+SVG may not be trivial, either.</li>
|
|
<li id="issue-mixed" class="issue"><p><strong>ISSUE</strong>:
|
|
At the moment, inside SVG, XHTML and MathML fragments are only
|
|
allowed through the <code class="element">foreignObject</code>
|
|
element. It would make sense to also allow those foreign namespace
|
|
fragments inside the <code class="element">desc</code> and <code
|
|
class="element">title</code> elements. Future update of this profile
|
|
may allow such integration.</p>
|
|
<p>It is also under discussion whether to allow those foreign namespace
|
|
fragments directly inside elements like <code class="element">text</code>
|
|
and <code class="element">tspan</code>. Such a close integration would
|
|
be useful for mathematical diagrams, but the processing needs to be
|
|
clarified.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<h2 id="ref">References</h2>
|
|
|
|
<div class="normative">
|
|
<h3 id="normref">Normative references</h3>
|
|
|
|
<dl class="normref">
|
|
<dt id="ref-mathml2">[MathML2]</dt>
|
|
|
|
<dd>"<cite><a href="http://www.w3.org/TR/2001/REC-MathML2-20010221/"
|
|
>Mathematical Markup Language (MathML) Version 2.0</a></cite>",
|
|
W3C Recommendation</dd>
|
|
|
|
<dd><p>D. Carlisle, P. Ion, R. Miner, N. Poppelier,
|
|
<em><abbr title="editors">eds.</abbr></em>, 21 February 2001</p>
|
|
<p>Available at: http://www.w3.org/TR/2001/REC-MathML2-20010221</p>
|
|
<p>The <a href="http://www.w3.org/TR/MathML2/">latest version</a> is
|
|
available at: http://www.w3.org/TR/MathML2</p></dd>
|
|
|
|
<dt id="ref-ruby">[Ruby]</dt>
|
|
|
|
<dd>"<cite><a href="http://www.w3.org/TR/2001/REC-ruby-20010531/">Ruby
|
|
Annotation</a></cite>", W3C Recommendation</dd>
|
|
|
|
<dd><p>M. Sawicki, M. Suignard, M. Ishikawa, M. Dürst, T. Texin,
|
|
<em>eds.</em>, 31 May 2001.</p>
|
|
<p>Available at: http://www.w3.org/TR/2001/REC-ruby-20010531</p>
|
|
<p>The <a href="http://www.w3.org/TR/ruby/">latest version</a> is
|
|
available at: http://www.w3.org/TR/ruby</p></dd>
|
|
|
|
<dt id="ref-svg11">[SVG11]</dt>
|
|
|
|
<dd>"<cite><a href="http://www.w3.org/TR/2002/CR-SVG11-20020430/">Scalable
|
|
Vector Graphics (SVG) 1.1 Specification</a></cite>",
|
|
W3C Candidate Recommendation</dd>
|
|
|
|
<dd><p>D. Jackson, J. Ferraiolo, J. Fujisawa, <em>eds.</em>,
|
|
30 April 2002, <em>work in progress</em>.</p>
|
|
<p>Available at: http://www.w3.org/TR/2002/CR-SVG11-20020430/</p>
|
|
<p>The <a href="http://www.w3.org/TR/SVG11/">latest version</a> is
|
|
available at: http://www.w3.org/TR/SVG11/</p></dd>
|
|
|
|
<dt id="ref-URI">[URI]</dt>
|
|
|
|
<dd><p>"<cite><a href="http://www.rfc-editor.org/rfc/rfc2396.txt">Uniform
|
|
Resource Identifiers (URI): Generic Syntax</a></cite>",
|
|
RFC 2396, T. Berners-Lee, R. Fielding, L. Masinter, August 1998.</p>
|
|
<p>Available at: http://www.rfc-editor.org/rfc/rfc2396.txt</p></dd>
|
|
|
|
<dt id="ref-xhtml11">[XHTML11]</dt>
|
|
|
|
<dd>"<cite><a href="http://www.w3.org/TR/2001/REC-xhtml11-20010531/"
|
|
>XHTML™ 1.1 — Module-based XHTML</a></cite>",
|
|
W3C Recommendation</dd>
|
|
|
|
<dd><p>M. Altheim, S. McCarron, <em>eds.</em>, 31 May 2001.</p>
|
|
<p>Available at: http://www.w3.org/TR/2001/REC-xhtml11-20010531</p>
|
|
<p>The <a href="http://www.w3.org/TR/xhtml11/">latest version</a> is
|
|
available at: http://www.w3.org/TR/xhtml11</p></dd>
|
|
|
|
<dt id="ref-xhtmlmod">[XHTMLMOD]</dt>
|
|
|
|
<dd>"<cite><a
|
|
href="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/"
|
|
>Modularization of XHTML™</a></cite>", W3C Recommendation</dd>
|
|
|
|
<dd><p>S. P. McCarron <em lang="lt">et al.</em>, 10 April 2001.</p>
|
|
<p>Available at: http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410</p>
|
|
<p>The <a href="http://www.w3.org/TR/xhtml-modularization/">latest version</a>
|
|
is available at: http://www.w3.org/TR/xhtml-modularization</p></dd>
|
|
|
|
<dt id="ref-xmlns">[XMLNS]</dt>
|
|
|
|
<dd>"<cite><a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/"
|
|
>Namespaces in XML</a></cite>", W3C Recommendation</dd>
|
|
|
|
<dd><p>T. Bray, D. Hollander, A. Layman, <em>eds.</em>, 14 January 1999.
|
|
Available at: http://www.w3.org/TR/1999/REC-xml-names-19990114</p>
|
|
<p>The <a href="http://www.w3.org/TR/REC-xml-names/">latest version</a> is
|
|
available at: http://www.w3.org/TR/REC-xml-names</p></dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<div class="informative">
|
|
<h3 id="informref">Informative references</h3>
|
|
|
|
<dl class="informref">
|
|
<dt id="ref-mathml-xsl">[MathML-XSL]</dt>
|
|
|
|
<dd>"<cite><a href="http://www.w3.org/Math/XSL/">Putting mathematics
|
|
on the Web with MathML</a></cite>", W3C Math Working Group, 2002.</dd>
|
|
|
|
<dt id="ref-svgmobile">[SVGMobile]</dt>
|
|
|
|
<dd>"<cite><a href="http://www.w3.org/TR/2002/CR-SVGMobile-20020430/">Mobile
|
|
SVG Profiles: SVG Tiny and SVG Basic</a></cite>",
|
|
W3C Candidate Recommendation</dd>
|
|
|
|
<dd><p>T. Capin, <em><abbr title="editor">ed.</abbr></em>,
|
|
30 April 2002, <em>work in progress</em>.</p>
|
|
<p>Available at: http://www.w3.org/TR/2002/CR-SVGMobile-20020430/</p>
|
|
<p>The <a href="http://www.w3.org/TR/SVGMobile/">latest version</a> is
|
|
available at: http://www.w3.org/TR/SVGMobile/</p></dd>
|
|
|
|
<dt id="ref-xhtml-basic">[XHTMLBasic]</dt>
|
|
|
|
<dd>"<cite><a
|
|
href="http://www.w3.org/TR/2000/REC-xhtml-basic-20001219/">XHTML™
|
|
Basic</a></cite>", W3C Recommendation</dd>
|
|
|
|
<dd><p>M. Baker, M. Ishikawa, S. Matsui, P. Stark, T. Wugofski, T. Yamakami,
|
|
<em>eds.</em>, 19 December 2000.
|
|
Available at: http://www.w3.org/TR/2000/REC-xhtml-basic-20001219</p>
|
|
<p>The <a href="http://www.w3.org/TR/xhtml-basic/">latest version</a> is
|
|
available at: http://www.w3.org/TR/xhtml-basic</p></dd>
|
|
|
|
<dt id="ref-xhtmlmodschema">[XHTMLMODSchema]</dt>
|
|
|
|
<dd>"<cite><a
|
|
href="http://www.w3.org/TR/2001/WD-xhtml-m12n-schema-20011219/">Modularization
|
|
of XHTML™ in XML Schema</a></cite>", W3C Working Draft</dd>
|
|
|
|
<dd><p>D. Austin, S. P. McCarron, <em>eds.</em>, 19 December 2001,
|
|
<em>work in progress</em>.</p>
|
|
<p>Available at: http://www.w3.org/TR/2001/WD-xhtml-m12n-schema-20011219</p>
|
|
<p>The <a href="http://www.w3.org/TR/xhtml-m12n-schema/">latest version</a>
|
|
is available at: http://www.w3.org/TR/xhtml-m12n-schema</p></dd>
|
|
|
|
<dt id="ref-xmlschema">[XMLSchema]</dt>
|
|
|
|
<dd>"<cite><a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML
|
|
Schema Part 1: Structures</a></cite>", W3C Recommendation</dd>
|
|
|
|
<dd><p>H. S. Thompson, D. Beech, M. Maloney, N. Mendelsohn,
|
|
<em>eds.</em>, 2 May 2001.</p>
|
|
<p>Available at: http://www.w3.org/TR/2001/REC-xmlschema-1-20010502</p>
|
|
<p>The <a href="http://www.w3.org/TR/xmlschema-1/">latest version</a>
|
|
is available at: http://www.w3.org/TR/xmlschema-1</p></dd>
|
|
|
|
<dd><p>See also "<cite><a
|
|
href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">XML Schema Part 2:
|
|
Datatypes</a></cite>", available at:
|
|
http://www.w3.org/TR/2001/REC-xmlschema-2-20010502</p>
|
|
<p>The <a href="http://www.w3.org/TR/xmlschema-2/">latest version</a>
|
|
is available at: http://www.w3.org/TR/xmlschema-2</p></dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<div class="informative">
|
|
<h2 id="changes">Changes from previous Working Draft</h2>
|
|
|
|
<p><em>This section is informative.</em></p>
|
|
|
|
<dl>
|
|
<dt id="changes-driver">2.1.  <a href="#driver">XHTML 1.1 +
|
|
MathML 2.0 + SVG 1.1 DTD Driver</a></dt>
|
|
|
|
<dd>Added mechanism to allow subsets easily.</dd>
|
|
|
|
<dd>Changed <a href="#pe-MATHML.sysid.base"><code class="pe"
|
|
>%MATHML.sysid.base;</code></a> to point to an updated MathML 2.0 DTD.</dd>
|
|
|
|
<dt id="changes-howto-xhtml">3.1.  <a href="#howto-xhtml">XHTML
|
|
as the Host Language</a></dt>
|
|
|
|
<dd>Fixed wrong namespace declaration for SVG in
|
|
the <a href="#ex-xhtml">example</a>.</dd>
|
|
|
|
<dt id="changes-profiles">4.  <a href="#profiles">How to define
|
|
new profiles from XHTML 1.1 + MathML 2.0 + SVG 1.1 DTD</a></dt>
|
|
|
|
<dd>Added explanation for new subset mechanism, and updated XHTML Basic +
|
|
SVG Tiny DTD example to use this mechanism.</dd>
|
|
|
|
<dt id="changes-bugs">5.  <a href="#bugs">Known limitations</a></dt>
|
|
|
|
<dd>With the update of MathML 2.0 DTD, the <a href="#bug-mathml-nsdecl"
|
|
>limitation about XLink namespace declarations on MathML elements</a> has
|
|
been removed.</dd>
|
|
|
|
<dd>Added an <a href="#issue-mixed">issue about more close integration
|
|
of XHTML/MathML inside SVG</a></dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<div class="informative">
|
|
<h2 id="acknowledgments">Acknowledgments</h2>
|
|
|
|
<p><em>This section is informative.</em></p>
|
|
|
|
<p><em>(To be added)</em></p>
|
|
</div>
|
|
</body>
|
|
</html>
|