XHTML+MathML+SVG

Deutsche Übersetzung

19. März 2003

Diese Version:

http://www.schumacher-netz.de/TR/2002/WD-XHTMLplusMathMLplusSVG-20020809-de.html

Übersetzer:

Stefan Schumacher, schumacher-netz.de <sts@schumacher-netz.de>

Bei diesem Dokument handelt es sich um eine Übersetzung eines W3C-Texts. Dieser Text ist urheberrechtlich geschützt; bitte beachten Sie die nachfolgenden Hinweise des Originaldokuments. Die Rechte an der Übersetzung liegen beim Übersetzer. Die Übersetzung hat keine durch das W3C legitimierte, normative Wirkung. Das einzige maßgebliche Dokument ist das englische Original.

Bitte senden Sie Fehler und Korrekturen zur deutschen Fassung an den Übersetzer.

Kommentare des Übersetzers, die als solche gekennzeichnet sind, unterliegen dem Urheberrecht des Übersetzers. Sie sind nicht Bestandteil des Ursprungsdokuments.

Weitere Übersetzungen zum weitreichenden Themenfeld XML & Co finden Sie auf schumacher-netz.de und edition-w3c.de.


W3C

Ein Profil für XHTML + MathML + SVG

W3C Working Draft 9. August 2002

Diese Version:

http://www.w3.org/TR/2002/WD-XHTMLplusMathMLplusSVG-20020809

(HTML, XHTML)

Aktuelle Version:
http://www.w3.org/TR/XHTMLplusMathMLplusSVG
Vorherige Version:

http://www.w3.org/TR/2002/WD-XHTMLplusMathMLplusSVG-20020430

Editor:
Ishikawa Masayasu, W3C

Dieses Dokument ist (in Englisch) auch in diesen nicht normativen Formaten erhältlich: Zip-Datei und gezippte Tar-Datei


Zusammenfassung

Ein XHTML+MathML+SVG-Profil ist ein Profil, das XHTML 1.1 [XHTML11], MathML 2.0 [MathML2] und SVG 1.1 [SVG11] kombiniert. Dieses Profil ermöglicht eine Mixtur aus XHTML, MathML und SVG im gleichen Dokument mit Hilfe von XML-Namensräumen [XMLNS]. Im gleichen Atemzug wird die Validierung der Dokumente mit gemischtem Namensraum gestattet. Ein DTD-Treiber für XHTML 1.1 + MathML 2.0 + SVG 1.1 ist gegeben. Eine XHTML-Version dieses Dokuments ist konform zu dieser DTD.

Kommentar des Übersetzers

Der Begriff DTD-Treiber (im Original: DTD driver) bezeichnet in diesem Fall eine XML-Dokumenttyp-Deklaration (DTD), die das erforderliche Vokabular für diesen bestimmten Anwendungsfall zur Verfügung stellt.

Status dieses Dokuments

Dieser Abschnitt beschreibt den Status dieses Dokuments zur Zeit seiner Veröffentlichung. Andere Dokumente können dieses Dokument ablösen. Der aktuelle Status dieser Dokumentserie wird beim W3C gepflegt.

Dieses Dokument ist der zweite öffentliche Working Draft eines XHTML+MathML+SVG-Profils zur Überprüfung durch W3C-Mitglieder oder andere interessierte Gruppen. Dieses Dokument definiert nicht das normative Profil von XHTML + MathML + SVG. Dies ist ein mögliches Profil. Die Veröffentlichung dieses Working Drafts durch das W3C bedeutet keine Billigung durch das W3C, das W3C-Team oder irgendein W3C-Mitglied. Das Dokument ist ein früher Entwurf und kann zu jeder Zeit von anderen Dokumenten aktualisiert, ersetzt oder für veraltet erklärt werden. Es ist nicht angemessen, W3C Working Drafts als Referenzmaterial zu verwenden oder sie anders zu zitieren als "in Arbeit".

