Thread XSLT: Kann man im Template Elemente typisieren
(6 answers)
Opened by barney at 2024-11-16 13:56 2024-11-17T16:09:18 barney Nope. 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. |