Archiv der Kategorie: XML/XSL

Tappen Sie nicht in die Falle

Michael Kay, XSLT-Mastermind, hat einen Blog-Eintrag zu The ten most common XSLT programming mistakes verfasst. Der aus meiner Sicht eindrücklichste Hinweis ist Punkt 7:

Don’t use disable-output-escaping. […] 95% of the time, if you see disable-output-escaping in a stylesheet, it tells you that the author was a novice who didn’t know what s/he was doing.

In den Punkten 4 und 10 weist er indirekt darauf hin, dass für gute Ergebnisse eine gewisse Kenntnis der Arbeitsweise bzw. Programmiersprache nötig ist. Das erinnert mich an There is no free lunch! Wer aber die Basishürden überwindet, wird mit einer mächtigen Programmiersprache belohnt, die beliebige Modifikationen an XML-Daten zulässt.

So, und jetzt beginnt die Fußball-WM, wer hat da noch Zeit für Doku?

Veröffentlicht unter XML/XSL | Kommentare deaktiviert für Tappen Sie nicht in die Falle

Dokumentvergleich – Änderungsanzeige

Diff, Change Tracking, Änderungsverfolgung… you name it…

Es gibt mehrere Gründe warum jemand gerne sehen möchte, wo in einem Dokument welche Änderungen gemacht wurden:

  • Der Leser möchte bei einem Update die Stellen mit Änderungen gegenüber seiner letzten Version des Dokuments sofort erkennen
  • Der Korrektur-Leser möchte die Stellen mit Änderungen seit dem letzten Korrekturlauf erkennen
  • In den Übersetzungsprozess sollen nur Abschnitte mit Änderungen geleitet werden

Den letzten Fall möchte ich hier einmal ausklammern, auch wenn dessen wirtschaftliche Relevanz nicht unterschätzt werden darf. Aber hierfür sind eine Vielzahl weiterer Prozessfragen zu klären.

Die ersten beiden Punkte bieten Raum genug. Zum Beispiel, wenn wir Versionssprünge für bestimmte Sprachen oder Produktvarianten unterstellen. Wenn also nicht in allen Sprachen oder Produktvarianten die gleichen Änderungen angezeigt werden sollen (Äa = Änderungsanzeige):

Version     häufige Sprachen    seltene Sprachen
2.0 PDF mit Äa zu 1.0 PDF mit Äa zu 1.0
2.1 PDF mit Äa zu 2.0
2.2 PDF mit Äa zu 2.1
3.0 PDF mit Äa zu 2.2 PDF mit Äa zu 2.0

Wenn Sie dies noch kombinieren mit gesonderter Änderungsanzeige für verschiedene Korrekturleser… dann ist es kein Wunder, dass dies heute nicht oder nur selten stattfindet. Und wenn, dann mit recht hohem Zeitaufwand.

Aber es geht! Mit FrameMaker!

In einem aktuellen Projekt habe ich folgendes umgesetzt:

  • zwei beliebige XML-Fassungen eines Handbuchs werden mit Hilfe eines XML-Tools verglichen
  • das XML-Ergebnis mit Änderungsmarkierungen wird für FrameMaker aufbereitet
  • es entsteht ein FrameMaker-Buch mit FrameMaker-Änderungsmarkierungen, die auf Wunsch noch nachbearbeitet werden können

Im Detail:

Es gibt viele Werkzeuge, mit denen Textdateien oder sogar XML-Dateien vergleichen werden können. Aber erst 2009 fand auch eines, dass Änderungsmarkierungen auch in einem XML-Dokument speichern kann. Dies erfolgt mit Hilfe von Processing Instructions, so dass die XML-Datei nicht durch neue Elemente oder Attribute von vornherein ungültig wird. Dem Werkzeug fehlten noch einige Funktionen, die wir für den Vergleich von Dokumenten benötigen, zum Beispiel den Vergleich auf Textebene. Mittlerweile gibt es eine Version 2.0 von XML Tree Compare zum Testen auf http://www.xmldifftool.com/.

