package SOAP::WSDL::TypeLookup;
use strict;
use warnings;
our $VERSION = 3.003;
my %TYPE_FROM = (
# wsdl:
'http://schemas.xmlsoap.org/wsdl/' => {
'import' => {
type => 'HANDLER',
method => 'wsdl_import',
},
binding => {
type => 'CLASS',
class => 'SOAP::WSDL::Binding',
},
definitions => {
type => 'CLASS',
class => 'SOAP::WSDL::Definitions',
},
portType => {
type => 'CLASS',
class => 'SOAP::WSDL::PortType',
},
message => {
type => 'CLASS',
class => 'SOAP::WSDL::Message',
},
part => {
type => 'CLASS',
class => 'SOAP::WSDL::Part',
},
service => {
type => 'CLASS',
class => 'SOAP::WSDL::Service',
},
port => {
type => 'CLASS',
class => 'SOAP::WSDL::Port',
},
operation => {
type => 'CLASS',
class => 'SOAP::WSDL::Operation',
},
input => {
type => 'CLASS',
class => 'SOAP::WSDL::OpMessage',
},
output => {
type => 'CLASS',
class => 'SOAP::WSDL::OpMessage',
},
fault => {
type => 'CLASS',
class => 'SOAP::WSDL::OpMessage',
},
types => {
type => 'CLASS',
class => 'SOAP::WSDL::Types',
},
documentation => {
type => 'CONTENT',
method => 'set_documentation',
}
},
# soap:
'http://schemas.xmlsoap.org/wsdl/soap/' => {
operation => {
type => 'CLASS',
class => 'SOAP::WSDL::SOAP::Operation',
},
binding => {
type => 'PARENT',
},
body => {
type => 'CLASS',
class => 'SOAP::WSDL::SOAP::Body',
},
header => {
type => 'CLASS',
class => 'SOAP::WSDL::SOAP::Header',
},
address => {
type => 'CLASS',
class => 'SOAP::WSDL::SOAP::Address',
}
},
'http://www.w3.org/2001/XMLSchema' => {
'import' => {
type => 'HANDLER',
method => 'xml_schema_import',
},
schema => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::Schema',
},
attribute => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::Attribute',
},
attributeGroup => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::AttributeGroup',
},
key => {
type => 'SKIP', # not implemented yet
},
keyref => {
type => 'SKIP', # not implemented yet
},
unique => {
type => 'SKIP', # not implemented yet
},
notation => {
type => 'SKIP', # not implemented yet
},
annotation => {
type => 'CLASS', # not implemented yet
class => 'SOAP::WSDL::XSD::Annotation',
},
documentation => {
type => 'CONTENT',
method => 'set_documentation',
},
appinfo => {
type => 'SKIP', # not implemented yet
},
description => {
type => 'SKIP', # not implemented yet
},
element => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::Element',
},
simpleType => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::SimpleType',
},
complexType => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::ComplexType',
},
simpleContent => {
type => 'METHOD',
method => 'set_contentModel',
value => 'simpleContent'
},
complexContent => {
type => 'METHOD',
method => 'set_contentModel',
value => 'complexContent'
},
restriction => {
type => 'METHOD',
method => 'set_restriction',
},
extension => {
type => 'METHOD',
method => 'set_extension',
},
list => {
type => 'METHOD',
method => 'set_list',
},
union => {
type => 'METHOD',
method => 'set_union',
},
enumeration => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::Enumeration',
},
group => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::Group',
},
all => {
type => 'METHOD',
method => 'set_variety',
value => 'all',
},
choice => {
type => 'METHOD',
method => 'set_variety',
value => 'choice',
},
sequence => {
type => 'METHOD',
method => 'set_variety',
value => 'sequence',
},
value => {
type => 'SKIP',
},
minExclusive => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::MinExclusive',
},
maxExclusive => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::MaxExclusive',
},
minInclusive => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::MinInclusive',
},
maxInclusive => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::MaxInclusive',
},
maxLength => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::MaxLength',
},
minLength => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::MinLength',
},
totalDigits => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::TotalDigits',
},
fractionDigits => {
type => 'CLASS',
class => 'SOAP::WSDL::XSD::FractionDigits',
},
},
);
$TYPE_FROM{ 'http://www.w3.org/2000/10/XMLSchema' } = $TYPE_FROM{ 'http://www.w3.org/2001/XMLSchema' };
sub lookup {
my ($self, $namespace, $name) = @_;
return $TYPE_FROM{ $namespace }->{ $name };
}
1;