Wie funktioniert LearnML?
LearnML ist eine auf XML basierende sogenannte
MarkUp-Sprache. In ihr werden die textlichen Teile von Lehreinheiten
für das LearNet beschrieben um daraus
verschiedene Darstellungsarten zu gewinnen.
Als Zielsprachen dieser Darstellungsarten stehen derzeit folgende
Spachen zur Verfügung:
- HTML 4.01
- XHTML 1.0 inkl. MathML 2.0
- HTML 4.0 m:mit MathPlayer-Plugin für den Microsoft Internet
Explorer (ab Version 5.5)
Weiterhin wird an der Zielsprache PDF gearbeitet, so dass aus
LearnML-Dokumenten direkt PDF-Dateien erzeugt werden können.
Um aus einem LearnML-Dokument ein Dokument in einer beliebigen
Zielsprache zu erhalten benutzen wir eine vom W3-Konsortium
vorgeschlagenen Weg. Mittels der sogennanten Extensivle
Stylesheet Language (XSL) definieren wir wie ein Ausdruck aus
LearnML in einer der Zielsprachen umgesetzt werden soll.
Dazu verwenden wir das im Vorschlag XSL
Transformation vorgestellte Verfahren um mittels eines
XSL-Dokumentes aus einem XML-Dokument eine anderes Dokument zu
erhalten.
Für den eigentlichen Transformationsvorgang benutzen wir dabei
Xalan aus dem XML-Apache-Project. Dabei
handelt es sich um eine freie Implementierung eines
XSL-Transformators.
Hat nun also ein Autor oder eine Autorin ein
LearnML-Dokument geschrieben, so kann er es m:mittels
Xalan in die gewünschte Zielsprache übersetzen.
Dies geschieht zum Beispiel durch den folgenden Aufruf:
C:\LearnML>java org.apache.xalan.xslt.Process
-IN learnml.xml -XSL xsl\lml2html.xsl -OUT learnml.html
-PARAM blockid HowDoesItWork
Dabei wurde voraussgesetzt, dass die Dateien
xalan-dev.jar und xercesImpl.jar aus dem
Unterverzeichnis lib im jeweiligen Classpath
von Java liegen; sowie das wir uns im Hauptverzeichnis
der LearnML-Distribution befinden und vorher mindestens einmal
das Buildsystem durch den folgenden Aufruf gestartet haben:
C:\LearnML>build
Durch diesen Aufruf werden alle notwendigen Dateien vom
ANT-Buildsystem automatisch erzeugt.
Um aus learnet.xml alle Dateien automatisch
generiert zu bekommen, geben sie bitte
C:\LearnML>build buildDemo
ein.
Sie erhalten so im Buildverzeichnis build ihrer
LearnML-Distribution ein Unterverzeichnis
learnet mit allen Transformationen der zur
Zeit unterstützten Zielsprachen.
Wenn sie dich nun einmal die Datei build.xml genauer
angesehen haben oder beim Transformieren der Demo gut
aufgepasst haben, werden sie vielleicht über den Begriff
Translet gestolpert sein.
Bevor das Buildsystem ein Dokument transformiert,
generiert es nämlich sogenannte Translets. Dies sind
kleine Java-Programme die mittels des sogenannten XSLTC-
Compilers aus dem Xalan-Projekt direkt aus den
XSL-Dokumenten erzeugt werden.
Da zum Transformieren in eine Zielsprache Xalan
jedesmal das XSL-Dokument eingelesen und dann
interprätiert muss. Ist die Methode zuerst Java-Programme zu
generieren, die dann selber die Transformation durchführen
insbesondere dann ein grosser Geschwindigkeitsvorteil, wenn man
viele Dokumente transformieren möte.
Aber auch an eine automatische Generierung 'on demand' in eine
gewünschte Zielsprache mittels sogenannter Servlets
kann durch die Verwendung von translets beschleunigt
werden.
An einem solchen Beispiel-Servlet wird zur Zeit gearbeitet.
|