|
Aktuelle Artikel und Nachrichten rund um die technische Dokumentation finden Sie im Nachfolgemagazin der doculine news, den transline tecNews
XML-Fallbeispiel:
Anwendung von XSLT für AECMA Spec 1000D
Artikel
erschienen in
Ausgabe Mai 2001
Von
Robert
Schnurer und Johannes
Gruber
Inhaltsübersicht:
Die AECMA Spec 1000D, ein SGML-basierender Dokumentationsstandard,
bildet schon seit Jahren die Dokumentationsbasis in nahezu allen
größeren militärischen Projekten.
Seit
sich XML als neuer Standard im Web-Umfeld etabliert, fordern auch
die Anwender von interaktiver elektronischer technischer Dokumentation
(IETD) gemäß AECMA Spec 1000D verstärkt die Nutzung
von Standard-Internetbrowsern bzw. XML-Browsern als Viewing-Software.
In der AECMA Spec 1000D werden hierzu bereits die bestehenden
IETD-Konzepte auf XML-orientierte Web-Konzepte abgebildet.
Da
zur Zeit noch keine "Commercial off the Shelf"-Browser
XML gemäß W3C-Standards in vollem Umfang unterstützen,
wird in diesem Beitrag beispielhaft ein Weg aufgezeigt, wie SGML-basierte
Dokumentation unter Nutzung von XSLT mit Standard-Internetbrowsern
(z.B. Internet Explorer 5.x) auf der Basis von HTML zur Anzeige
gebracht werden kann. Diese Methodik ist zudem offen hinsichtlich
den Entwicklungen der Standard-Browser in Richtung voller XML-Fähigkeit.

XML in Kurzform
Die
Auszeichnungssprache XML
(Extensible Markup Language), die im November 1996 als neuer Standard
im Web-Umfeld vorgestellt wurde, bietet praktisch keinerlei technologische
oder konzeptionelle Neuheiten, sondern ist lediglich ein Abkömmling
der SGML-Sprache und zielgerichtet für den Gebrauch in verteilten
Umgebungen vereinfacht worden. Die XML-Sprache sollte weder die
Einschränkungen von HTML noch die Komplexität von SGML
haben. Beim World Wide Web Consortium (W3C), einer Standardisierungsorganisation
für das Web, wurde daher eine Arbeitsgruppe eingerichtet,
die sich als Aufgabe vornahm, eine vereinfachte Variante von SGML
zu schaffen. Die Lösung war eine echte Untermenge von SGML,
welche die selten genutzten Konstrukte von SGML nicht beinhaltet,
aber gleichzeitig flexibel genug ist, um den unterschiedlichsten
Anforderungen des Webs (wie z.B. Heterogenität und Erweiterbarkeit)
gerecht zu werden.
Da
XML wie auch SGML auf dem Konzept der Trennung des Informationsgehalts
eines Dokuments von seiner Präsentation basieren, wobei mit
Hilfe von frei wählbaren Markierungen (Markups) Struktur
und Daten von Dokumenten beschrieben werden können, müssen
zur Darstellung von XML-Dokumenten so genannte Stylesheets herangezogen
werden. Die hierfür verwendete Extensible Style Language
(XSL) ist inzwischen in zwei Bestandteile aufgespalten: einen
zum Transformieren von XML-Dokumenten (XSLT) und den eigentlich
formatierenden Teil von XSL, dessen Eigenschaften vergleichbar
mit den Cascading Stylesheets (CSS) sind, jedoch weit darüber
hinausgehen. Zum Einrichten von Links, die gegenüber HTML
und SGML erweiterte Möglichkeiten bieten, entsteht der Xlink-
und Xpointer-Standard. Somit versteht man unter XML nicht eine
einzelne Technologie, sondern ein Bündel verschiedener verwandter
Technologien.
Zur
Zeit unterstützen noch keine "Commercial off the Shelf"-Browser
(wie z.B. Microsoft Internet Explorer oder Netscape Navigator)
in vollem Umfang die XML-Sprachfamilie gemäß W3C-Standard.
Dies liegt aber auch darin begründet, dass sie sich zum Teil
noch im W3C Working Draft befinden bzw. noch Änderungen unterliegen.