Eine Aufbereitung des Outputs von XTC ist nötig, da FrameMaker Änderungsmarkierungen auf ganz bestimmte Art und Weise erwartet. Zudem bietet die Aufbereitung auch die Möglichkeit, bestimmte technisch motivierte Änderungen zu ignorieren. Da es sich um eine XML-Datei handelt, erfolgt diese Anpassung per XSLT.

Integriert wird das Ganze mit einem Skript, so dass der Vorgang für den Anwender problemlos ist. FrameMakers Einschränkungen im Zusammenhang mit der Änderungsverfolgung werden dabei weitgehend behoben.

Und das Dokument mit Änderungsanzeige kann anschließend mit der Symbolleiste Textänderungen nachverfolgen nach Änderungen durchsucht werden. Wenn gewünscht können auf diese Weise banale Änderungen noch akzeptiert werden. Abgebildet sind hier das alte, das neue und das Dokument mit Änderungsanzeige.
(Für große Darstellung bitte anklicken und mit Pfeiltasten zwischen den Bildern wechseln)



Wenden Sie sich an mich, wenn Sie dies auch für Ihre FrameMaker-Publikationen einsetzen wollen!

Veröffentlicht unter FrameMaker, XML/XSL | Ein Kommentar

XML Prague 2010: XML-Editoren

Rückblick zu XML Prague 2010

Stéphane Sire von der École Polytechnique Fédérale de Lausanne brachte es im Vortrag »Authoring XML all the Time, Everywhere and by Everyone« ganz gut auf einen Nenner: Es gibt mehrere Ansätze, wie XML-Editoren aufgebaut sind, an welche Zielgruppe sie sich wenden:

Recht oft höre im Zusammenhang mit XML-Editoren den Wunsch nach Einfachheit, oft ausgedrückt durch die Beschreibung »So einfach wie Word« — wer sich schon einmal mit der Datenübernahme aus MS Word beschäftigt hat, für den ist der Widerspruch offensichtlich. In der Regel gemeint ist mit dieser Forderung, dass man dem Anwender keine XML-Tags zumuten möchte, aber dennoch korrektes XML erwartet.

Lightweight Markup Language

Die einfachste Form eines XML-Editors ohne Tags verwende ich in diesem Blog: Ich schreibe wie in einer reinen Text-E-Mail und verwende einige Konventionen. Leerzeilen bedeuten Absatztrennung, * plus Leerzeichen ist Listenanfang, ein oder mehrere # markieren Überschriften. Das ganze nennt sich Markdown und ist eine einfache Auszeichnungssprache (Lightweight Markup Language), wie sie zum Beispiel auch in Wikis verwendet werden. Hierbei wird reiner Text durch einen festgelegten Regelsatz in gültiges XHTML umgesetzt, die Freiheitsgrade sind durch die Regeln bestimmt. Aber natürlich setzt dies eine Verarbeitung der Dateien voraus, irgendeine aktive Komponente, die die Umsetzung vornimmt und visualisiert — und schon wird es manchem wieder zu kompliziert.

Web CMS

Eine andere Form einfacher XML-Editoren findet sich in Web-Content-Management-Systemen. Hier werden den Schreibenden oft Formulare angeboten, die eben nur die erlaubten Felder enthalten. Das ist dann Daten-zentriertes Bearbeiten, auch wenn es sich bei den Daten um Absätze eines Beitrags für die Webseite handelt. Natürlich steht auch hier eine aktive Komponente im Mittelpunkt, primär der Web-Server.

XTiger XML & AXEL

Ohne aktive Komponente geht es auch nicht bei der von Stéphane Sire vorgestellten pragmatischen Lösung namens XTiger XML & AXEL; hier in erster Linie JavaScript im Browser. Diese versucht nicht Entwickler-nah zu sein, sondern das Erfassen von Daten und Texten per Browser für möglichst viele Zielgruppen möglichst einfach zu ermöglichen. Die Lösung ist weniger mächtig als Xopus und nicht an die XForms-Technologie gebunden wie XSLTForms, sondern kennt bewusst einige Einschränkungen, die dem XML-Puristen nicht gefallen. Deswegen nenne ich es auch eine pragmatische Lösung.

