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 ÜbersetzersDer 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 DokumentsDieser 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.
1. EinleitungDieser 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:
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-DefinitionDieser Abschnitt ist normativ.
Der DTD-Treiber für XHTML 1.1 + MathML 2.0 + SVG 1.1 ist wie folgt verfügbar:
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:
Die "aktuelle Version" der abgespeckten DTD wird auch up-to-date gehalten.
Kommentar des ÜbersetzersDer 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.1Dieser 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 WirtspracheMö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.
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
setzen. Dies gestattet Autoren, den MathML-Preference-Namensraum zu deklarieren und das Attribut INCLUDE
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.
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
gesetzt:IGNORE
<!ENTITY % XHTML.Basic.module "IGNORE" > <!ENTITY % SVG.Basic.module "IGNORE" > <!ENTITY % SVG.Tiny.module "IGNORE" >
Durch Umdeklarierung des Parameter-Entities %XHTML.Basic.module;
auf
, verwendet dieser DTD-Treiber XHTML Basic anstelle von XHTML 1.1 für den XHTML-Teil. Gleichermaßen steuern INCLUDE
%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
gesetzt, wird SVG Tiny verwendet.INCLUDE
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.
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.
Problem: Zur Zeit sind XHTML und MathML innerhalb von SVG nur durch das Element foreignObject
gestattet. Es würde Sinn ergeben, diese fremden Namensraum-Fragmente auch innerhalb der Elemente desc
und title
zu gestatten. Zukünftige Aktualisierungen dieses Profils könnten solch eine Integration gestatten.
Es ist ebenso in der Diskussion, diese fremden Namensraum-Fragmente direkt innerhalb von Elementen wie text
und tspan
zu gestatten. Solch eine enge Integration würde für mathematische Diagramme nützlich sein, jedoch muss die Verarbeitung geklärt werden.
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 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
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/
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
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
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
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
Putting mathematics on the Web with MathML, W3C Math Working Group, 2002.
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/
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
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
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
Dieser Abschnitt ist informativ.
(Wird noch hinzugefügt.)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3