1SOAP::WSDL::Generator::UPsreerfiCxoRnetsroilbvuetre(d3S)POeArPl::DWoScDuLm:e:nGteanteiroantor::PrefixResolver(3)
2
3
4
6 SOAP::WSDL::Generator::PrefixResolver - prefixes for different classes
7
9 If you want to create your custom prefix resolver:
10
11 package MyPrefixResolver;
12 use strict; use warnings;
13 use base qw(SOAP::WSDL::Generator::PrefixResolver);
14
15 sub resolve_prefix {
16 my ($self, $type, $namespace, $node) = @_;
17 # return something special
18 return $self->SUPER::resolve_prefix($type, $namespace, $node);
19 }
20
21 When generating code:
22
23 use MyPrefixResolver;
24 use SOAP::WSDL::Generator::XSD;
25 my $generator = SOAP::WSDL::Generator::Template::XSD->new({
26 prefix_resolver_class => 'MyPrefixResolver',
27 });
28
30 Prefix resolver class for SOAP::WSDL's code generator. You may subclass
31 it to apply some custom prefix resolving logic.
32
33 Subclasses must implement the following methods:
34
35 • resolve_prefix
36
37 sub resolve_prefix {
38 my ($self, $namespace, $node) = @_;
39 # ...
40 }
41
42 resolve_prefix is expected to return a (perl class) prefix. It is
43 called with the following parameters:
44
45 NAME DESCRIPTION
46 -----------------------------------------------------------------------------
47 type One of (server|interface|typemap|type|element|attribute)
48 namespace The targetNamespace of the node to generate a prefix for.
49 node The node to generate a prefix for
50
51 You usually just need type and namespace for prefix resolving. node
52 is provided for rather funky setups, where you have to choose
53 different prefixes based on type names or whatever.
54
55 Node may be of any of the following classes:
56
57 SOAP::WSDL::Service
58 SOAP::WSDL::XSD::Attribute
59 SOAP::WSDL::XSD::Element
60 SOAP::WSDL::XSD::Type
61
62 Note that both namespace and node may be undef - you should test
63 for definedness before doing anything fancy with them.
64
65 If you want your prefixes to represent perl class hierarchies, they
66 should end with '::'.
67
68 Example:
69
70 Imagine you're generating interfaces for the Acme Pet Shop. Acme
71 Corp. has set up their datatypes to be global across all interfaces
72 (and products), while elements are local to the product (the Pet
73 Shop in the example). All elements are in the urn:Acme namespace.
74
75 In addition, there are types in the namespace urn:Acme:Goods, which
76 should go into the same namespace as types, but be prefixed with
77 'Goods_'
78
79 You may want prefixes (roughly) like this:
80
81 Interfaces: Acme::Client::PetShop::
82 Server: Acme::Server::PetShop::
83 Types: Acme::Types::
84 Types (Goods): Acme::Types::Goods_
85 Elements: Acme::Elements::PetShop::
86 Typemaps: Acme::Typemaps::PetShop::
87
89 You cannot suffix your types by some rule yet...
90
92 Copyright 2008 Martin Kutter.
93
94 This file is part of SOAP-WSDL. You may distribute/modify it under the
95 same terms as perl itself
96
98 Martin Kutter <martin.kutter fen-net.de>
99
101 $Rev: 583 $
102 $LastChangedBy: kutterma $
103 $Id: $
104 $HeadURL: $
105
106
107
108perl v5.32.1 2021-S0O1A-P2:7:WSDL::Generator::PrefixResolver(3)