Die AECMA Spec 1000D
Im
Laufe der Zeit haben sich international standardisierte Dokumentstrukturen
gebildet, u.a. um durch die gegebene Offenheit von SGML einem
Wildwuchs an unterschiedlichen SGML-Anwendungen entgegenzuwirken.
Die AECMA Spec 1000D wurde von der AECMA
(European Association of Aerospace Industries), einer Vereinigung
der europäischen Luft- und Raumfahrtunternehmen, als SGML-basierender
Dokumentationsstandard entwickelt, um für alle Programme
im militärischen Luftfahrtbereich zur Anwendung kommen zu
können. Auf der Basis der AECMA Spec 1000D werden in der
Bundesrepublik Deutschland und im europäischen Raum für
militärische Luftfahrzeuge in zunehmendem Maße Verträge
geschlossen, um die Erstellung, Verwaltung und Nutzung von elektronischer
technischer Dokumentation zu standardisieren. Große europäische
Rüstungsprojekte (z.B. Eurofighter, NH90, Tiger) arbeiten
bereits auf den Grundstandards der AECMA Spec 1000D. Diese Spezifikation
wird ständig weiterentwickelt, um dem rasanten Fortschritt
der IT-Branche Rechnung zu tragen und um weitere Anwendungsgebiete
abzudecken.
Die
AECMA Spec 1000D ist einer der elementaren Standards der europäischen
CALS-Strategie
und ist derzeit für rund 120 Projekte vertraglich vereinbart.
Sie definiert den aufgabenbezogenen und am Geräteaufbruch
orientierten modularen Aufbau der technischen Dokumentation, originär
von Flugzeugen. Zunehmend kommt sie jedoch auch bei anderem Wehrmaterial
zwingend zum Einsatz.
Die
Spezifikation beschreibt unter Nutzung von internationalen Standards
wie SGML und CGM die elektronische technische Dokumentation auf
der Basis von Datenmodulen (DM). Diese Datenmodule sind die kleinsten
Bausteine der technischen Dokumentation und werden durch den Datenmodulcode
(DMC) identifiziert, welcher unter anderem den Geräteaufbruch
und die Art des Informationsinhalts beinhaltet.
Sie
setzen sich zusammen aus:
- einem Identifikationsteil (DMC, Version etc.)
- einem Statusteil (verantwortlicher Auftragnehmer, Anwendbarkeit
etc.) und
- dem Inhaltsteil
Der
Inhaltsteil enthält SGML-Text und SGML-Referenzen auf assoziierte,
nicht strukturierte Inhalte (ASCII-Text, Raster- und Vektorgrafiken
etc.). Die mit SGML strukturierten Textdaten und die unstrukturierten
Daten werden als logische Einheit, als ein Datenmodul betrachtet.
Die AECMA Spec 1000D beschreibt darüber hinaus die Speicherung
und Verwaltung von Datenmodulen in einer Common Source Data Base
(CSDB). Über die CSDB werden dann die Publikationen direkt
an den Anwender für die Nutzung in elektronischen logistischen
Infromationssystemen weitergeleitet und für das jeweilige
Ausgabemedium (Papier, Browser) aufbereitet.

Der IETD-Prozess SGML -> XML -> HTML
Im
Folgenden wird beispielhaft ein Weg aufgezeigt, um SGML-basierte
interaktive elektronische technische Dokumentation (IETD) nach
AECMA Spec 1000D unter Nutzung von XSLT mit Standard-Internetbrowsern
(z.B. Internet Explorer 5.x) auf der Basis von HTML zur Anzeige
zu bringen. Dieser Ansatz ist zudem offen hinsichtlich den Entwicklungen
der Standard-Browser in Richtung voller XML-Fähigkeit.

Der IETD-Prozess SGML -> XML -> HTML
Nachdem
die SGML-Informationseinheiten (Datenmodule) durch technische
Redakteure erstellt worden sind, werden sie vor der Nutzung im
Anwendungssystem (Internetbrowser) in einem Batchbetrieb (z.B.
unter Verwendung des Parsers SX
von James Clark) in XML konvertiert. Die erzeugten XML-Datenmodule
bilden dann in Form einer IETD-Datenbank die Datenbasis für
das Retrieval in der Nutzungsphase.
Dieser
Vorgang ist bei mit AECMA Spec 1000D konformen Dokumenten nicht
sehr aufwendig, da die SGML-Instanzen nahezu XML-konform sind.
Aus diesem Grunde soll im Weiteren auf diese Transformation nicht
näher eingegangen werden.
Die
Konvertierung der XML-Datenmodule in HTML unter Nutzung der Transformationssprache
XSLT erfolgt in dem Augenblick, in welchem innerhalb des Browsers
ein bestimmtes XML-Datenmodul über die eindeutige Datenmodulidentifikation
(Datenmodulcode) angefordert wird. Auch hierzu kann man Commercial
of the Shelf"-Software verwenden, wie z.B. Saxon,
einen XSL-Prozessor, der XSL V 1.0 gemäß W3C-Standard
implementiert hat. Zur Anzeige kommt dann das HTML-Dokument. Durch
die layoutorientierte Transformation der XML-Datenmodule in HTML
und dadurch erzwungene Reduzierung der Struktur auf die HTML-Elemente
entfällt natürlich die syntaktische und semantische
Strukturierungsmöglichkeit der XML-Originaldokumente. Damit
verliert man (ohne Rückgriff auf die XML-Datenmodule) die
in XML gegebenen kontextuellen Suchmöglichkeiten. Die Transformation
selbst soll im folgenden Kapitel anhand von drei Beispielen verdeutlicht
werden.
Bei
Verfügbarkeit von Standard-Browsern, die XML, XSL, XPointer
und XLink gemäß W3C-Standard voll unterstützen,
würde sich der Gesamtprozess, wie in folgender Abbildung
schematisch dargestellt, vereinfachen. In diesem Fall könnte
die Transformation in HTML über XSLT durch eine direkte Verarbeitung
der XML-Sprachfamilie ersetzt werden.

