Provided by: libxml-compile-perl_1.63-3_all bug

NAME

       XML::Compile::Schema::NameSpaces - Connect name-spaces from schemas

SYNOPSIS

        # Used internally by XML::Compile::Schema
        my $nss = XML::Compile::Schema::NameSpaces->new;
        $nss->add($schema);

DESCRIPTION

       This module keeps overview on a set of namespaces, collected from various schema files.
       Per XML namespace, it will collect a list of fragments which contain definitions for the
       namespace, each fragment comes from a different source.  These fragments are searched in
       reverse order when an element or type is looked up (the last definitions overrule the
       older definitions).

METHODS

   Constructors
       $obj->new(%options)

   Accessors
       $obj->add( $schema, [$schemas] )
           Add XML::Compile::Schema::Instance objects to the internal knowledge of this object.

       $obj->allSchemas()
           Returns a list of all known schema instances.

       $obj->doesExtend($exttype, $basetype)
           Returns true when $exttype extends $basetype.

       $obj->find($kind, $address|<$uri,$name>, %options)
           Lookup the definition for the specified $kind of definition: the name of a global
           element, global attribute, attributeGroup or model group.  The $address is constructed
           as " {uri}name " or as separate $uri and $name.

            -Option      --Default
             include_used  <true>

           include_used => BOOLEAN
       $obj->findID( $address|<$uri,$id> )
           Lookup the definition for the specified id, which is constructed as " uri#id " or as
           separate $uri and $id.

       $obj->findSgMembers($class, $type)
           Lookup the substitutionGroup alternatives for a specific element, which is an $type
           (element full name) of form " {uri}name " or as separate URI and NAME.  Returned is an
           ARRAY of HASHes, each describing one type (as returned by find())

       $obj->findTypeExtensions($type)
           This method can be quite expensive, with large and nested schemas.

       $obj->importIndex(%options)
           [1.41] Returns a HASH with namespaces which are declared in all currently known
           schema's, pointing to ARRAYs of the locations where the import should come from.

           In reality, the locations mentioned are often wrong. But when you think you want to
           load all schema's dynamically at start-up (no, you do not want it but it is a SOAP
           paradigma) then you get that info easily with this method.

       $obj->list()
           Returns the list of name-space URIs defined.

       $obj->namespace($uri)
           Returns a list of XML::Compile::Schema::Instance objects which have the $uri as target
           namespace.

       $obj->printIndex( [$fh], %options )
           Show all definitions from all namespaces, for debugging purposes, by default the
           selected.  Additional %options are passed to
           XML::Compile::Schema::Instance::printIndex().

            -Option      --Default
             include_used  <true>
             namespace     <ALL>

           include_used => BOOLEAN
             Show also the index from all the schema objects which are defined to be usable as
             well; which were included via use().

           namespace => URI|ARRAY-of-URI
             Show only information about the indicate namespaces.

           example:

            my $nss = $schema->namespaces;
            $nss->printIndex(\*MYFILE);
            $nss->printIndex(namespace => "my namespace");

            # types defined in the wsdl schema
            use XML::Compile::SOAP::Util qw/WSDL11/;
            $nss->printIndex(\*STDERR, namespace => WSDL11);

       $obj->schemas($uri)
           We need the name-space; when it is lacking then import must help, but that must be
           called explicitly.

       $obj->use($object)
           Use any other XML::Compile::Schema extension as fallback, if the find() does not
           succeed for the current object.  Searches for definitions do not recurse into the used
           object.

           Returns the list of all used OBJECTS.  This method implements
           XML::Compile::Schema::useSchema().

SEE ALSO

       This module is part of XML-Compile distribution version 1.63, built on July 02, 2019.
       Website: http://perl.overmeer.net/xml-compile/

LICENSE

       Copyrights 2006-2019 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/