Erweitern von DocBook mit MathML

(Auszug aus "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" von Thomas Schraitle)

MathML ist die Mathematical Markup Language und dient zum Auszeichnen von mathematischen Formeln. In DocBook 5 ist MathML durch das Muster db._any.mml vorbereitet, das als "Einstiegspunkt" dient. Überschreiben Sie dieses mit den Elementen von MathML, stehen Ihnen innerhalb von equation und informalequation die Elemente zur Formelauszeichnung zur Verfügung.

Um MathML in DocBook 5 einzufügen, gehen Sie wie folgt vor:

  1. Herunterladen von MathML RELAX NG-Schema
    Laden Sie das MathML RELAX NG-Schema herunter.
  2. Anlegen der Anpassungsdatei
    Erstellen Sie eine Anpassungsdatei (beispielsweise dbmathml.rnc bzw. dbmathml.rng):

    Beispiel: Anpassungsdatei für DocBook mit MathML

<?xml version="1.0" encoding="UTF-8"?> 
<grammar xmlns="http://relaxng.org/ns/structure/1.0"> 
    <include href="docbook.rng"> 
        <define name="db._any.mml"> 
            <externalRef href="mathml2.rng"/> 
        </define> 
        <define name="db._any"> 
            <element> 
                <anyName> 
                    <except> 
                        <nsName ns="http://docbook.org/ns/docbook"/> 
                        <nsName ns="http://www.w3.org/1999/xhtml"/> 
                        <nsName ns="http://www.w3.org/1998/Math/MathML"/> 
                    </except> 
                </anyName> 
                <zeroOrMore> 
                    <choice> 
                        <attribute> 
                            <anyName/> 
                        </attribute> 
                        <text/> 
                        <ref name="db._any"/> 
                    </choice> 
                </zeroOrMore> 
            </element> 
        </define> 
    </include> 
</grammar>
namespace db = "http://docbook.org/ns/docbook" 
namespace mml = "http://www.w3.org/1998/Math/MathML" 
namespace html = "http://www.w3.org/1999/xhtml" 
include "docbook.rnc" { 
  db._any.mml = external "mathml2.rnc" 
  db._any = 
    element * - (db:* | html:* | mml:*) { 
      (attribute * { text } 
       | text 
       | db._any)* 
   } 
}
  1. Verwenden der Anpassungsdatei
    Speichern Sie die Anpassungsdatei dbmathml.rnc bzw. dbmathml.rng im selben Verzeichnis wie Ihre XML-Dateien. Validieren Sie Ihr Dokument mit Hilfe einer der obigen Anpassungsdateien, siehe Validieren mit einer DocBook 5-Anpassungsdatei.

Falls Sie MathML auch in inlineequation erlauben möchten, fügen Sie innerhalb von include den folgenden Code ein:

Beispiel: Zusätzlicher Code für inlineequation

<define name="db.inlineequation.content" combine="choice">
    <ref name="db._any.mml"/>
</define> 
# Kombination durch Auswahl
db.inlineequation.content |= db._any.mml

Weitere Informationen zur MathML-Spezifikation.

  

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema DocBook bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2009 Millin Verlag
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Millin Verlag, Siebengebirgsring 36, 53797 Lohmar, info(at)millin.de