Unterstützung komplexer Generierungsprozesse mittels XML-Technologie
- Art: Diplomarbeit
- Autor: Markus Wurm
- Abgabedatum: Oktober 2001
- Umfang: 104 Seiten
- Dateigröße: 1,1 MB
- Note: 1,0
- Institution / Hochschule: Johannes Kepler Universität Linz Österreich
- ISBN (eBook): 978-3-8324-4704-5
-
ISBN (Paperback) :
978-3-8324-4704-5 P - ISBN (CD) :978-3-8324-4704-5 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Wurm, Markus Oktober 2001: Unterstützung komplexer Generierungsprozesse mittels XML-Technologie, Hamburg: Diplomica Verlag
- Schlagworte: XSLT, ANT, Java, XML, Dokumentengenerierung
In den Warenkorb
58,00 €
Diplomarbeit von Markus Wurm
Zusammenfassung:
Diese Diplomarbeit behandelt die Unterstützung von großen Dokumentengenerierungsprozessen mittels der neuen W3C-Technologien (XML, XSLT, XML-Schema, ...). Aufbauend auf diesen Standards wird ein Framework zur Verfügung gestellt, welches es erlaubt, komplexe Generierungsprozesse zu steuern und erzeugte Logging Information zu verarbeiten. Sowohl die verwendeten Standards als auch die verwendete Technologie werden ausführlich vorgestellt. Das angesprochene Framework basiert auf dem Document Object Model Standard des W3Cs und erlaubt die Verwendung von auf XML basierenden Technologien (z.B. XSLT) ohne XML als Zwischenergebnis zu serialisieren. Diese Neuerung ermöglicht ein schnelleres und einfacheres Generieren von Zieldokumenten. Zur Konfiguration des Generierungsprozesses werden ebenfalls XML Dateien verwendet, wodurch es möglich ist, einen beliebig komplexen Prozess zu steuern.
Abstract:
The subject of this diploma thesis is large document generating processes, which are supported by the new W3C-technologies such as XML, XSLT and XML-Schema. Based on these standards a framework is provided, which enables controlling of the process and processing the logging information of the process. The used standards and technologies are also described. The aforementioned framework is based on the Document Object Model standard of the W3C, and enables the usage of XML-technologies like XSLT without serializing to XML as an intermediate repository. This new kind of generating method enables a faster and easier way to generate the destination documents. The configuration of the process is also in XML, which allows the controlling of processes of any size.
Inhaltsverzeichnis:
| INHALTSVERZEICHNIS | 2 | |
| ABKÜRZUNGSVERZEICHNIS | 7 | |
| 1. | ZIEL DER DIPLOMARBEIT | 8 |
| 1.1 | Dokumentengenerierung allgemein | 8 |
| 1.2 | Klassische Vorgehensweise bei der Dokumenten-generierung | 9 |
| 1.2.1 | Generierungsprozess | 9 |
| 1.2.2 | Probleme | 10 |
| 1.3 | Dokumentengenerierung mit W3C-Standard-Technologien | 11 |
| 1.3.1 | Vorgehensweise | 11 |
| 1.3.2 | Probleme | 12 |
| 1.4 | Anforderungen an eine Lösung | 13 |
| 2. | RELEVANTE STANDARDS | 14 |
| 2.1 | Überblick und Einführung | 14 |
| 2.1.1 | Entstehung der Dokumentenstandards | 14 |
| 2.1.2 | Der W3C Standardisierungsprozess | 16 |
| 2.1.3 | Überblick über die relevanten Standards | 18 |
| 2.2 | XML | 19 |
| 2.2.1 | Allgemein | 19 |
| 2.2.2 | Zeichensatz | 19 |
| 2.2.3 | Aufbau eines XML-Dokumentes | 20 |
| 2.2.4 | Kommentare | 21 |
| 2.2.5 | Processing Intructions (PIs) | 21 |
| 2.2.6 | Elemente und Attribute | 21 |
| 2.2.7 | CDATA | 22 |
| 2.2.8 | XML Deklaration und Dokumententyp Deklaration | 22 |
| 2.2.9 | Entity Deklaration und Referenzierung | 22 |
| 2.2.10 | XML Beispiele | 23 |
| 2.3 | DOM | 25 |
| 2.3.1 | Überblick | 25 |
| 2.3.2 | DOM Core | 26 |
| 2.3.3 | DOM XML (Extended Core) | 28 |
| 2.3.4 | DOM HTML | 28 |
| 2.3.5 | DOM Views | 28 |
| 2.3.6 | DOM Events | 29 |
| 2.3.7 | DOM Traversal | 29 |
| 2.3.8 | DOM Range | 31 |
| 2.4 | DTD | 32 |
| 2.4.1 | Elementendeklaration | 33 |
| 2.4.2 | Attributdeklaration | 33 |
| 2.4.3 | IDs und IDREFs | 35 |
| 2.4.4 | ENTITY und ENTITIES | 35 |
| 2.4.5 | NMTOKEN | 36 |
| 2.4.6 | NOTATION | 36 |
| 2.4.7 | Enumerationen | 37 |
| 2.5 | Namespaces | 37 |
| 2.5.1 | Definition | 38 |
| 2.5.2 | Scopes | 38 |
| 2.6 | XPath | 39 |
| 2.6.1 | Pfadausdrücke | 40 |
| 2.6.2 | Logische, numerische und Zeichenausdrücke | 41 |
| 2.6.3 | Funktionen | 41 |
| 2.7 | XML-Schema | 42 |
| 2.7.1 | Vorteile von XML-Schemas gegenüber DTDs | 42 |
| 2.7.2 | Deklaration des Schemas | 42 |
| 2.7.3 | Simple Datentypen | 43 |
| 2.7.4 | Vordefinierte XML-Schema Daten-Typen | 43 |
| 2.7.5 | Komplexe Datentypen | 45 |
| 2.7.6 | Element und Attributdeklaration | 46 |
| 2.7.7 | Vererbung | 47 |
| 2.7.8 | Eindeutigkeit und Referenzen im Dokument | 47 |
| 2.7.9 | Verarbeitbarkeit und Darstellung | 48 |
| 2.8 | XSL(T) | 50 |
| 2.8.1 | Allgemein | 50 |
| 2.8.2 | Der Transformationsprozess | 51 |
| 2.8.3 | XSLT Elemente (Befehle) | 53 |
| 2.8.4 | Abarbeitung von mehreren Stylesheets | 57 |
| 2.8.5 | Die Zukunft von XSLT | 58 |
| 3. | ENTWICKLUNGSUMGEBUNG | 59 |
| 3.1 | Überblick | 59 |
| 3.2 | Wahl der Programmiersprache | 59 |
| 3.3 | Standard APIs für den Parse- und Transformations-prozess | 59 |
| 3.3.1 | JAXP (Java API for XML Processing) | 59 |
| 3.3.2 | TrAX (Transformation API for XML) | 61 |
| 3.4 | XML Parser | 61 |
| 3.4.1 | SAX Parser | 61 |
| 3.4.2 | DOM Parser | 62 |
| 3.4.3 | Xerces | 63 |
| 3.5 | XSLT-Prozessor | 64 |
| 3.5.1 | Allgemein | 64 |
| 3.5.2 | Xalan | 64 |
| 3.5.3 | MSXML3 | 65 |
| 3.6 | XML IDEs | 65 |
| 3.7 | Jakarta Komponenten | 67 |
| 3.7.1 | Jakarta allgemein | 67 |
| 3.7.2 | log4j | 68 |
| 3.7.3 | ANT | 68 |
| 3.8 | .net als Alternative? | 70 |
| 4. | REALISIERUNG EINES DOM FRAMEWORKS ZUR DOKUMENTENGENERIERUNG | 72 |
| 4.1 | Architektur | 72 |
| 4.1.1 | Logische Struktur und Funktionsweise | 72 |
| 4.1.2 | Physische Struktur (Implementierung) | 74 |
| 4.1.3 | Globale Konfiguration | 77 |
| 4.1.4 | Logging und Errorhandling | 79 |
| 4.1.5 | Aufruf mittels Batch-Konfigurationsdatei | 81 |
| 4.2 | Standardapplikationen | 82 |
| 4.2.1 | Standard-Loader | 83 |
| Standard Transformer | 83 | |
| 4.2.2 | Standard Receiver | 83 |
| 4.3 | Verwendung der Implementierung | 83 |
| 4.4 | Erweiterung | 85 |
| 4.5 | Statusbewertung | 86 |
| 4.5.1 | Bewertung im Vergleich mit den Anforderungen | 86 |
| 4.5.2 | Mögliche Weiterentwicklung | 87 |
| 5. | VERWENDUNG DER LÖSUNG IN EINEM BEISPIEL | 89 |
| 5.1 | Aufgabenstellung | 89 |
| 5.2 | Datenquelle | 89 |
| 5.3 | Implementierung | 90 |
| 5.3.1 | Implementierung eines neuen DOMLoaders | 90 |
| 5.3.2 | Erstellen eines HTML Dokumentes mittels XSLT | 93 |
| 5.4 | Verwendung der Implementierung | 94 |
| 5.5 | Beurteilung des Resultates | 95 |
| 6. | LITERATURVERZEICHNIS | 96 |
| 7. | ABBILDUNGSVERZEICHNIS | 98 |
| LEBENSLAUF | 99 | |
| EIDESSTATTLICHE ERKLÄRUNG | 100 |
Grundsätzlich ist zu sagen, dass XML sowohl von der Programmiersprache als auch vom Betriebssystem unabhängig verwendet werden kann. Es gibt jedoch Unterschiede, wie stark das Arbeiten mit XML von den einzelnen Programmiersprachen unterstützt wird. Für die Implementierung im Rahmen dieser Diplomarbeit wurde Java gewählt, da sie zum einen vom Betriebssystem unabhängig ist und damit nicht die Charakteristik von XML einschränkt und zum anderen die XML-Unterstützung schon sehr hoch ist. Die Unterstützung besteht nicht nur im Bereich der Bearbeitung von XMLDokumenten(JAXP) sondern auch in der Serialisierung von Java-Beans als XML, in einem einheitlichen Interface für das Versenden von XML Dateien und in vielem mehr. Als beste Alternative ist wohl C# zu nennen, bzw. eine beliebige Programmiersprache die es ermöglicht die Bibliotheken des .net Frameworks zu verwenden. [...]
Es ist möglich mehrere Stylesheets zu verwenden. Dies erfordert jedoch Wissen darüber, welches Template in welchem Stylesheet bei einem mehrmaligen Vorkommen tatsächlich aufgerufen wird. Importiert man in einem Stylesheet A einen Stylesheet B, welcher das selbe Template enthält, so ist zu klären welches Template ausgeführt wird. Wenn der Stylesheet B mittels <xsl:include> importiert wird so haben die Templates in A und B den gleiche Ausführungslevel, was zu einer Fehlermeldung des XSLT Prozessors führt. Manche XSLT Prozessoren führen in diesem Fall das zuletzt vorkommende Template aus und geben eine Warnung aus. <xsl:include> entspricht einer Textersetzung. Dies bedeutet, es wird an der Stelle des <xsl:include> Elementes der referenzierte Stylesheet eingefügt. Importiert man jedoch einen zweiten Stylesheet mitels <xsl:import>, so werden nur Templates verwendet, die im aufrufenden Stylesheet nicht vorkommen. Der importierende Stylesheet hat eine höheren Ausführungslevel und überschreibt somit die Templates des importierten Stylesheets. - 57 - [...]
Beschreibung aufgelistet. Für eine exakte Beschreibung sollte man dann jedoch die XSLT - Recommendation heranziehen. Es wird nicht auf die exakte Syntax eingegangen sondern es werden nur die Aufgaben des jeweiligen Befehls beschrieben. • <xsl: apply-import/> Mit diesem Befehl kann man einen anderen Stylesheet laden, wobei nur Templates Regeln geladen werden, die im aufrufenden Stylesheet nicht definiert werden. Dies kann man sich so vorstellen, dass der aufrufende Stylesheet eine Spezialisierung des aufgerufenen Stylesheets ist und dessen Template Regeln überschreibt. Siehe Kapitel "Abarbeitung von mehreren Stylesheets" • <xsl: apply-templates/> Dieser Befehl erlaubt es, eine Menge von Knoten auszuwählen und Templates, die diese Knoten abarbeiten, zu starten. Man kann dem Template Parameter übergeben und es ist auch möglich eine Sortierung für die ausgewählten Knoten anzugeben. • <xsl: attribute/> Mit diesem Befehl ist es möglich, ein Attribut an das gerade bearbeitete Element des Ergebnisbaumes anzufügen. Dies ist nur möglich, wenn man sich beim Abarbeiten des Ergebnisbaumes gerade bei einem Element befindet, wobei bei diesem Element noch keine anderen Subknoten als Attribute angefügt worden sein dürfen (z.B. keine Textknoten). - 53 - [...]
In den Warenkorb
58,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832447045
Arbeit zitieren:
Wurm, Markus Oktober 2001: Unterstützung komplexer Generierungsprozesse mittels XML-Technologie, Hamburg: Diplomica Verlag
Schlagworte:
XSLT, ANT, Java, XML, Dokumentengenerierung



