1package SOAP::WSDL::TypeLookup;
2use strict;
3use warnings;
4
5our $VERSION = 3.004;
6
7my %TYPE_FROM = (
8    # wsdl:
9    'http://schemas.xmlsoap.org/wsdl/' => {
10        'import' => {
11            type => 'HANDLER',
12            method => 'wsdl_import',
13        },
14        binding => {
15            type => 'CLASS',
16            class => 'SOAP::WSDL::Binding',
17        },
18        definitions => {
19            type => 'CLASS',
20            class => 'SOAP::WSDL::Definitions',
21        },
22        portType => {
23            type => 'CLASS',
24            class => 'SOAP::WSDL::PortType',
25        },
26        message => {
27            type => 'CLASS',
28            class => 'SOAP::WSDL::Message',
29        },
30        part => {
31            type => 'CLASS',
32            class => 'SOAP::WSDL::Part',
33        },
34        service => {
35            type => 'CLASS',
36            class => 'SOAP::WSDL::Service',
37        },
38        port => {
39            type => 'CLASS',
40            class => 'SOAP::WSDL::Port',
41        },
42        operation => {
43            type => 'CLASS',
44            class => 'SOAP::WSDL::Operation',
45        },
46        input => {
47            type => 'CLASS',
48            class => 'SOAP::WSDL::OpMessage',
49        },
50        output => {
51            type => 'CLASS',
52            class => 'SOAP::WSDL::OpMessage',
53        },
54        fault => {
55            type => 'CLASS',
56            class => 'SOAP::WSDL::OpMessage',
57        },
58        types => {
59            type => 'CLASS',
60            class => 'SOAP::WSDL::Types',
61        },
62        documentation => {
63            type => 'CONTENT',
64            method => 'set_documentation',
65        }
66    },
67    # soap:
68    'http://schemas.xmlsoap.org/wsdl/soap/' => {
69        operation => {
70            type => 'CLASS',
71            class => 'SOAP::WSDL::SOAP::Operation',
72        },
73        binding => {
74            type => 'PARENT',
75        },
76        body => {
77            type => 'CLASS',
78            class => 'SOAP::WSDL::SOAP::Body',
79        },
80        header => {
81            type => 'CLASS',
82            class => 'SOAP::WSDL::SOAP::Header',
83        },
84        address => {
85            type => 'CLASS',
86            class => 'SOAP::WSDL::SOAP::Address',
87        }
88    },
89    'http://www.w3.org/2001/XMLSchema' => {
90        'import' => {
91            type => 'HANDLER',
92            method => 'xml_schema_import',
93        },
94        schema => {
95            type => 'CLASS',
96            class => 'SOAP::WSDL::XSD::Schema',
97        },
98        attribute => {
99            type => 'CLASS',
100            class => 'SOAP::WSDL::XSD::Attribute',
101        },
102        attributeGroup  => {
103            type => 'CLASS',
104            class => 'SOAP::WSDL::XSD::AttributeGroup',
105        },
106        key => {
107            type => 'SKIP',     # not implemented yet
108        },
109        keyref => {
110            type => 'SKIP',     # not implemented yet
111        },
112        unique => {
113            type => 'SKIP',     # not implemented yet
114        },
115        notation => {
116            type => 'SKIP',     # not implemented yet
117        },
118        annotation => {
119            type => 'CLASS',     # not implemented yet
120            class => 'SOAP::WSDL::XSD::Annotation',
121        },
122        documentation => {
123            type => 'CONTENT',
124            method => 'set_documentation',
125        },
126        appinfo => {
127            type => 'SKIP',     # not implemented yet
128        },
129        description => {
130            type => 'SKIP',     # not implemented yet
131        },
132        element => {
133            type => 'CLASS',
134            class => 'SOAP::WSDL::XSD::Element',
135        },
136        simpleType => {
137            type => 'CLASS',
138            class => 'SOAP::WSDL::XSD::SimpleType',
139        },
140        complexType => {
141            type => 'CLASS',
142            class => 'SOAP::WSDL::XSD::ComplexType',
143        },
144        simpleContent => {
145            type => 'METHOD',
146            method => 'set_contentModel',
147            value => 'simpleContent'
148        },
149        complexContent => {
150            type => 'METHOD',
151            method => 'set_contentModel',
152            value => 'complexContent'
153        },
154        restriction => {
155            type => 'METHOD',
156            method => 'set_restriction',
157        },
158        extension => {
159            type => 'METHOD',
160            method => 'set_extension',
161        },
162        list => {
163            type => 'METHOD',
164            method => 'set_list',
165        },
166        union => {
167            type => 'METHOD',
168            method => 'set_union',
169        },
170        enumeration => {
171            type => 'CLASS',
172            class => 'SOAP::WSDL::XSD::Enumeration',
173        },
174        group => {
175            type => 'CLASS',
176            class => 'SOAP::WSDL::XSD::Group',
177        },
178        all => {
179            type => 'METHOD',
180            method => 'set_variety',
181            value => 'all',
182        },
183        choice => {
184            type => 'METHOD',
185            method => 'set_variety',
186            value => 'choice',
187        },
188        sequence => {
189            type => 'METHOD',
190            method => 'set_variety',
191            value => 'sequence',
192        },
193        value => {
194            type => 'SKIP',
195        },
196        minExclusive => {
197            type => 'CLASS',
198            class => 'SOAP::WSDL::XSD::MinExclusive',
199        },
200        maxExclusive => {
201            type => 'CLASS',
202            class => 'SOAP::WSDL::XSD::MaxExclusive',
203        },
204        minInclusive => {
205            type => 'CLASS',
206            class => 'SOAP::WSDL::XSD::MinInclusive',
207        },
208        maxInclusive => {
209            type => 'CLASS',
210            class => 'SOAP::WSDL::XSD::MaxInclusive',
211        },
212        maxLength => {
213            type => 'CLASS',
214            class => 'SOAP::WSDL::XSD::MaxLength',
215        },
216        minLength => {
217            type => 'CLASS',
218            class => 'SOAP::WSDL::XSD::MinLength',
219        },
220        totalDigits => {
221            type => 'CLASS',
222            class => 'SOAP::WSDL::XSD::TotalDigits',
223        },
224        fractionDigits => {
225            type => 'CLASS',
226            class => 'SOAP::WSDL::XSD::FractionDigits',
227        },
228    },
229);
230
231$TYPE_FROM{ 'http://www.w3.org/2000/10/XMLSchema' } = $TYPE_FROM{ 'http://www.w3.org/2001/XMLSchema' };
232
233sub lookup {
234    my ($self, $namespace, $name) = @_;
235    return $TYPE_FROM{ $namespace }->{ $name };
236}
237
2381;