Der Anwender sieht in seinem Browser eine Vorschau seines Dokuments und kann jederzeit jeden dafür vorgesehenen Textabschnitt anklicken und bearbeiten. Aber probieren Sie das doch einfach selbst einmal aus (ich empfehle für den Einstieg die Demos »Carte« und »Article«):

Ich persönlich finde den Ansatz recht gelungen und durch die Template-Orientierung ist auch die Anpassung an unterschiedliche Anwendungsfälle möglich. Natürlich nicht so einfach wie der Wechsel einer DTD oder eines Schema in einem reinrassigen XML-Editor, aber den wollen ja viele nicht…

PS1: Bei Markup-zentrierten Editoren gibt es eine große Auswahl auch kostenloser Produkte.

PS2: Ach ja, wer von MS Word nicht lassen will oder kann, für den habe ich die Lösung »Aspect« von Le-Tex in Leipzig entdeckt, die eine standardisierte Verarbeitung von Word-Dokumenten anbietet, nach PDF, ePub oder auch XML. Natürlich auch Server-basiert…

Veröffentlicht unter XML/XSL | Kommentare deaktiviert für XML Prague 2010: XML-Editoren

XML Prague 2010: Verstreute Beobachtungen

Circa 140 Teilnehmer, zwei Tage lang in einem Hörsaal der Karls-Universität.

Twitter-Stichwort: #xmlprague
Flickr-Stichwort: xmlprague

  • Die Beiträge lassen sich als PDF auf der Webseite der XML Prague 2010 laden: Proceedings for download.

  • Als running gag zog sich durch viele Präsentationen: »Audiences don’t like angle brackets«. Die Furcht vor sichtbaren XML-Tags bezog sich natürlich nicht auf das anwesende Publikum…

  • »What XSL 2.0 means for implementers and users« (Tony Graham) — Die Themen, die bei der Weiterentwicklung von XSL-FO zur Version 2.0 angegangen werden sollen, sind wohl ein Art Mängelliste der gegenwärtigen Umsetzung: Spalten, Fußnoten, Marginalien, Bessere Unterstützung nicht-westlicher Sprachen, Nummerierung, Querverweise, Doppelseitenzusammenhang, Schriften, Tabulatorpositionen, gedrehte Bilder, Farbe, und etliches mehr…

  • Die absolute Mehrheit der anwesenden internetfähigen Geräte stellen Produkte der Firma Apple: MacBook Pro, MacBook Air und iPhone…

  • »Automating Document Assembly in DocBook« (Norman Walsh) — Dieser Beitrag machte auf mich leider den Eindruck einer Verteidigungsrede, um DocBook gegenüber DITA als ebenfalls zum Verfassen von Topic-orientierten Texten geeignet darzustellen…

  • Dank einem sehr strikten Konferenz-Regime werden alle Zeiten eingehalten. Beeindruckend…

  • In Präsentationen und Demos ist nur ein einziger XML-Editor sichtbar: Oxygen (stand-alone oder als Eclipse-Plug-in)…

  • Den längsten Applaus der Konferenz erhält Sharon C. Adler für ihren historischen Rückblick und Ausblick: »Why is Markup Still Important after 30 years and Will it Still be Important in Another 30?«: Geschichte pur! Sharon wirkte bereits mit an den ersten Schritten zu SGML. Robin Berjon fasste dies via Twitter gelungen so zusammen:

»It feels as if all of #xmlprague has gathered in a circle around the camp fire as Sharon Adler recounts our history, starting with SGML.«

Veröffentlicht unter XML/XSL | Ein Kommentar

XML Prague 2010: Rückblick

