XML, Infopath, Word und zurück

In Zeiten, in denen aus verschiedenen Gründen mal wieder leidenschaftlich gegen Microsoft gewettert wird, beschäftige ich mich ebenso leidenschaftlich damit und stelle fest, dass Office, so groß unser aller Hassliebe zu diesem Programmen auch sein mag, dann doch ein Ding aus einem Guss ist -wenn auch mit wenig Schnittstelle zur Außenwelt. Leider nur vordergründig. Leider auch nicht ohne Stolpersteine.

Es geht mal wieder um Infopath, um XML und um den Rest der Welt: die Nicht-Infopath Besitzer, die nicht XML Techies und um Open XML.

XML

XML ist das Datenformat schlechthin, keine Frage. Das gerade macht Infopath so wertvoll, denn es ermöglicht Nutzern ohne XML Kenntnisse in einer Anwendung mit dem typischen, bekannten Office Look and Feel XML Dateien zu erstellen, ohne auch nur zu wissen, was XML überhaupt ist. Infopath ist ein wirklich tolles Programm, trotz seiner ganzen Ärgernisse. Nur Infopath hat einen Haken: es wird nicht im Standard Office Paket mit ausgeliefert und damit hat Infopath nur der, der es wirklich haben möchte.

Da liegt seitens der Benutzer und Kunden der Gedanke an Word natürlich sehr nahe, ebenso wie der an Excel oder Access. Die bekannten Größen der Office Familie, die zwar noch proprietärer sind als jegliches XML, - nicht eben jedoch in den Köpfen der Nutzer. Insbesondere werden Formulare (und nicht mehr und nicht weniger ist für den Nutzer ja schließlich auch das Infopath) vielfach mit Word erstellt. Das ist es, was die Nutzer kennen, auch wenn Word keine Anwendung für Formulare ist sondern eine Textverarbeitung.

Wege im Office

Der Weg Infopath nach Word ist hinreichend bekannt und wird seitens Microsoft ziemlich rudimentär abgehandelt: eine XML Datei wird mittels einer geeigneten XSLT Transformation in Word dargestellt. - und da liegt genau der Knackpunkt. Die Geschichte mit dem XSLT ist nämlich einigermaßen mühsam. Auch ein anderer Weg ist interessant: der von Word nach Infopath. Dann nämlich, wenn Nutzer ohne Infopath rudimentäre XML Dateien erstellen oder zumindest Gerüste für eine spätere Form von Infopath tauglichem XML erstellen sollen sollen, die später mit Hilfe von Infopath weiterberarbeitet werden sollen.
Praktischer Hintergrund: das, was früher händisch aus einem Word Formular in eine Access Datenbank gepackt wurde, wird nun in XML erfasst. Es wäre schön, wenn auch das Word Formular in diesem Zug durch eine XML freundlichere Variante ersetzt wurde. Auch hier stolpert man sofort über XSLT. Man stolpert aber auch über das DOCX Format, über WordML und über OfficeXML. Und damit ganz schnell auch in eine Black Box, die natürlich eigentlich keine ist, aber zeigt, dass die Microsoftschen Bemühungen nach einem einheitlichen(?) Format in der Praxis dann doch einige Blasen ziehen.

Okay, man kann XML Dateien in Word öffnen, man kann sogar eine in Infopath erstellte Ansicht zuweisen - vermeintlich, wohlgemerkt, denn hier ist dann auch schon Schluss. Ergebnislos. Und eigentlich soll es ja auch irgendwann ein Formular werden, nicht nur ein View auf eine XML Datei. Was man also mindestens braucht, ist eine XSLT Transformation. Idealerweise hat man genau dafür auch ein passendes Programm, gerade nämlich wenn es ans Stylesheet geht. ALTOVA, bekannt wahrscheinlich mit seinem Flaggschiff XMLSpy bietet einige interessante Produkte, unter anderem auch mit OpenXML Unterstützung zur Generierung von XSLT Transformationen und Stylesheets. Reizvoll, denn wer einmal in die Infopathsche manifest Datei geschaut hat, in eine der XSL Dateien der Views oder auch in ein document.xml innerhalb des .docx Formats, der weiß: das wird nicht lustig.

XSLT ist also durchaus mit Berührungsängsten verbunden - auch beim Kunden. Einen reizvollen Ansatz ganz allgemeiner Art ohne XSLT schlägt David Gernhardt vor, wenn es um Office 2007 geht und setzt genau bei dem oben genannten Problem an: die von Infopath erstelle Ansicht:

Despite the effectiveness of S.Y.M.’s article, there are still a lot of people who are wary of using XSLT in this manner, mainly because the markup in the document.xml part (the basis for the XSLT stylesheet) is difficult to read.

schreibt er erfahrungsgemäß.

Auch das leider eine Lösung, die nur im internen Gebrauch funktioniert, denn viele User setzen nach wie vor auf Office 2003 - und genau das XML Handling ist mit Version 2007 deutlich verbessert, sagen wir eher verändert worden. Office 2003: nicht möglich ohne XSLT.
Auch hierzu hat Gernhardt einen Artikel verfasst, der insbesondere bei komplexen XSLT Stylesheets interessant ist, - basierend auf einem Erfahrungswert, der einem als Entwickler eher ungerne passiert:

The XSL stylesheet for our transform had already been developed, and it was too complex for the InfoPath to Word Wizard

Weitere interessante Links zum Thema von S.Y.M. Wong-A-Ton auf der für Infopath Entwickler wirklich informativen Seite


Fazit

Das Handling von XML und OpenXML Format innerhalb der Office Familie ist mit Office 2007 deutlich verbessert worden. Trotzdem ist die Entwicklung eines Systems, in dem Dokumente schnell und problemlos von verschiedenen Anwendungen genutzt werden können, keine triviale Fragestellung.
Gerade die Rückwärtskompatilität zu Office 2003 verdient aufgrund der völligen Neuimplementierung der OpenXML in Office 2007 besondere Beachtung.

Dass durchaus am OpenXML bleiben, gerade hinsichtlich der Frage eines internationalen ISO Standards, ist wieder eine andere Sache. Ein Format, das zwar XML “drin” hat und sich damit auch Datenaustauschformat nennen darf, jedoch aufgrund so vieler proprietärer Konstrukte und Unübersichtlichkeiten kaum mehr zu handeln ist, “Open” zu nennen, erscheint mir zum jetzigen Zeitpunkt meiner Recherchern als fragwürdig.

 

Auch was dazu sagen?