table of contents
Catmandu::Exporter::XSD(3pm) | User Contributed Perl Documentation | Catmandu::Exporter::XSD(3pm) |
NAME¶
Catmandu::Exporter::XSD - Export and validate XML documents
SYNOPSIS¶
# Convert one shiporder YAML to XML catmandu convert YAML to XSD --root '{}shiporder' --schemas demo/order/*.xsd < shiporder.YAML # Same as above but store multiple shiporders in the YAML into a separate file catmandu convert YAML to XSD --root '{}shiporder' --schemas demo/order/*.xsd --split 1 < shiporder.YAML # Same as above but use template toolkit to pack the XML into an container # (The xml record is stored in the 'xml' key which can be retrieved in the # template by [% xml %]) catmandu convert YAML to XSD --root '{}shiporder' --schemas demo/order/*.xsd --template_before t/xml_header.tt --template t/xml_record.tt --template t/xml_footer.tt < shiporder.YAML use Catmandu; # Print to STDOUT my $exporter = Catmandu->exporter('XSD', root => ... schemas => ... ); $exporter->add_many($arrayref); $exporter->add_many($iterator); $exporter->add_many(sub { }); $exporter->add($hashref); $exporter->commit;
DESCRIPTION¶
This is a Catmandu::Exporter for converting Perl into valided XML documents using an XSD schema file.
CONFIGURATION¶
- file
- Write output to a local file given by its path. Alternatively a scalar reference can be passed to write to a string.
- fh
- Write output to an IO::Handle. If not specified, Catmandu::Util::io is used to create the output stream from the "file" argument or by using STDOUT.
- split
- Optional. Don't write to the file (or STDOUT) and split the output
documents into one or more files. E.g.
catmandu ... to XSD --root ... --schemas ... --split 1 < data
- split_pattern
- Optional. Use a FORMAT as template for naming output files. Uses the '_id'
field in the data or an incremental counter as input. E.g.
# Creates 000001.xml , 000002.xml, etc catmandu ... to XSD --root ... --schemas ... --split 1 --split_pattern '%-6.6d.xml' < data
- split_directory
- Optional. Specify the directory in which the split files need to be written.
- template
- Optional. A template toolkit template to be used for creating each XML output record. Gets as input the input data plus the XML serialized form in the 'xml' field.
- template_before
- Optional. The template toolkit template to be used as XML header.
- template_after
- Optional. The template toolkit template to be used as XML footer.
- fix
- An ARRAY of one or more fixes or file scripts to be applied to imported items.
- root
- Required. The name (and namespace) of the root element of the XML
document. E.g.:
{}shiporder {http://www.loc.gov/mods/v3}mods {urn:isbn:1-931666-22-9}ead
- schemas
- Required. An array or comma separated list of XSD schema locations.
- prefixes
- Optional. An array or comma delimited string of namespace prefixes to be
used hand handling XML files. E.g.
# On the command line: catmandu ... --prefixes ead:urn:isbn:1-931666-22-9,... # In Perl prefixes => [ ead => 'urn:isbn:1-931666-22-9' , ... => ... ]
- mixed
- Optional. The handling of mixed element content. One of ATTRIBUTES (default), TEXTUAL, STRUCTURAL, XML_NODE, XML_STRING, CODE reference. See also Catmandu::XSD and XML::Compile::Translate::Reader
METHODS¶
Every Catmandu::Importer is a Catmandu::Iterable all its methods are inherited.
SEE ALSO¶
Catmandu::Exporter, Catmandu::XSD , Template
AUTHOR¶
Patrick Hochstenbach , "patrick.hochstenbach at ugent.be"
LICENSE AND COPYRIGHT¶
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See <http://dev.perl.org/licenses/> for more information.
2022-11-29 | perl v5.36.0 |