Provided by: libxml-compile-perl_1.61-1_all bug

NAME

       XML::Compile::Schema::Instance - Represents one schema

SYNOPSIS

        # Used internally by XML::Compile::Schema
        my $schema = XML::Compile::Schema::Instance->new($xml);

DESCRIPTION

       This module collect information from one schema, and helps to process it.

METHODS

   Constructors
       $obj->new($top, %options)
           Get's the top of an XML::LibXML tree, which must be a schema element.  The tree is
           parsed: the information collected.

            -Option                --Default
             attribute_form_default  <undef>
             element_form_default    <undef>
             filename                undef
             source                  undef
             target_namespace        <undef>

           attribute_form_default => 'qualified'|'unqualified'
           element_form_default => 'qualified'|'unqualified'
             Overrule the default as found in the schema.  Many old schemas (like WSDL11 and
             SOAP11) do not specify the default in the schema but only in the text.

           filename => FILENAME
             When the source is some file, this is its name.

           source => STRING
             An indication where this information came from.

           target_namespace => NAMESPACE
             Overrule or set the target namespace.

   Accessors
       $obj->attributeGroups()
           Returns a list of all defined attribute groups.

       $obj->attributes()
           Returns a lost of all globally defined attribute names.

       $obj->complexTypes()
           Returns a list with all complexType names.

       $obj->element($uri)
           Returns one global element definition.

       $obj->elements()
           Returns a list of all globally defined element names.

       $obj->filename()
       $obj->groups()
           Returns a list of all defined model groups.

       $obj->schema()
       $obj->schemaInstance()
       $obj->schemaNamespace()
       $obj->sgs()
           Returns a HASH with the base-type as key and an ARRAY of types which extend it.

       $obj->simpleTypes()
           Returns a list with all simpleType names.

       $obj->source()
       $obj->targetNamespace()
       $obj->tnses()
           A schema can defined more than one target namespace, where recent schema spec changes
           provide a targetNamespace attribute.

       $obj->type($uri)
           Returns the type definition with the specified name.

       $obj->types()
           Returns a list of all simpleTypes and complexTypes

   Index
       $obj->find($kind, $fullname)
           Returns the definition for the object of $kind, with $fullname.

           example: of find

             my $attr = $instance->find(attribute => '{myns}my_global_attr');

       $obj->importLocations($ns)
           Returns a list of all schemaLocations specified with the import $ns (one of the values
           returned by imports()).

       $obj->imports()
           Returns a list with all namespaces which need to be imported.

       $obj->includeLocations()
           Returns a list of all schemaLocations which where specified with include statements.

       $obj->printIndex( [$fh], %options )
           Prints an overview over the defined objects within this schema to the selected $fh.

            -Option       --Default
             kinds          <all>
             list_abstract  <true>

           kinds => KIND|ARRAY-of-KIND
             Which KIND of definitions would you like to see.  Pick from "element", "attribute",
             "simpleType", "complexType", "attributeGroup", and "group".

           list_abstract => BOOLEAN
             Show abstract elements, or skip them (because they cannot be instantiated anyway).

SEE ALSO

       This module is part of XML-Compile distribution version 1.61, built on November 09, 2018.
       Website: http://perl.overmeer.net/xml-compile/

LICENSE

       Copyrights 2006-2018 by [Mark Overmeer <markov@cpan.org>]. For other contributors see
       ChangeLog.

       This program is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.  See http://dev.perl.org/licenses/