Dieses Dokument wurde gemeinsam von der W3C HTML Working Group (nur Mitglieder ) und der SVG Working Group (nur Mitglieder) als Teil der HTML Activity und der Graphics Activity innerhalb der Document Formats Domain erstellt. Eine Liste der aktuellen W3C-Empfehlungen und anderer technischer Dokumente ist zu finden unter http://www.w3.org/TR.

Zur Zeit der Veröffentlichung glaubt die Working Group, dass keine Patentoffenlegungen relevant für diese Spezifikation sind. Die aktuelle Liste der Patentoffenlegungen, die für diese Spezifikation relevant sind, können Sie auf den Patentoffenlegungsseiten von XHTML, MathML und SVG finden.

Kommentare zu diesem Dokument können (in Englisch) an www-html-editor@w3.org (Archiv) gesendet werden. Öffentliche Diskussionen zu diesem Dokument können auf den öffentlichen Mailing-Listen www-html@w3.org (Archiv) oder www-svg@w3.org (Archiv) stattfinden.

Inhaltsverzeichnis


1.  Einleitung

Dieser Bereich ist informativ.

Ein XHTML+MathML+SVG-Profil kombiniert XHTML 1.1 [XHTML11], MathML 2.0 [MathML2] und SVG 1.1 [SVG11] unter Verwendung des XHTML Modularization Framework [XHTMLMOD]. Dieses Profil ermöglicht die Mixtur von XHTML, MathML und SVG im gleichen Dokument mit Hilfe des Mechanismusses für XML-Namensräume [XMLNS] im gleichen Atemzug, wie die Validierung solcher Dokumente mit gemischten Namensräumen. Ein DTD-Treiber für XHTML 1.1 + MathML 2.0 + SVG 1.1 wird in Abschnitt 2.1 gegeben. Die Möglichkeit, die in XML Schema [XMLSchema] beschriebenen Module zu kombinieren, könnte untersucht werden, wenn XML Schemas für XHTML [XHTMLMODSchema] und andere verfügbar und ausgereift sind.

Dieser DTD-Treiber kann vorzugsweise für XHTML-Dokumente verwendet werden, die MathML- und SVG-Fragmente enthalten, aber er kann auch für ein SVG-Dokument verwendet werden, das XHTML- und MathML-Fragmente enthält. Ein SVG-Fragment innerhalb eines XHTML-Dokuments kann andere XHTML- oder MathML-Fragmente enthalten, und dieses XHTML-Fragment kann wieder andere MathML- oder SVG-Fragmente enthalten. Die Tiefe der Verschachtelung unterliegt keiner Beschränkung.

Innerhalb von XHTML sind MathML- und SVG-Fragmente grundsätzlich überall im Dokumentrumpf gestattet. Innerhalb von SVG können XHTML und MathML über das Element foreignObject (SVG 1.1 [SVG11], Abschnitt 23.3) eingebettet werden. Ein Beispieldokument (nur MathML- und SVG-fähige XHTML-Browser) zeigt Eigenschaften von XHTML 1.1 (ruby) und einfache MathML- und SVG-Beispiele und eine Kombination von ihnen, die foreignObject verwendet, im gleichen Dokument. In MathML- und SVG-fähigen XHTML-Browsern würde das gemischte Beispiel wie dieses dargestellt:

Gemischtes XHTML+MathML+SVG-Beispiel

Dieser DTD-Treiber kann auch als Grundlage zur Definition von anderen Profilen verwendet werden, die einiges oder alles von XHTML, MathML und SVG kombinieren. Wie neue Profile mit Hilfe dieses DTD-Treibers definiert werden, wird in Abschnitt 4 erklärt.

2.  XHTML 1.1 + MathML 2.0 + SVG 1.1 Dokumenttyp-Definition

Dieser Abschnitt ist normativ.

Der DTD-Treiber für XHTML 1.1 + MathML 2.0 + SVG 1.1 ist wie folgt verfügbar:

URI für diese Version der DTD:
http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-20020809.dtd
URI für die aktuelle Version der DTD:
http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd

Diese Version der DTD wird beibehalten wie sie ist, während sich die aktuelle Version der DTD mit der Zeit entwickeln wird, z.B. können Errata eingearbeitet und später neue Eigenschaften hinzufügt werden. Benutzer dieses DTD-Treibers sollten sich dieses Unterschieds bewusst sein.

