Search the FirstSpirit Knowledge Base
Ich erzeuge über den HTML Ausgabekanal ein XML (Vorlagensatz html mit Ziel Ext. xml). Wenn ich dort über $CMS_VALUE()$ Texte mit Sonderzeichen z.B. "für alle Fälle" ausgebe erhalte ich keine Fehlermeldung, wenn der Text jedoch vorher mit text.convert konvertiert wurde erhalte ich z.B. für das ü den Fehler "Entität uuml ist nicht definiert". Wenn ich die Sonderzeichen durch die entsprechenden Sequenzen der W3C Recomendations (https://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_XHTML_Latin_1_Character_Ent...) ersetzte, funktionierts auch.
Da die Texte an der Stelle, an der sie als XML ausgegeben werden soll bereits mit text.convert konvertiert wurden, würde mir als Lösung nur einfallen in einem Template alle Sonderzeichen durch die Sequenzen aus dem W3C Dokument zu ersetzten. Gibt es eine andere Möglichkeit, z.B. an dieser Stelle eine andere Regel für convert zu verwenden?
Hallo Herr Leicht,
Gegenfrage - warum sind die Texte denn schon mit text.convert konvertiert an der Stelle, an der Sie im XML ausgegeben werden sollen?
Die saubere Lösung wäre es, entweder im Ausgabekanal als Standardkonvertierungsregel eine zu hinterlegen, welche die korrekten Ersetzungen durchführt (z.B. "Unicode to XML", evtl. Unicode to FOP Entities oder eine selbst geschriebene) oder die entsprechende Konvertierungsregel i Templat edirekt anzugeben, also text.convert("Unicode to XML") oder besser text.convert2("Unicode to XML")
Tipp:
Die Konvertierungsregel für den Ausgabekanal können Sie hier setzen:
ServerManager->Projekt->Eigenschaften->Vorlagensätze->entsprechenden Vorlagensatz bearbeiten
Eine neue Konvertieurngsregel können Sie hier anlegen:
ServerManager->Server/Eigenschaften->Konvertierungsregeln
Viele Grüsse aus Dortmund,
Holger Höbbel
Hallo Herr Höbbel,
die Texte sind an der Stelle schon konvertiert, weil ich den Text aus einem anderen Template bekomme.
Ich habe mich für die einfachere Variante entschieden: <![CDATA[]]> um die Texte schreiben.