Provided by: libcatmandu-xsd-perl_0.05-2_all bug

NAME

       Catmandu::Importer::XSD - Import and validate serialized XML documents

SYNOPSIS

           # Compile an XSD schema file and parse one shiporder.xml file
           catmandu convert XSD --root '{}shiporder'
                                --schemas demo/order/*.xsd
                                to YAML < shiporder.xml

           # Same as above but parse more than one file into an array of records
           catmandu convert XSD --root '{}shiporder'
                                --schemas demo/order/*.xsd
                                --files 'data/*.xml'
                                to YAML

           # Same as above but all array of records are in a XML container file
           catmandu convert XSD --root '{}shiporder'
                                --schemas demo/order/*.xsd
                                --xpath '/Container/List//Record/Payload/*'
                                to YAML < data/container.xml

           # In Perl
           use Catmandu;

           my $importer = Catmandu->importer('XSD',
                       file => 'ex/data.xml'
                       root => ...,
                       schemas => [ ...]
           );

           my $n = $importer->each(sub {
               my $hashref = $_[0];
               # ...
           });

DESCRIPTION

       This is a Catmandu::Importer for parsing and validating XML data using one or more XSD schema files.

CONFIGURATION

       file
           Read  input  from  a  local file given by its path. Alternatively a scalar reference can be passed to
           read from a string.

       fh  Read input from an IO::Handle. If not specified, Catmandu::Util::io  is  used  to  create  the  input
           stream from the "file" argument or by using STDIN.

       files
           Optional.  Don't read the content from the standard input but use the 'files' parameter as a glob for
           one or more filenames. E.g.

               catmandu ... --files 'data/input/*.xml'

       examples
           Optional. Don't do anything only show an example output how a document should be  structured  in  the
           given XSD scheme. E.g.

               catmandu convert XSD --root {}shiporder --schemas "t/demo/ead/*xsd" --example 1 to YAML

       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.

       xpath
           Optional.  An  XPath  expression,  the  XML container in which the PNX record can be found. Default :
           /oai:OAI-PMH/oai:ListRecords//oai:record/oai:metadata/*

       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

       any_element
           Optional. The handling  of  "<any">  content  in  schemas.  One  of  TAKE_ALL  (default:  process  as
           XML::LibXML::Node)  ,  SKIP_ALL  (ignore  these)  ,  XML_STRING (process as string) , CODE (provide a
           reference to parse the data). See XML::Compile::Translate::Reader

METHODS

       Every Catmandu::Importer is a Catmandu::Iterable all its methods are inherited.

SEE ALSO

       Catmandu::Importer, Catmandu::XSD

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.

perl v5.36.0                                       2022-11-29                       Catmandu::Importer::XSD(3pm)