Beachten Sie, dass sich jedes angegebene DTD-Modul ebenfalls mit der Zeit verändern kann. Ein nicht normativer Schnappschuss aller DTD-Module zur Zeit der Veröffentlichung ist als eine abgespeckte DTD wie folgt verfügbar:

URI für diese Version der abgespeckten DTD:
http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat-20020809.dtd
URI für die aktuelle Version der abgespeckten DTD:
http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd

Die "aktuelle Version" der abgespeckten DTD wird auch up-to-date gehalten.

Kommentar des Übersetzers

Der Begriff flattened ist in diesem Zusammenhang mit abgespeckt übersetzt worden. Im XML-Bereich versteht man unter flat bzw. flattened Quelltexte oder DTDs, die einer Untermenge der eigentlichen Grundform entsprechen. Diese Grundform kann in diesem Fall eine vorgegebene SVG-DTD, MathML-DTD oder XHTML-DTD sein, in einem anderen Fall ein strukturreiches Dokument, das auf wesentliche Bestandteile gekürzt wird.

2.1.  DTD-Treiber für XHTML 1.1 + MathML 2.0 + SVG 1.1

Dieser Abschnitt enthält den Treiber für eine Profilimplementation von XHTML 1.1 + MathML 2.0 + SVG 1.1 als eine XML-DTD. Er beruht auf XHTML-Modulimplementationen, definiert in Modularization of XHTML [XHTMLMOD] und in Ruby Annotation [Ruby], die XHTML 1.1 DTD-Implementation, definiert in XHTML 1.1 [XHTML11], MathML DTD-Modulimplementationen, definiert in MathML 2.0 [MathML2] und SVG DTD-Implementationen, definiert in SVG 1.1 [SVG11].

<!-- ....................................................................... -->
<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD  ........................... -->
<!-- URI: http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd
-->

<!-- 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 % XHTML.module  "INCLUDE" >
<!ENTITY % MATHML.module "INCLUDE" >
<!ENTITY % SVG.module    "INCLUDE" >

<![%XHTML.module;[
<!ENTITY % XHTML.version
         "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" >
]]>

<!-- Switches to enable subsets.
-->
<!ENTITY % XHTML.Basic.module "IGNORE" >
<!ENTITY % SVG.Basic.module   "IGNORE" >
<!ENTITY % SVG.Tiny.module    "IGNORE" >

<!-- Use the following entities to identify the namespaces:
-->
<!ENTITY % XHTML.xmlns       "http://www.w3.org/1999/xhtml" >
<!ENTITY % MATHML.xmlns      "http://www.w3.org/1998/Math/MathML" >
<!ENTITY % MATHML.pref.xmlns "http://www.w3.org/2002/Math/preference" >
<!ENTITY % SVG.xmlns         "http://www.w3.org/2000/svg" >
<!ENTITY % XLINK.xmlns       "http://www.w3.org/1999/xlink" >