Zu Gast im »most beautiful computer science building in the world« (auf dem Foto rechts unten ist der Eingang zu einem auch im Innern beeindruckenden Gebäude der 1348 gegründeten Karls-Universität) fanden sich ca. 120 Fans, Geeks, Profis und Veteranen aus dem XML-Umfeld ein.

Neben der Möglichkeit mit bekannten Persönlichkeiten der XML/XSL-Szene zusammen zu treffen und dem Conference Dinner 🙂 sind es natürlich die Beiträge, die über den Nutzen einer Konferenz entscheiden. Das Programm der letztjährigen Veranstaltung (die ich nicht besuchen konnte) hat mich so angesprochen, dass ich mich für die XML Prague 2010 quasi blind (und als erster) angemeldet hatte. Und ich habe es nicht bereut!

Insbesondere am ersten Tag wurden zwei Themenbereiche mehrfach berücksichtigt, die auch im Rahmen des praktischen Einsatzes von XML in der technischen Redaktion eine Rolle spielen:

  • Die Frage eines Editors auch für »non-technical« Anwender
  • Änderungsverfolgung in XML-Dokumenten

Auf beide Aspekte werde ich in den nächsten Tagen (so es die Zeit erlaubt) noch weiter eingehen und meinen Bericht aus Prag fortsetzen.




Keine Bilder hab ich vom Conference Dinner, bei dem es neben Bier, einem üppigen und vielfältigen Buffet auch einen Demo Jam gab, bei dem immerhin 13 Teilnehmer in jeweils maximal 5 Minuten eine beliebige Sache demonstrieren durften. Es dreht sich fast alles — wie sollte es anders ein — um XML-Technologien, und die am Schluss mit dem meisten (per Schalldruck-Messgerät ermittelten) Applaus belohnte Vorführung dreht sich um die mittels XQuery weitgehend automatisierte Erstellung einer iPhone-Applikation! Wenn ich es richtig verstanden habe… das Projekt hieß iZorba und ist (wohl) eine Anwendung des Zorba XQuery Prozessors.

Nach der Konferenz ist vor der Konferenz, in meinem Fall die tcworld 2010, und im nächsten März ziemlich sicher wieder Prag!

Veröffentlicht unter XML/XSL | 4 Kommentare

XML-Editor für »non-technical authors«

Dies ist das Thema des ersten Beitrags nach der Mittagspause. Ich bin in Prag bei der Konferenz XML Prague 2010. In den folgenden Tagen werde ich weitere Erkenntnisse auch hier zusammenfassen. Wer der Konferenz (am Wochenende) folgen will, kann auch einen Video-Stream und eine Twitter-Wall beobachten:

Sonntag

Es gab einen Programmierwettbewerb, bei dem mittels XQuery aus der Sequenz (1, 2, 3, 4, 5) die Sequenz (3, 5, 7, 9) zu erzeugen war. Nun habe ich mich mit XQuery noch nicht beschäftigt, weiß aber, dass der Kern ebenfalls XPath. Und so erstellte ich zunächst eine XSLT-Lösung:


  
  

Dann musste ich nur noch herausfinden, wie Variablen in XQuery Werte zugewiesen werden. Erfreut finde ich meine Lösung — ohne gewonnen zu haben — auf der Wettbewerbsseite an erster Stellewieder (und ich muss mich mit meiner Lösung nicht verstecken):

Gewonnen hat Stefan Majewski aus Wien, herzlichen Glückwunsch!

Veröffentlicht unter XML/XSL | Kommentare deaktiviert für XML-Editor für »non-technical authors«

Migration zu XML-strukturierten Dokumenten

Der prinzipielle Ablauf der Migration Format-basierter zu XML-strukturierten FrameMaker-Dokumenten ist dieser:

  1. Entwurf und Optimierung einer Konvertiertabelle: Hier wird für jedes FrameMaker-Objekt ein entsprechendes Element festgelegt
  2. Anwenden dieser Konvertiertabelle: Wenn Sie bei 1. gründlich waren, entstehen Dokumente mit einem definierten Highest Level Element
  3. Laden der gewünschten Elementdefinitionen
  4. Reparieren aller noch vorhandenen Fehler

