Jan: optionale MathML Elemente

Beitrag lesen

Hallo Thomas, danke fuer die Antwort!

Bzgl. der DTD: Kann ich denn auf eine DTD verweisen die MathML definiert und so das gewuenschte Ergebnis erzielen? Wenn ja, wie?

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.

Beispiel:

Ausschnitt aus XML:
----------------
<question>
 A question...
 <math title="E=mc^2" xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>E</mi>
  <mo>=</mo>
  <mi>m</mi>
  <msup>
   <mi>c</mi>
   <mn>2</mn>
  </msup>
 </math>
</question>
----------------

Die Ausgabe sollte genau so aussehen:
----------------
 A question...
 <math title="E=mc^2" xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>E</mi>
  <mo>=</mo>
  <mi>m</mi>
  <msup>
   <mi>c</mi>
   <mn>2</mn>
  </msup>
 </math>
----------------

Die Ausgabe sollte NICHT so aussehen:
----------------
 A question...
 E
 =
 m
 c
 2
----------------

Bisher sieht der entsprechende Eintrag in der XSL so aus und liefert natuerlich nicht das erwuenschte Ergebnis:

----------------
<xsl:template match="question">
 <xsl:value-of select="."/>
</xsl:template>
----------------

Wie kann ich die gewuenschte Ausgabe erreichen?

vielen Dank,

jan

Hallo,

ich habe eine DTD und eine beispielhafte XML fuer einen Multiplechoice-Test geschrieben. Ich wuerde gerne definieren, dass jede Frage und jede Antwort optional eine oder mehrere Formeln in MathML enthalten kann. Wie kann ich das in der DTD definieren und wie wuerde die zugehoerige XML aussehen?

Du kannst das DTD gar nicht defineren, denn du müsstest dazu eine koplette MathML-DTD in deine einbauen. Auch ein <!ELEMENT mathmlcontainer ANY> hilft, nicht, denn deren Inhaltselemente muss du trotzdem noch immer definieren.

Eine XML-Schema würde sich für deine Zwecke eher anbieten, aber wenn dir Wohlgeformtheit (statt Validierung) auch genügt, kannst du auf die DTD verzichten.

Grüße
Thomas