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 seperate 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 seperate 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 seperate 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->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([FILEHANDLE], 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 explictly.

$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.29, built on October 16, 2012. Website: http://perl.overmeer.net/xml-compile/

Other distributions in this suite: XML::Compile, XML::Compile::SOAP, XML::Compile::SOAP12, XML::Compile::SOAP::Daemon, XML::Compile::SOAP::WSA, XML::Compile::C14N, XML::Compile::WSS, XML::Compile::Tester, XML::Compile::Cache, XML::Compile::Dumper, XML::Compile::RPC, XML::Rewrite, XML::eXistDB, and XML::LibXML::Simple.

Please post questions or ideas to the mailinglist at http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile For live contact with other developers, visit the #xml-compile channel on irc.perl.org.

LICENSE

Copyrights 2006-2012 by [Mark Overmeer]. 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://www.perl.com/perl/misc/Artistic.html