copyright (c)  2003   useGroup

Vorgehen

nach obenVorgehen 

Benutzen Sie die Datei project.bat (unter Windows) oder project.sh (unter Unix), um aus den XML-Daten und documl.xsl und xhtmlxsl.xsl HTML-Dateien zu gewinnen.


project.bat / project.sh

nach obenproject.bat / project.sh 

Enthält die Aufrufe von Saxon, die das gesamte Projekt als HTML ausgeben. Instant Saxon (für Windows) und Saxon (für Unix) finden Sie unter http://users.iclway.co.uk/mhkay/saxon/. (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.


project.xml

nach obenproject.xml 

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 Bindeglied (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).


todo

nach obentodo 

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.


xhtmlxsl.xsl

nach obenxhtmlxsl.xsl 

Enthält die Liste der XHTML-1.1-Tags die ungeändert in die Ausgabe kopiert werden


Templates

nach obenTemplates 

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.


modelml.xsl

nach obenmodelml.xsl 

Enthält modelml0.30 (), das dieses Dokument aus seiner XML-Datei erzeugt. Arbeitsablauf auf der modelml-Seite geklärt, benutzt xhtmlxsl.xsl.


documl.xsl

nach obendocuml.xsl 

DocuML enthält die Tags die die XML-Dateien in XHTML-Dateien konvertieren.


root

nach obenroot 

Bildet das Haupt-Dokument, zeigt HTML, BODY und die STYLES. Schreibt den Artikelnamen und in Klammern den Projektnamen in Title.


navbar

nach obennavbar 

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.


navbar

nach obennavbar 

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.


changeextension

nach obenchangeextension 

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.


navfiles

nach obennavfiles 

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.


changeextension

nach obenchangeextension 

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.


links

nach obenlinks 

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.


s

nach obens 

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.


downloadlink

nach obendownloadlink 

Schreibt einen Download-Link falls das Dokument online gelesen wird. Benutzt project.xml/project/settings/set/@online um herauszufinden, ob das Dokument online ist.


reference

nach obenreference 

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


listref

nach obenlistref 

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").


lisstoc

nach obenlisstoc 

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.


example

nach obenexample 

Zeigt ein Beispiel an. Gibt pre taginhalt /pre aus.


dmltable

nach obendmltable 

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.


dmlrow

nach obendmlrow 

Zeigt eine Tabellenzeile an. Gibt tr /tr aus und wendet zwischendrin alle Templates an.


dmlcol

nach obendmlcol 

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


todo

nach obentodo 

-Aussehen der HTML-Dateien sollte in einer Extradatei geregelt sein -Anleitung zum Schreiben eigener DocuML-Dokumente


copyright (c)  2003   useGroup