Benutzen Sie die Datei project.bat um aus den XML-Daten, project.xml, documl.xsl und xhtmlxsl.xsl
HTML-Dateien zu gewinnen.
Wenn Sie ein Kapitel anfügen möchten schreiben Sie bitte eine XML-Datei und fügen sie in
project.bat und project.xml (dort an geeigneter Stelle) ins Projekt ein. Lesen Sie ggf. auch
die Dokumentation der entsprechenden Dateien in dieser Datei.
Enthält als Windows-Batch-Datei die Aufrufe von Instant-Saxon die das gesamte Projekt als
HTML ausgeben. Instant Saxon finden Sie unter http://users.iclway.co.uk/mhkay/saxon/.
Mit Änderungen dieser Datei sollte das Projekt auch auf allen anderen Java-Fähigen Plattformen kompilieren
(dann durch Nutzen des "normalen" Saxons). Wenn diese Datei ohne Fehler durchläuft ist
in keiner Datei ein XML-Fehler. Fehler werden oft dreifach ausgegeben, weil aufgrund der Architektur
die Dateien dreifach geparst werden: einmal als "nächste" Datei, dann normal und dann als "vorherige" Datei.
Enthält als Windows-Batch-Datei die Aufrufe von Instant-Saxon die Beispiele nochmal durchkompilieren
und als HTML ausgeben, soweit möglich.
Indiziert alle an der Ausgabe beteiligten XML-Dateien in der Reihenfolge, in der
Sie im Dokumentenbaum vorkommen sollen (weiter oben in project.xml --> weiter oben
im Inhaltsverzeichnis).
Ausserdem wird anhand der IDs, die die gleichen wie in den Artikeln sind, festgestellt,
welche Datei als "vor" oder "zurück"-Link angezeigt werden. Die ID ist nur ein Bidneglied
(und muss in der Artikeldatei die gleiche sein wie in Project.xml), jede Datei verlinkt
automatisch auf die folgende bzw. zuvorkommende Datei in Project.xml
Project soll alle Projektoptionen speichern, so z.b. in setting set online="yes|no"
ob es sich um die online-Version des Dokuments handelt (die z.B. einen download als Zip-Datei
anbietet).
Ein setting für Dateierweiterung: HTML oder XML. Das macht dann Sinn, wenn alle a href-links
durch neue Tags ersetzt wurden die intelligenter entscheiden können, ob ein neues
Fenster geöffnet werden soll. Sie könnten auch entscheiden ob der Browser genug XSLT
versteht um die Rohdaten zu sehen, dafür müsste man dann die in project dann angegebene
Dateierweiterung anhängen.
Enthält die Liste der XHTML-1.1-Tags die ungeändert in die Ausgabe kopiert werden
Matcht jedes XHTML-Tag und übernimmt es in die HTML-Ausgabe. Benutzung einfach durch include.
kopiert es (und dessen Attribute) mit copy-of @* in den Ausgabebaum.
Enthält modelml0.30 (), das dieses Dokument aus seiner XML-Datei erzeugt.
Arbeitsablauf auf der modelml-Seite geklärt, benutzt xhtmlxsl.xsl.
DocuML enthält die Tags die die XML-Dateien in XHTML-Dateien konvertieren.
Bildet das Haupt-Dokument, zeigt HTML, BODY und die STYLES. Schreibt den Artikelnamen und in Klammern den Projektnamen
in Title.
ruft navbar, navfiles auf, wendet zuerst alle Tags außer "s" und dann alle "s"-Tags
an und ruft dann wieder navfiles und navbar auf.
Zeigt einen Link auf useGroup, dann einen Link auf die Indexseite des Dokuments und dann den
Namen des aktuellen Dokuments fettgedruckt an.
wendet keine weiteren Templates an, benutzt //article/@name für den Namen des aktuellen Artikels.
String name
String
Ändert den Dateinamen (in Name) von XML in HTML, falls er vorher XML war. Wird für
das Erzeugen von Links z.B. aus project.xml benötigt.
wenn .xml enthalten ist (test="substring-before('.xml')") wird mit concat und der substring-before-Anweisung
.html an den Dateinamen angehängt.
Zeigt einen Link auf die vorhergehende Seite im Dokumentenbaum, den Titel dieser Seite fettgedruckt,
und einen Link auf die nächste Seite an.
verwendet eine for-each Schleife auf ein einzelnes Dokument
xsl:for-each select="document('project.xml')//file[@id=$tid] an um den aktuellen XSLT-Knoten zu wechseln.
Verwendet dabei die Datei project.xml und darin das File-Tag das exakt dieselbe id wie das aktuelle
Dokument hat.
Verwendet für die vorherige bzw. folgende Seite dann preceding-sibling::file[position()=1]
bzw. following-sibing.
Verwendet um aus den XML-Dateien ggf. (aktuell: IMMER) HTML-Links
zu erzeugen.
String name
String
Ändert den Dateinamen (in Name) von XML in HTML, falls er vorher XML war. Wird für
das Erzeugen von Links z.B. aus project.xml benötigt.
wenn .xml enthalten ist (test="substring-before('.xml')") wird mit concat und der substring-before-Anweisung
.html an den Dateinamen angehängt.
Zeigt die "Headline" des Artikels an, incl. Titelbild, Projektüberschrift und Links zu den einzelnen Abschnitten.
benutzt xsl:for-each select="//s" und a href="#{@a}" xsl:value-of select="@name"/ /a für die
Darstellung der Links.
mit den Attributen name und a
"Section"-Tag, für Abschnitte (automatische Überschrift, Link in und horizontale Trennung
von den anderen Abschnitten).
Definiert automatisch einen neuen Anker der benannt ist wie
in Attribt a angegeben und schreibt die Überschrift aus name. Zeigt einen Link
nach oben (in / definierter Anker top) und, falls nicht der letzte Abschnitt, nach unten
(in / definierter Anker bottom).
Wendet alle Templates an und schreibt den Abschnitt in p-tags.
Schreibt einen Download-Link falls das Dokument online gelesen wird.
Benutzt project.xml/project/settings/set/@online um herauszufinden, ob das Dokument online ist.
Attribut name
Kommt in der XSL-Datei so gar nicht vor
Wird aber ausgewertet: Das Attribut Name wird in der Referenz erwähnt
und verlinkt auf den Abschnitt, in dem es definiert wurde. Es
können mehrere reference-Tags pro Abschnitt deklariert werden.
Es muss daher unterhalb eines Abschnitts definiert werden
(der wiederum direktes Kind von Article sein muss).
Siehe
Zeigt die Referenz des Projekts an - zuerst nach Stichwort geordnet und dann nach Datei, Stichwort.
Kopiert alle s-Tags jedes Dokuments das in project.xml definiert ist, in die Variable nodetree
als Kind zu (in der Variable zu erstellendem) einem file-tag mit dem aktuellen Dateinamen. Es werden
nicht die reference-Tags kopiert
weil man noch das a-attribut der section braucht um genauer zu verlinken. Die Nodetree-Variable
kann dann in einer foreach sortiert (und zwar Dateiunabhängig, mit einer
foreach document('project.xml')//file//reference könnte man nur Dateiabhängig sortieren)
und ausgegeben werden.
Nach Stichwort (zweiter Teil des Templates) geht eben so vor
( xsl:for-each select="$nodetree//file" xsl:sort select="@name"/ xsl:if test="s//reference").
Zeigt das Inhaltsverzeichnis an.
Benutzt xsl:number um die Ausgabe zu nummerieren. Benutzt project.xml um die Dateinamen zu
erfahren und document('dateiname')//article//@name um die Namen der Artikel anzuzeigen.
Zeigt ein Beispiel an.
Gibt pre taginhalt /pre aus.
Zeigt eine Tabelle an - benutzt dafür das XHTML-Tag table, gibt ihr
aber ein eigenständiges Aussehen (DocuML Table).
Gibt table border="0" width="80%" cellspacing="1" cellpadding="3" /table aus und wendet zwischendrin alle Templates an.
Zeigt eine Tabellenzeile an.
Gibt tr /tr aus und wendet zwischendrin alle Templates an.
Zeigt eine Tabellenspalte aus und übernimmt ggf. angegebene colspan und rowspan-Attribute.
Benutzt ein xsl:choose mit xsl:when test=@rowspan bzw @colspan bzw. @rowspan and @colspan
um herauszufinden ob rowspan und/oder colspan angegeben ist.
-Kann man wirklich nicht mit copy-of für die Attribte arbeiten?
-dmlhsep anstelle /dmlcol dmlcol wäre viel kürzer zu schreiben: mit xml wirklich nicht zu vereinbaren?
gleiches gilt für dmlvsep anstelle /dmlcol /dmlrow dmlrow dmlcol
-Aussehen der HTML-Dateien sollte in einer Extradatei geregelt sein
-Anleitung zum Schreiben eigener DocuML-Dokumente