NAME
Catmandu::Exporter::XSD - Export and validate XML documents
SYNOPSIS
# Convert one shiporder YAML to XMLcatmandu 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 filecatmandu 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.YAMLuse Catmandu;# Print to STDOUTmy $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, etccatmandu ... 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 Perlprefixes => [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.