4.1.11  Character Mappings in der Ausgabe

Die Umstellung von XHTML auf HTML5 war nicht unbedingt ein Fortschritt, wenn es um die Verarbeitung der Strukturen mittels XSLT geht. Denn ein HTML5 Dokument kann im Gegensatz zu XHTML auch nicht abgeschlossene Tags beinhalten.

Man muss also zunächst das HTML5 mittels z.B. HTML Tidy valide machen und nach XHTML überführen, bevor man es dann per XSLT weiterverarbeiten kann. Natürlich frägt sich jetzt der geneigte Leser, warum man das will - schließlich handelt es sich bei HTML5 ja schon um ein Ausgabeformat.

Mir fallen auf Anhieb zwei Use Cases ein:

Aber auch schon einen Schritt vorher, wenn Saxon den Ausgabebaum für HTML5 schreibt, können Probleme auftreten. Insbesondere wenn sich unmaskierte Sonderzeichen, die im XML erlaubt sind - aber im HTML nicht - ausgegeben werden sollen.

Unmaskierte Sonderzeichen, die in HTML nicht erlaubt sind, kommen in der XML Eingabe vor.
Bei einer <xsl:output> Deklaration für HTML wird es in diesem Fall zu einem Saxon Fehler kommen.