Vereinfachter IETD-Prozess SGML -> XML

Beispiele für die Umsetzung XML -> HTML
Im
Folgenden werden drei Anwendungsbeispiele aus dem Bereich der
AECMA Spec 1000D aufgeführt. Die Beispiele beleuchten den
XSLT-Anteil und sind innerhalb einer kompletten IETD-Anwendung
natürlich nur durch zusätzliche Javascript- und/oder
Servlet-Programmierung lauffähig.
Beispiel 1: Anzeige des Datenmodulcodes <dmc>
Das
folgende Beispiel erläutert die Anzeige der eindeutigen Identifizierung
eines Datenmoduls, des so genannten Datenmodulcodes.
|
XML-Beispieldaten
(relevanter Ausschnitt)
<dmodule>
<idstatus>
<dmaddres>
<dmc>
<avee>
<modelic>1B</modelic>
<sdc>B</sdc>
<chapnum>15</chapnum>
<section>3</section>
<subsect>2</subsect>
<subject>08</subject>
<discode>00</discode>
<discodev>B</discodev>
<incode>125</incode>
<incodev>A</incodev>
<itemloc>A</itemloc>
</avee>
</dmc>
</dmaddres>
</idstatus>
</dmodule>
Gewünschte
Darstellung im Browser

Zugehöriger
HTML-Code
<TABLE>
<TR>
<TD><B>DM-Code:</B></TD>
<TD>1B-B-15-32-08-00B-125A-A</TD>
</TR>
</TABLE>
XSLT-Code
zur Transformation
<!--
finde alle <avee> Elemente im Identifikationsteil
-->
<xsl:template match="dmodule/idstatus/dmadress/dmc/avee">
<!--
schreibe HTML code für Beginn einer Tabelle -->
<!-- schreibe HTML code für Beginn einer Zeile -->
<!-- schreibe HTML code für Beginn der 1. Spalte
-->
<TABLE>
<TR>
<TD>
<!schreibe
den Text DM-Code: in fett in die HTML Ausgabe
-->
<B><xsl:text>DM-Code:</xsl:text></B>
<!-- schreibe HTML code für Ende der 1. Spalte -->
</TD>
<!--
schreibe HTML code für Beginn der 2. Spalte -->
<TD>
<!--
schreibe den Inhalt des <modelic> Elements in den
HTML code -->
<xsl:value-of select="modelic"/>
<!--
schreibe den Text - in den HTML code -->
<xsl:text>-</xsl:text>
<xsl:value-of
select="sdc"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="chapnum"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="section"/>
<xsl:value-of select="subsect"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="subject"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="discode"/>
<xsl:value-of select="discodev"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="incode"/>
<xsl:value-of select="incodev"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="itemloc"/>
</TD>
</TR>
</TABLE>
</xsl:template>
|
Beispiel 2: Aufruf einer Illustration
Das
zweite Beispiel erläutert die Umsetzung des Elements <figure>
mit genau einer Illustration. Dabei soll für jedes <figure>-Element
ein Hyperlink generiert werden, der zur Anzeige der Illustration
(Element <graphic> mit dem Attribut boardno"
zur Aufnahme der Grafik-Entity) führt.
Illustrationen
werden innerhalb der AECMA Spec 1000D durch eine so genannte Illustration
Control Number (ICN) eindeutig identifiziert; die zugehörige
Illustrationsdatei soll in diesem Beispiel im CGM-Format sein
und den Dateinamen ICN-x.cgm haben.
Die
Anzeige der Illustration soll über einen gewöhnlichen
HTML-Hyperlink erfolgen. Um eine CGM-Datei innerhalb des Browsers
anzeigen zu können, ist ein zusätzliches Plugin nötig.
Hier kann zum Beispiel das ActiveX Control ISOVIEW der Firma ITEDO
Software verwendet werden.
|
XML-Beispieldaten
(relevanter Ausschnitt)
<figure>
<title>Air Conditioning System - Schematic Diagram</title>
<graphic boardno="ICN-1B-B-210000-C-0117B-00441-A-01-2"></graphic>
</figure>
Gewünschte Darstellung im Browser

