Thread XSLT: Kann man im Template Elemente typisieren (6 answers)
Opened by barney at 2024-11-16 13:56

haj
 2024-11-18 18:15
#196724 #196724
User since
2015-01-07
555 Artikel
BenutzerIn

user image
2024-11-17T16:09:18 barney
[...]In der Praxis benutze ich CPAN:XML::LibXSLT. Ehrlich gesagt, habe ich auch nicht getestet ob da xsl:import-schema tut. Ich bin davon ausgegangen dass die Anweisung unterstützt wird.

Nope. CPAN:XML::LibXSLT sitzt, wie xsltproc auf der libxslt, und die kann kein xsl:import-schema. Bei libxslt passiert seit Jahren nicht mehr viel außer gelegentlichen Fehlerbehebungen.

Wenn Booleans (oder auch andere) öfter vorkommen, würde ich eine XSLT-Template-Funktion dafür schreiben, das dann für die entsprechenden Elemente mit <call-template ...> aufgerufen wird. Ich halte das für viel einfacher als die Kanone XSD (oder andere XML-Schema-Formate) auf den Spatz true abzufeuern.

Ich glaube auch nicht mal, dass Dir ein Schema weiterhilft. Die Schema-Verarbeitung prüft, ob das Dokument "gültig" ist, würde also <has_camel_on_cover>maybe</has_camel_on_cover> als ungültig zurückweisen. Bei gültigen Dokumenten liefert es, so weit ich weiß, auch nicht mehr als den validierten Text.

Schemas braucht man bei XSLT-Verarbeitung, wenn Default-Werte von Attributen oder optionale Elemente prozessiert werden müssen: Die glänzen möglicherweise im XML-Dokument durch Abwesenheit. Was nicht da ist, wird bei XSLT auch nicht transformiert, woher soll's denn den Default-Wert kennen. Mein vorletztes Projekt @Work war so ein Projekt, schwergewichtig mit XML, vielen Namespaces, XSD und SOAP, und ich bin froh, das nicht mehr anfassen zu müssen.

View full thread XSLT: Kann man im Template Elemente typisieren