<!-- Declare base URIs for the relevant DTD modules.
-->
<![%XHTML.module;[
<!ENTITY % XHTML.sysid.base
         "http://www.w3.org/TR/xhtml-modularization/DTD/" >
]]>
<![%MATHML.module;[
<!ENTITY % MATHML.sysid.base
         "http://www.w3.org/Math/DTD/mathml2/" >
]]>
<![%SVG.module;[
<!ENTITY % SVG.sysid.base
         "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 % XHTML.dtd.fpi
         "-//W3C//DTD XHTML 1.1//EN" >
<!ENTITY % XHTML.dtd.sysid
         "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
]]>
<![%MATHML.module;[
<!ENTITY % MATHML.dtd.sysid
         "%MATHML.sysid.base;mathml2.dtd" >
<!ENTITY % MATHML.qname.sysid
         "%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 % SVG.dtd.fpi
         "-//W3C//DTD SVG 1.1//EN" >
<!ENTITY % SVG.dtd.sysid
         "%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 % XHTML.prefixed       "IGNORE" >
<!ENTITY % MATHML.prefixed      "IGNORE" >
<!ENTITY % MATHML.prefix        "m" >
<!ENTITY % MATHML.pref.prefixed "IGNORE" >
<!ENTITY % MATHML.pref.prefix   "pref" >
<!ENTITY % SVG.prefixed         "INCLUDE" >
<!ENTITY % SVG.prefix           "svg" >
<!ENTITY % XLINK.prefix         "xlink" >

<!-- a URI reference, see [URI] -->
<!ENTITY % URI.datatype "CDATA" >

<!-- Declare a parameter entity %XLINK.xmlns.attrib; containing
     the XML Namespace declarations for XLink.
-->
<!ENTITY % XLINK.xmlns.attrib
    "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 % MATHML.pref.renderer.extra "">
<!ENTITY % MATHML.pref.renderer
    "css | mathplayer-dl | mathplayer | techexplorer-plugin | techexplorer">
<!ENTITY % MATHML.pref.xmlns.attrib
    "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 % SVG.xmlns.extra.attrib "" >
<!ENTITY % XHTML.xmlns.extra.attrib "" >

<!-- Declare parameter entities to define XML Namespace declarations
     for SVG, XHTML and MathML.
-->
<![%SVG.module;[
<![%SVG.prefixed;[
<!ENTITY % SVG.xmlns.decl.attrib
    "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 % XHTML.xmlns.decl.attrib
    "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 % MATHML.xmlns.decl.attrib
    "xmlns %URI.datatype; #FIXED '%MATHML.xmlns;'"
>
]]>
<!ENTITY % MATHML.xmlns.decl.attrib "" >

<!-- Declare common case for %NS.decl.attrib;.
-->
<!ENTITY % NS.common.decl.attrib
    "%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 % NS.decl.attrib
    "%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 % SVG.xmlns.attrib
    "%NS.decl.attrib;"
>
]]>

<![%XHTML.module;[
<!ENTITY % XHTML.xmlns.attrib
    "%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 % MATHML.xmlns.extra.attrib
    "%XLINK.xmlns.attrib;
     %MATHML.pref.xmlns.attrib;"
>
]]>

<!-- Framework Redeclaration placeholders  ....................... -->

<![%XHTML.module;[
<!ENTITY % XHTML.redecl.module "INCLUDE" >
<![%XHTML.redecl.module;[
<!-- Pre-Framework Redeclaration placeholder  .................... -->
<!ENTITY % xhtml-prefw-redecl.mod "" >

<!-- Post-Framework Redeclaration placeholder  ................... -->
<!ENTITY % xhtml-postfw-redecl.mod "" >
]]>
]]>

<![%SVG.module;[
<!ENTITY % SVG.redecl.module "INCLUDE" >
<![%SVG.redecl.module;[
<!-- Pre-Framework Redeclaration placeholder ..................... -->
<!ENTITY % svg-prefw-redecl.mod "" >

<!-- Post-Framework Redeclaration placeholder .................... -->
<!ENTITY % svg-postfw-redecl.mod "" >
]]>
]]>

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

<!-- Declare MathML Qualified Names module as an extension of
     XHTML's Qualified Names module.
-->
<![%MATHML.module;[
<!ENTITY % xhtml-qname-extra.decl
    'PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN"
            "%MATHML.qname.sysid;"'
>
<!ENTITY % xhtml-qname-extra.mod
    %xhtml-qname-extra.decl;
>
]]>

<!-- Declare location of math and svg contents in XHTML.
-->

<![%MATHML.module;[
<![%MATHML.prefixed;[
<!ENTITY % MATHML.pfx        "%MATHML.prefix;:" >
]]>
<!ENTITY % MATHML.pfx        "" >
<!ENTITY % math.qname        "%MATHML.pfx;math" >
<!ENTITY % MATHML.math.class "| %math.qname;" >
]]>
<!ENTITY % MATHML.math.class "" >

<![%SVG.module;[
<![%SVG.prefixed;[
<!ENTITY % SVG.pfx           "%SVG.prefix;:" >
]]>
<!ENTITY % SVG.pfx           "" >
<!ENTITY % SVG.svg.qname     "%SVG.pfx;svg" >
<!ENTITY % SVG.svg.class     "| %SVG.svg.qname;" >
]]>
<!ENTITY % SVG.svg.class     "" >

<![%XHTML.module;[
<![%XHTML.Basic.module;[
<!ENTITY % Misc.class
    "%MATHML.math.class; %SVG.svg.class;" >
]]>
<!ENTITY % Misc.extra
    "%MATHML.math.class; %SVG.svg.class;" >
]]>

<!-- Redeclare SVG's foreignObject content (allow anything).
-->
<![%SVG.module;[
<!ENTITY % SVG.foreignObject.content "ANY" >
]]>

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

<!-- Instantiate SVG DTD  ........................................ -->
<![%SVG.module;[
<!ENTITY % SVG.dtd.decl
    'PUBLIC "%SVG.dtd.fpi;"
            "%SVG.dtd.sysid;"'
>
<!ENTITY % SVG.dtd %SVG.dtd.decl; >
%SVG.dtd;
]]>

<!-- Instantiate XHTML DTD  ...................................... -->
<![%XHTML.module;[
<!ENTITY % XHTML.dtd.decl
    'PUBLIC "%XHTML.dtd.fpi;"
            "%XHTML.dtd.sysid;"'
>
<!ENTITY % XHTML.dtd %XHTML.dtd.decl; >
%XHTML.dtd;
]]>

<!-- instantiate MathML 2.0 DTD  ................................. -->
<![%MATHML.module;[
<!ENTITY % MATHML.dtd.decl
    'PUBLIC "-//W3C//DTD MathML 2.0//EN"
            "%MATHML.dtd.sysid;"'
>
<!ENTITY % MATHML.dtd %MATHML.dtd.decl; >
%MATHML.dtd;
]]>

<!-- end of xhtml-math-svg.dtd -->

3.  Wie die DTD für XHTML 1.1 + MathML 2.0 + SVG 1.1 zu verwenden ist

Dieser Abschnitt ist informativ.

Wie im DTD-Treiber oben beschrieben, sind einige Parameter-Entities darauf ausgelegt, die Namensraum-Präfixe ein- und auszuschalten und Namensraumpräfixe willkürlich zu verändern. Die voreingestellten Werte sind die folgenden:

<!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" >
%XHTML.prefixed;, %MATHML.prefixed;, %SVG.prefixed;

Diese Parameter-Entities bestimmen das Ein- und Ausschalten der Namensraum-Präfixvergabe. Setzen des Werts auf 'INCLUDE' schaltet die Namensraum-Präfixvergabe an und 'IGNORE' schaltet die Namensraum-Präfixvergabe aus. Laut Voreinstellung werden bei XHTML und MathML keine Präfixe gesetzt und SVG wird 'svg:' vorangestellt.

Betrachten Sie ebenfalls die Beschränkungen bei Namenskollisionen.

%XHTML.prefix;, %MATHML.prefix;, %SVG.prefix;, %XLINK.prefix;

Diese Parameter-Entities setzen Namensraum-Präfixe für relevante Vokabeln. Diese Werte werden nur berücksichtigt, wenn die diesbezügliche Präfixvergabe eingeschaltet ist. Das gleiche Präfix sollte nicht in verschiedenen Vokabularen verwendet werden. Beachten Sie, dass XLink-Attribute immer mit Präfix versehen werden müssen, so darf der Wert von %XLINK.prefix; keine leere Zeichenkette sein.

Es gibt ebenso Parameter-Entities, die System Identifier für die relevanten DTD-Module wie folgt definieren:

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

Wenn notwendig, können diese Parameter-Entities überschrieben werden, um auf lokale Kopien dieser DTD-Module zu zeigen, zum Beispiel zur Offline-Bearbeitung. Autoren sollten diese Parameter-Entities nicht überschreiben, wenn sie den Inhalt weitergeben.

3.1.  XHTML als Wirtsprache

Möchten Autoren XHTML als Wirtsprache nutzen, könnte der DTD-Treiber typischerweise wie folgt aufgerufen werden:

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

Wenn notwendig, können Autoren die Parameter-Entities oben wie erforderlich im internen DTD-Subset ändern. Ein typisches Dokument könnte ungefähr so aussehen:

<?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>
    ... XHTML content ...
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      ... MathML content ...
    </math>
    ... XHTML content ...
    <svg:svg version="1.1"
      xmlns:svg="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink">
      ... SVG content ...
      <svg:switch>
        <svg:foreignObject ...>
          <p>
            ... XHTML content ...
            <math xmlns="http://www.w3.org/1998/Math/MathML">
              ... MathML content ...
            </math>
            ... XHTML content ...
          </p>
        </svg:foreignObject>
      </svg:switch>
    </svg:svg>
  </body>
</html>

Ist MathML nicht mit einem Präfix versehen, muss der MathML-Namensraum immer im math-Element deklariert werden, um eine Verwechslung mit der Namensraumvoreinstellung in XHTML zu vermeiden.

3.2.  SVG als Wirtsprache

Möchten Autoren SVG als Wirtsprache verwenden, könnte der DTD-Treiber wie folgt aufgerufen werden:

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

In diesem Fall werden SVG-Elemente immer noch mit Präfixen versehen und XHTML- und MathML-Elementen werden keine Präfixe vorangestellt. Um SVG-Elemente nicht mit Präfixen notieren zu müssen, können Autoren die relevanten Parameter-Entities im internen DTD-Subset wie folgt angeben:

<?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>
  ... SVG content ...
  <switch>
    <foreignObject ...>
      <xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
        ... XHTML content ...
        <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
          ... MathML content ...
        </math:math>
        ... XHTML content ...
      </xhtml:p>
    </foreignObject>
  </switch>
  ... SVG content ...
</svg>

Beachten Sie, dass die Namensraum-Deklarationen gemeinsam im Wurzel-Element deklariert werden können (oder anderen Elementen), zum Beispiel:

<?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>
  ... SVG content ...
  <switch>
    <foreignObject ...>
      <xhtml:p>
        ... XHTML content ...
        <math:math>
          ... MathML content ...
        </math:math>
        ... XHTML content ...
      </xhtml:p> 
   </foreignObject>
  </switch>
  ... SVG content ...
</svg>

3.3.   MathML mit dem Universellen MathML-Stylesheet verwenden

Wenn Autoren MathML verwenden, möchten Sie eventuell das Universelle MathML-Stylesheet [MathML-XSL] verwenden, um die Darstellung auf zahlreichen Web-Browsern zu ermöglichen. Dieser DTD-Treiber gestattet Autoren, dieses XSLT-Stylesheet einfach zu verwenden. Der DTD-Treiber schließt die folgenden Parameter-Entities ein:

<!ENTITY % MATHML.pref.prefixed "IGNORE" >
<!ENTITY % MATHML.pref.prefix   "pref" >

Autoren können eine XML-Stylesheet-Verarbeitungsanweisung für das Universelle MathML-Stylesheet einschließen wie in Mathematik mit MathML ins Web befördern [MathML-XSL] beschrieben, und wenn sie Einstellungen für das MathML-Darstellungsprogramm angeben, können sie das Parameter-Entity %MATHML.pref.prefixed; auf INCLUDE setzen. Dies gestattet Autoren, den MathML-Preference-Namensraum zu deklarieren und das Attribut renderer wie folgt zu verwenden:

<?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>

Das Namensraum-Präfix für den MathML-Preference-Namensraum kann durch Umdeklarieren des Parameter-Entities %MATHML.pref.prefix; im internen DTD-Subset verändert werden.

4.  Wie neue Profile auf Grundlage der DTD XHTML 1.1 + MathML 2.0 + SVG 1.1 definiert werden

Dieser Abschnitt ist informativ.

Dieser DTD-Treiber kann auch als Grundlage für die Definition anderer Profile verwendet werden, die einiges oder alles von XHTML, MathML und SVG kombinieren. Dieser DTD-Treiber hat Schalter, um jedes Vokabular einzuschließen bzw. zu ignorieren, Voreinstellung ist für alle "INCLUDE":

<!ENTITY % XHTML.module  "INCLUDE" >
<!ENTITY % MATHML.module "INCLUDE" >
<!ENTITY % SVG.module    "INCLUDE" >

Zum Beispiel kann dieser DTD-Treiber durch Umdeklarierung des Parameter-Entities %MATHML.module; auf "IGNORE" als eine DTD für XHTML 1.1 + SVG 1.1 verwendet werden.

Autoren möchten vielleicht andere Dokumenttypen der XHTML-Familie verwenden, wie zum Beispiel XHTML Basic [XHTMLBasic] anstelle von XHTML 1.1, oder andere SVG-Profile wie SVG Basic/Tiny [SVGMobile] anstatt des gesamten SVG 1.1. Es gibt vordefinierte Parameter-Entities, um diese Untermengen einfach zu gestatten, alle sind laut Voreinstellung auf IGNORE gesetzt:

<!ENTITY % XHTML.Basic.module "IGNORE" >
<!ENTITY % SVG.Basic.module   "IGNORE" >
<!ENTITY % SVG.Tiny.module    "IGNORE" >

Durch Umdeklarierung des Parameter-Entities %XHTML.Basic.module; auf INCLUDE, verwendet dieser DTD-Treiber XHTML Basic anstelle von XHTML 1.1 für den XHTML-Teil. Gleichermaßen steuern %SVG.Basic.module; und %SVG.Tiny.module;, ob SVG Basic bzw. Tiny anstelle von SVG 1.1 verwendet wird. Sind %SVG.Basic.module; und %SVG.Tiny.module; auf INCLUDE gesetzt, wird SVG Tiny verwendet.

Unter Verwendung dieses Mechanismusses kann die DTD XHTML Basic + SVG Tiny einfach wie folgt geschrieben werden:

<!-- ....................................................................... -->
<!-- XHTML Basic plus SVG Tiny DTD  ........................................ -->
<!-- URI: http://www.w3.org/2002/04/xhtml-math-svg/xhtml-basic-svg-tiny.dtd
-->

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

Zusätzlich wird jede DTD als %XHTML.dtd;, %MATHML.dtd; und %SVG.dtd; parametrisiert. So können verschiedene Profile einfach durch Umdeklarierung der relevanten Parameter-Entities, die sich auf eine andere DTD beziehen, definiert werden.

5.  Bekannte Beschränkungen

Dieser Abschnitt ist informativ.

Auch wenn dieser DTD-Treiber einen großen Schritt gemacht hat, um so viel Flexibilität wie möglich zu gewähren, gibt es einige Beschränkungen, vorwiegend durch die Beschränkungen des DTD-Mechanismusses selbst.

Quellen

Normative Quellen

[MathML2]
Mathematical Markup Language (MathML) Version 2.0, W3C-Empfehlung

D. Carlisle, P. Ion, R. Miner, N. Poppelier, Editoren, 21. Februar 2001

Verfügbar unter: http://www.w3.org/TR/2001/REC-MathML2-20010221

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/MathML2

[Ruby]
Ruby Annotation, W3C-Empfehlung

M. Sawicki, M. Suignard, M. Ishikawa, M. Dürst, T. Texin, Editoren, 31. Mai 2001.

Verfügbar unter: http://www.w3.org/TR/2001/REC-ruby-20010531

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/ruby

[SVG11]
Scalable Vector Graphics (SVG) 1.1 Spezifikation, W3C-Empfehlungskandidat (Candidate Recommendation)

D. Jackson, J. Ferraiolo, J. Fujisawa, Editoren, 30. April 2002, Dokument in Arbeit.

Verfügbar unter: http://www.w3.org/TR/2002/CR-SVG11-20020430/

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/SVG11/

[URI]

Uniform Resource Identifiers (URI): Generic Syntax, RFC 2396, T. Berners-Lee, R. Fielding, L. Masinter, August 1998.

Verfügbar unter: http://www.rfc-editor.org/rfc/rfc2396.txt

[XHTML11]
XHTML™ 1.1 — Module-based XHTML, W3C-Empfehlung

M. Altheim, S. McCarron, Editoren, 31. Mai 2001.

Verfügbar unter: http://www.w3.org/TR/2001/REC-xhtml11-20010531

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/xhtml11

[XHTMLMOD]
Modularization of XHTML™, W3C-Empfehlung

S. P. McCarron und andere, 10. April 2001.

Verfügbar unter: http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/xhtml-modularization

[XMLNS]
"Namespaces in XML", W3C-Empfehlung

T. Bray, D. Hollander, A. Layman, Editoren, 14. Januar 1999. Verfügbar unter: http://www.w3.org/TR/1999/REC-xml-names-19990114

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/REC-xml-names

Informative Quellen

[MathML-XSL]
Putting mathematics on the Web with MathML, W3C Math Working Group, 2002.
[SVGMobile]
Mobile SVG Profiles: SVG Tiny and SVG Basic, W3C-Empfehlungskandidat (Candidate Recommendation)

T. Capin, Editor, 30. April 2002, Dokument in Arbeit.

Verfügbar unter: http://www.w3.org/TR/2002/CR-SVGMobile-20020430/

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/SVGMobile/

[XHTMLBasic]
XHTML™ Basic, W3C-Empfehlung

M. Baker, M. Ishikawa, S. Matsui, P. Stark, T. Wugofski, T. Yamakami, Editoren, 19. Dezember 2000. Verfügbar unter: http://www.w3.org/TR/2000/REC-xhtml-basic-20001219

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/xhtml-basic

[XHTMLMODSchema]
Modularization of XHTML™ in XML Schema, W3C Working Draft

D. Austin, S. P. McCarron, Editoren, 19. Dezember 2001, Dokument in Arbeit.

Verfügbar unter: http://www.w3.org/TR/2001/WD-xhtml-m12n-schema-20011219

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/xhtml-m12n-schema

[XMLSchema]
XML Schema Part 1: Structures, W3C-Empfehlung

H. S. Thompson, D. Beech, M. Maloney, N. Mendelsohn, Editoren, 2. Mai 2001.

Verfügbar unter: http://www.w3.org/TR/2001/REC-xmlschema-1-20010502

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/xmlschema-1

Siehe auch XML Schema Part 2: Datatypes, verfügbar unter: http://www.w3.org/TR/2001/REC-xmlschema-2-20010502

Die aktuelle Version ist verfügbar unter: http://www.w3.org/TR/xmlschema-2

Veränderungen zum vorherigen Working Draft

Dieser Abschnitt ist informativ.

2.1.  DTD-Treiber für XHTML 1.1 + MathML 2.0 + SVG 1.1
Mechanismus hinzugefügt, Untermengen einfach zu gestatten.
%MATHML.sysid.base; geändert, um zu einer aktualisierten MathML 2.0 DTD zu verweisen.
3.1.  XHTML als Wirtsprache
Falsche Namensraumdeklaration für SVG im Beispiel verbessert.
4.  Wie neue Profile auf Grundlage der DTD XHTML 1.1 + MathML 2.0 + SVG 1.1 definiert werden
Erklärung für neuen Untermengen-Mechanismus hinzugefügt und die Beispiel-DTD für XHTML Basic + SVG Tiny aktualisiert, um diesen Mechanismus zu verwenden.
5.  Bekannte Beschränkungen
Mit der Aktualisierung der MathML 2.0-DTD wurde die Beschränkung für XLink-Namensraum-Deklarationen in MathML-Elementen entfernt.
Ein Problem über engere Integration von XHTML/MathML in SVG hinzugefügt

Anerkennungen

Dieser Abschnitt ist informativ.

(Wird noch hinzugefügt.)

Deutsche Übersetzungen der Quellen

XHTML 1.1 (Deutsche Übersetzung)

XHTML Basic (Deutsche Übersetzung)

Namensräume in XML (Deutsche Übersetzung)

XML Schema Teil 0: Einführung (Deutsche Übersetzung)

XML Schema Teil 1: Strukturen (Deutsche Übersetzung)

XML Schema Teil 2: Datentypen (Deutsche Übersetzung)