Zugehöriger HTML-Code
<P>
<A HREF="ICN-1B-B-210000-C-0117B-00441-A-01-2.cgm">
Fig.: Air Conditioning System - Schematic Diagram.
(ICN-1B-B-210000-C-0117B-00441-A-01-2)
</A>
</P>
XSLT-Code zur Transformation
<xsl:template
match="figure">
<P>
<!--
defniniere eine XSLT variable mit dem Namen icn -->
<xsl:variable name="icn">
<!--
befülle diese XSLT variable mit dem Inhalt des Attributes
boardno des untergeordneten <graphic> Elements -->
<xsl:value-of select="graphic/@boardno"/>
</xsl:variable>
<!--
schreibe den HTML code für einen Hyperlink auf die
Illustration $icn.tif -->
<A HREF="$icn.cgm">
<xsl:text>Fig.:
</xsl:text>
<xsl:value-of select="title"/>
<xsl:text> (</xsl:text>
<!--
schreibe den Inhalt der icn Variablen in den HTML code -->
<xsl:value-of select="$icn"/>
<xsl:text>)</xsl:text>
</A>
</P>
</xsl:template>
|
Beispiel 3: Umsetzung einer <deflist>
Das
dritte Beispiel zeigt die Umsetzung des Elements <deflist>.
Dieses Element beschreibt eine so genannte Definition List. Sie
besteht immer aus einem Kürzel (<term>) und einer zugehörigen
Definition (<def>). Die beiden Elemente <term> und
<def> können als Tupel beliebig oft hintereinander
vorkommen. In der folgenden Umsetzung sollen diese beiden Elemente
in einer zweispaltigen Tabelle dargestellt werden.
|
XML-Beispieldaten
(relevanter Ausschnitt)
<deflist>
<title>ABBREVIATIONS OF THE AIR CONDITIONING SYSTEM</title>
<term>ACS</term><def>Air Conditioning
System</def>
<term>AC SOV</term><def>Air Conditioning
Shut-off Valve</def>
</deflist>
Gewünschte Darstellung im Browser

Zugehöriger HTML-Code
<P>
<H4>ABBREVIATIONS OF THE AIR CONDITIONING SYSTEM</H4>
<TABLE>
<TR>
<TD>ACS</TD>
<TD>Air Conditioning System</TD>
</TR>
<TR>
<TD>AC SOV</TD>
<TD>Air Conditioning Shut-off Valve</TD>
</TR>
</TABLE>
</P>
XSLT-Code zur Transformation
<xsl:template
match="deflist">
<P>
<!--
teste, ob <title> Element vorhanden -->
<xsl:if test="title">
<H4>
<xsl:value-of select="title"/>
</H4>
</xsl:if>
<TABLE>
<!--
Schleife über alle Elemente <term> -->
<xsl:for-each select="term">
<TR>
<TD>
<xsl:value-of select="."/>
</TD>
<TD>
<!-- schreibe Inhalt des folgenden <def> Elements
in den HTML code -->
<xsl:value-of select="following::def[1]"/>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</P>
</xsl:template>
|

Fazit
Die
klassische papierorientierte Form der technischen Dokumentation
wird auch im Bereich der AECMA Spec 1000D mehr und mehr durch
interaktive elektronische technische Dokumentation abgelöst.
Die von den Anwendern geforderte IETD-Ausrichtung steht dabei
im Zeichen des neuen Web-Standards XML und der Nutzung von "Commercial
off the Shelf"-Software.
Der
dargestellte Ansatz ist an zukünftigen Standard-Internetbrowsern
mit voller XML-Fähigkeit ausgerichtet, erlaubt aber bereits
in der jetzigen Übergangsphase, in der noch HTML-basierende
Browser den Markt bestimmen, die Nutzung der XML-Sprachfamilie
zur webbasierten Anzeige der technischen Dokumentation auf der
Basis HTML. Zur Zeit wird im Rahmen des Eurofighter-Programmes
ein IETD-Nutzungssystem auf dieser Basis erstellt, jedoch ist
der beschriebene Ansatz zur webbasierten Anzeige technischer Dokumentation
nicht nur auf mit AECMA Spec 1000D konforme Dokumentation beschränkt,
sondern kann in gleicher Weise auch auf SGML-basierende Dokumentation
aus anderen Bereichen angewendet werden.

Literaturhinweis
Mayers,
Tom: Java XML Programmierung professionell. Bonn: MITP Verlag
2000.
Leserbrief
schreiben

|