Letzteres wird zum Beispiel nötig, wenn Abbildungen und Warnmeldungen bislang mit Tabellen aufgebaut waren, dies aber im strukturierten Template nicht mehr der Fall ist. Da können sehr viele Aktionen anstehen.

Bislang habe ich in solchen Fällen Skripte geschrieben, jetzt aber mache ich das mit dem Plug-in FrameSLT und dessen Funktion Node Wizard Scripts. Es handelt sich hier um XPath-basierte Element- und Attributaktionen, die nahezu jegliche Modifikation der Dokumentstrukturen erlauben. In einem aktuellen Projekt (ca. 1.200 Seiten, 32 Kapitel) waren es einmal über 20.000 Aktionen:

Bei solchen Volumina ist ein C-Plugin auch signifikant schneller als ein Skript es wäre! Aber das allerschönste ist die Notation der Aufgabenstellung mit XPath-Ausdrücken, die damit eine wunderbare Präzision bekommen.

Veröffentlicht unter FrameMaker, XML/XSL | Kommentare deaktiviert für Migration zu XML-strukturierten Dokumenten

XML-Konferenz in Prag

Konferenz-Tipp

Ich habe mich schon nach Ende der letztjährigen Konferenz (von der ich zu spät erfuhr) entschlossen, nach Möglichkeit die diesjährige Ausgabe der XML Prague (13.+14.3.2010) zu besuchen, und zwar nicht weil Prag relativ nah liegt, sondern weil unter den Vortragenden einige quasi Bekannte waren, die mir vor allem in der xsl-list immer wieder mit hochkompetenten Beiträge aufgefallen sind. Die bekanntesten Namen sind in diesem Jahr wohl:

Aktuell wurde die Liste der Beiträge veröffentlicht, und schon allein von den Überschriften finde ich interessant:

  • Ghislain Fourny »XQuery in the Browser (Demo)«
  • Ari Nordström »Film Markup Language (Automating Cinemas Using XML)«

Nicht nur interessant, sondern auch sehr relevant für die Dokumentation scheinen mir diese Themen zu sein:

  • Laurens Van den Oever »Tracking Changes: Technical and UX challenges«
  • Felix Sasaki »How to avoid suffering from markup: A project report about the virtue of hiding XML«
  • Stéphane Sire »Authoring XML all the Time, Everywhere and by Everyone«

Mir (und den Veranstaltern) ist klar, dass eine Konferenzankündigung weniger als zwei Monate vor dem Termin einige potentielle Besucher vor Terminprobleme stellt. Wenn Sie an den Themen allerdings interessiert sind, dann schauen Sie sich auf der Webseite einmal den Preis für die Konferenz an. 🙂 Dazu gibt es das Tschechien-Spezial für den Expressbus der Deutschen Bahn von Nürnberg nach Prag… Wollen Sie mich begleiten?

http://www.xmlprague.cz/

Veröffentlicht unter Sonstiges, XML/XSL | 3 Kommentare

10 Jahre XSLT & XPath

W3C Logo

Heute vor 10 Jahren wurden XSLT und XPath als W3C Recommendation veröffentlicht. Die diesbezügliche Mitteilung des damaligen Arbeitsgruppenleiters James Clark ist an Reduktion nicht zu übertreffen:

http://markmail.org/message/4m2lomiaqiachi5o

[via XSL List, Michael Kay]

Mittlerweile sind beide Technologien auf dem Stand 2.0 angekommen und der Schlüssel zur Verarbeitung von XML-Dokumenten. insbesondere auch mit FrameMaker. So wird XSLT genutzt, um XML-Dokumente vor dem Öffnen mit FrameMaker für die Publikation zu optimieren oder Automatiken zu ermöglichen. Dabei kommt natürlich intern XPath zum Einsatz, aber auch die Pflege strukturierter Dokumente kann mit Hilfe des Plug-ins FrameSLT per XPath sehr effizient erfolgen; dazu passend war mein einer Vortrag auf der abgelaufenen tcworld 2009 (Bildschirmpräsentation), ein dementsprechendes vertiefendes Tutorial werde ich als Thema für die tekom Frühjahrstagung 2010 in Schweinfurt vorschlagen.

