Thread XSLT: Kann man im Template Elemente typisieren
(6 answers)
Opened by barney at 2024-11-16 13:56
Ich habe mich nach langer Zeit wieder mal mit XSLT beschäftigt. In OTOBO kann man Webservices definieren die eine Datenstruktur transformieren. Eine Option ist dabei die Transformation mittels XSLT. Dabei hat man die Situation dass das eingehende XML keine Schema-Deklaration hat.
Siehe auch XSLT Tests in OTOBO Mein Erkenntnisstand ist das ohne Schema-Deklaration alle Werte als String angesehen werden. Es wäre aber kommod wenn man im Template den Typ von Werten deklarieren könnte. Dann könnte man die Strings false und true als boolsch ansehen. Meine Fragen ist also ob man im Template die Typdeklarationen irgendwie nachschieben kann. Ich habe https://www.data2type.de/xml-xslt-xslfo/xslt/xslt-... gefunden. Soweit ich es überblicke kann man hier Typen verfügbar machen. Aber ich blicke nicht ob man da auch Typen an Elementen zuweisen kann. Hier noch ein Beispiel welches die Fragestellung verdeutlichen soll. Ziel wäre es das auch bei BoolEvaluation erkannt wird dass "Am Ende war die Tat" kein Kamel auf dem Buchdeckel hat. [code]~/devel/Perl/XML$ cat books.xml <library> <books> <book> <name>Programming Perl</name> <has_camel_on_cover>true</has_camel_on_cover> </book> <book> <name>Am Ende war die Tat</name> <has_camel_on_cover>false</has_camel_on_cover> </book> </books> </library> ~/devel/Perl/XML$ cat books.xslt <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod="xml"encoding="utf-8"indent="yes"/> <xsl:templatematch="//books"> <NewRootElement> <xsl:for-eachselect="book"> <StringMatching> <xsl:choose> <xsl:whentest="has_camel_on_cover='true'"> <xsl:text> |