Hallo,
Bzgl. der DTD: Kann ich denn auf eine DTD verweisen die MathML definiert und so das gewuenschte Ergebnis erzielen? Wenn ja, wie?
Dass kannst du zwar, aber ... es wird halt ein wenig kopliziert ;-)
Du kannst ein Parameterentity definieren und gleich aufrufen:
<!ENTITY % MathMLElements SYSTEM "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">
%mathml.dtd;
Dann kannst du in deinen Elementen MathML verwenden, z.B.:
<!ELEMENT foo (bla | math)>
oder etwas kopmlizierter, wenn du MathML mal einsetzen, mal nicht einsetzen willst:
<!ENTITY % MathMLElements "INCLUDE">
<![%MathMLElements;[
<!ENTITY % mathml.dtd SYSTEM "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">
%mathml.dtd;
]]>
und ein XML wo du MathML ignorierst.
---------------
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE page SYSTEM "page.dtd" [
<!ENTITY % MathMLElements "IGNORE">
]>
<?xml-stylesheet type="text/xsl" href="page.xsl"?>
<page>
....
---------------
Beachte aber bei all dem, dass dein XML-Parser in der Lage sein muss, externe Entities aufzulösen (die MathML-DTD inkludiert - wahlweise - noch auch eine "mathml2-qname-1.mod" und verschiedene Entity-Dateien).
Du findest dazu auch weitere Infos unter http://www.w3.org/TR/MathML2/appendixa.html und ein konkret Beispiel, wie MathML in XHTML (1.1) eingebunden werden kann: http://www.w3.org/TR/MathML2/appendixa.html
Auch dieses http://www.w3.org/TR/XHTMLplusMathMLplusSVG/ Dokument könnte dich interessieren.
Wie ist es denn mit XSL? Ich habe eine XSL zur Ausgabe von HTML-Code geschrieben. Ich wuerde nun gerne definieren, dass einige Elemente Text und MathML-Elemente gemischt enthalten koennen und die MathML-Elemente bitte nicht ausgefuehrt werden sollen sondern einfach ausgegeben werden sollen.
<xsl:template match="question">
<xsl:value-of select="."/>
</xsl:template>Wie kann ich die gewuenschte Ausgabe erreichen?
<xsl:template match="question">
<xsl:copy-of select="child::node()"/>
</xsl:template>
Grüße
Thomas