Veröffentlicht unter XML/XSL | Kommentare deaktiviert für 10 Jahre XSLT & XPath

Saxon Professional Edition

Dr. Michael Kay, maßgebliches Mitglied unter anderem der XSL Working Group und Schöpfer des Open Source XSL-Transformators Saxon, hat mit letzterem nicht nur den ersten XSLT-Transformator mit vollständiger Unterstützung der Spezifikationen XPath 2.0 und XSLT 2.0, sondern auch eine sehr schnelle und auf verschiedenen Plattformen verfügbare Open-Source-Implementation geschaffen.

Saxonica Logo

Seit 2004 betreibt er sein eigenes Unternehmen Saxonica rund um eine kostenpflichtige Version von Saxon, die über die vom Standard geforderten Basisfunktionen hinaus weitere Leistungsmerkmale bietet, zum Beispiel Schema-Validierung und das Streaming großer XML-Dateien.

Dennoch reichen vielen Anwendern die Möglichkeiten der Basis-Version (»Saxon-B«) völlig aus und auch in meinen XSLT-Projekten setze ich auf Saxon. Meine primären Gründe sind:

  • XSLT 2.0
  • Hervorragende Fehlermeldungen
  • Performance, Performance, Performance
  • plattform-übergreifende Verfügbarkeit

Im durchaus verständlichen Bestreben, die Entwicklungsaufwendungen nicht nur durch Lizenzzahlungen von Großkunden zu kompensieren, hat Michael Kay mit dem Erscheinen der Version 9.2 die Produktkonfiguration geändert. Dies sind kurzgefasst die Unterschiede (Quelle):

Version Beschreibung Kosten
Saxon Home Edition Open-Source-Version mit allen minimal erforderlichen Funktionen für XSLT 2.0 und XPath 2.0 £0
Saxon Professional Edition zusätzlich Saxon-, EXSLT-, SQL-Erweiterungen; Möglichkeit ein XSLT-Stylesheet binär zu speichern; Konfiguration über separate XML-Datei £50
Saxon Enterprise Edition zusätzlich, je nach Variante, Schema-Awareness, Schema-Validierung, fortschrittlicher Optimierer, Streaming großer Dokumente, compilieren von Stylesheets oder Queries £90…300

Welche Version verwenden?

In vielen Projekten, in denen XML zu HTML konvertiert wird, ist scheint es völlig ausreichend zu sein mit Saxon Home Edition zu arbeiten. Mich erinnert die Namensgebung aber auch daran, dass Saxon von meinen Kunden in wichtigen Produktionsprozessen verwendet wird — würde da eine »Home Edition« nicht etwas seltsam wirken?

Wie so oft geht es nicht so sehr darum, was eine Lösung heute kostet, sondern darum, welche Probleme entstehen können, wenn man nichts investiert (wobei £50 nicht gerade nach Investition klingen): Mit den kostenpflichtigen Versionen geht Saxonica eine Verpflichtung gegenüber den Kunden ein, darunter:

  • Support mit höherer Priorität
  • Fehler-Korrekturen auch für ältere Versionen

Die Liste der technischen und kommerziellen Gründe, die für Saxon Professional Edition oder Saxon Enterprise Edition sprechen, finden Sie detailliert auf meinen Service-Seiten beschrieben:

Sprich: Saxon Professional Edition bin ich mir selbst schuldig 🙂 , und ich werde es auch in Kundenprojekten verwenden. Und auf Wunsch auch die Lizenzbeschaffung übernehmen, das ist ja nichts Neues für mich (siehe FrameScript).

Veröffentlicht unter Tools, XML/XSL | Verschlagwortet mit , , , | Kommentare deaktiviert für Saxon Professional Edition