Hallo dedlfix,
Was war mit dem HTML-DTD-zu-Referenz-Tool? Was macht das? Auch XML oder SDML, das man ins Zielformat XSLTen kann?
Jain. Das funktioniert im Moment so:
1. Mittels Trang
werden alle 3 DTDs von XHTML 1.0 zu RelaxNG (in der XML-
Notation) umgewandelt.
2. Mittels eines XSLTs wird das RelaxNG-Schema vereinfacht
(erleichtert die Verarbeitung)
3. Ein weiteres XSLT verarbeitet zeitgleich alle 3 XML-Dateien sowie eine
weitere XML-Datei mit Beschreibungstexten sowie Linkzielen und generiert
das Referenz-HTMl-Dokument.
Als ASCII-Art:
+-------------------+ +-------------------------+ +---------------------+
| xhtml1-strict.dtd | | xhtml1-transisional.dtd | | xhtml1-frameset.dtd |
+-------------------+ +-------------------------+ +---------------------+
| | |
Trang Trang Trang
| | |
v v v
+-------------------+ +-------------------------+ +---------------------+
| xhtml1-strict.rng | | xhtml1-transisional.rng | | xhtml1-frameset.rng |
+-------------------+ +-------------------------+ +---------------------+
| | |
Simplifier-XSL Simplifier-XSL Simplifier-XSL
| | |
v v v
+-------------------+ +-------------------------+ +---------------------+
| xhtml1-strict.xml | | xhtml1-transisional.xml | | xhtml1-frameset.xml |
+-------------------+ +-------------------------+ +---------------------+
| | |
| ___________________/ /
| / /
| | ___________________________________/
| | /
| | | +-----------------------------+
v v v | XML mit Beschreibungstexten |
+---------------------------+ | und Linkzielen in der Doku |
| Generier-XSLT |<--------| |
+---------------------------+ | |
| +-----------------------------+
| ^
v |
+---------------------+ +-----------------------------+
| html-auto-ref.html | | Sammel-XSLT, was Metadaten |
+---------------------+ | aus den einzelnen SDML- |
| Seiten extrahiert und auto- |
| matisch die Herkunft mit |
| vermerkt. |
+-----------------------------+
^
|
+------------------+
| Alle SDML-Seiten |
+------------------+
Die Idee dahinter ist: Man schreibt an der Stelle, wo man z.B. <img> beschreibt ins SDML folgendes rein:
<pageunit name="einbinden">
<index> <!-- das sind die Metadaten -->
<element name="img">
<!-- Summary nur aufgeführt, wenn das Element selbst hier
erklärt wird -->
<summary>Bindet ein Bild ein.</summary>
<!-- Nur die Attribute aufführen, die in diesem Abschnitt
erklärt werden -->
<attribute name="src">Die Quelle des Bildes.</attribute>
</element>
</index>
<heading>Bilder einbinden</heading>
<p>...</p>
</pageunit>
<pageunit name="groesse">
<index>
<element name="img">
<attribute name="width">Die Breite des Bildes in Pixeln.</attribute>
<attribute name="height">Die Höhe des Bildes in Pixeln.</attribute>
</element>
</index>
<heading>Bildgröße angeben</heading>
<p>...</p>
</pageunit>
Das Sammel-XSLT extrahiert dann folgende Informationen:
- Element <img> wird erklärt in Datei irgendwas.xml, Anker #einbinden
Beschreibung: "Bindet ein Bild ein."
- Attribut img.href wird erklärt in Datei irgendwas.xml, Anker #einbinden
Beschreibung: "Die Quelle des Bildes."
- Attribut img.width wird erklärt in Datei irgendwas.xml,Anker #groesse
Beschreibung: "Die Breite des Bildes in Pixeln."
- Attribut img.height wird erklärt in Datei irgendwas.xml,Anker #groesse
Beschreibung: "Die Höhe des Bildes in Pixeln."
Das wird als XML gespeichert und dann zusammen mit den automatisch aus den DTDs generierten Metadaten vom Generier-XSLT zur Referenz verwurstet.
----------------------------------------------------------------------------
Anwendbarkeit aufs Wiki:
Das Generier-XSLT kann man jetzt natürlich auch so umstellen, dass es Wiki-Syntax statt HTML produziert und damit die Referenz im Wiki ebenfalls generieren lassen. Die entsprechende Sammel-Phase muss natürlich stark angepasst werden, weil die Infos jetzt aus dem Wiki extrahiert werden müssen.
Und für beides muss das Format, in dem im Wiki Daten eingegeben werden, stehen: Für die Metadaten für's Sammeln der Infos und für die spätere Ausgabe dann.
Viele Grüße,
Christian
Mein "Weblog" [RSS]
Using XSLT to create JSON output (Saxon-B 9.0 for Java)
»I don't believe you can call yourself a web developer until you've built an app that uses hyperlinks for deletion and have all your data deleted by a search bot.«
-- Kommentar bei TDWTF