copyright (c)2003-2005   useGroup
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
copyright (c)2003-2005   useGroup