Mit der Methode $sch->template() der Klasse XML::Compile::Schema
kann ein XML-Template zu einer gegebenen Schemadefinition generiert werden
(Anwendungsfall s. XML: Erzeugung von komplexem XML).
Beispiel:
$ perl -MQuiq::Zugferd -E 'say Quiq::Zugferd->createTemplate("ZF24_DE/Schema/3_Factur-X_1.08_EN16931")'
Die aktuelle Implementierung von XML::Compile hat jedoch leider das Defizit,
dass mehrfach auftretende XML-Konstrukte <ELEMENT>...</ELEMENT> ab dem
zweiten Auftreten abgekürzt werden zu <ELEMENT/>. Dies macht die Nutzung des
Templates leider weitgehend unbrauchbar.
Mit einem kleinen Patch lässt sich dies jedoch beheben. Das unerwünschte
Verhalten unterbleibt, wenn in Compile/Translate/Template.pm die Zeile
$reuse_type{$type}++; $reuse_tag{$tag}++;
auskommentiert wird.
Links