import SOAP-WSDL 2.00.05 from CPAN

git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00.05
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.05.tar.gz
This commit is contained in:
Martin Kutter
2008-07-13 11:36:11 -08:00
committed by Michael G. Schwern
parent c3e3d1908e
commit c2ac24dd0f
109 changed files with 725 additions and 2095 deletions

View File

@@ -5,7 +5,7 @@ $build = Module::Build->new(
create_makefile_pl => 'small', create_makefile_pl => 'small',
dist_abstract => 'SOAP with WSDL support', dist_abstract => 'SOAP with WSDL support',
dist_name => 'SOAP-WSDL', dist_name => 'SOAP-WSDL',
dist_version => '2.00.04', dist_version => '2.00.05',
module_name => 'SOAP::WSDL', module_name => 'SOAP::WSDL',
license => 'artistic', license => 'artistic',
requires => { requires => {

23
Changes
View File

@@ -1,4 +1,4 @@
Release notes for SOAP::WSDL 2.00.04 Release notes for SOAP::WSDL 2.00.05
------- -------
I'm proud to present a new release of SOAP::WSDL. I'm proud to present a new release of SOAP::WSDL.
@@ -36,6 +36,26 @@ Features:
The following changes have been made: The following changes have been made:
2.00.05
The following bugs have been fixed (the numbers in square brackets are the
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):
The numbers with # are CPAN RT IDs (http://rt.cpan.org/).
* [ 2014482 ] Big-O memory hole when parsing WSDL
SOAP::WSDL still leaks memory when using SOAP::Lite's transport backend
This is to be fixed in 0.710.08 in SOAP::Lite
* #36865 wsdl2perl.pl fails on Expat error
Resolved by dropping a note for Solaris in README
* [ 2005693 ] <maxLength fixed ="true"> causes error
The >fixed< attribute is now recognized (but has no effect yet)
The following uncategorized improvements have been made:
* added missing Class::Std::Storable::Fast import flags to
SOAP::WSDL::XSD::Typelib::Builtin::IDREFS
* some code cleanup
2.00.04 2.00.04
The following bugs have been fixed (the numbers in square brackets are the The following bugs have been fixed (the numbers in square brackets are the
@@ -77,6 +97,7 @@ The following bugs have been fixed (the numbers in square brackets are the
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921): tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):
The numbers with # are CPAN RT IDs (http://rt.cpan.org/). The numbers with # are CPAN RT IDs (http://rt.cpan.org/).
* [ 1963613 ] ComplexTypes die on ->can('FOOBAR');
* [ 1943667 ] Error parsing complexType/extension * [ 1943667 ] Error parsing complexType/extension
* [ 1960650 ] multi-level inheritance of complexTypes fails * [ 1960650 ] multi-level inheritance of complexTypes fails
* [ 1960319 ] ComplexType as_hash_ref returns objects on maximum depth * [ 1960319 ] ComplexType as_hash_ref returns objects on maximum depth

View File

@@ -13,6 +13,8 @@ benchmark/XSD/strftime.pl
bin/wsdl2perl.pl bin/wsdl2perl.pl
Build.PL Build.PL
Changes Changes
covered_by.pl
covering.pl
example/cgi-bin/helloworld.pl example/cgi-bin/helloworld.pl
example/cgi-bin/person.pl example/cgi-bin/person.pl
example/fortune.pl example/fortune.pl
@@ -20,6 +22,9 @@ example/genericbarcode.pl
example/hello.pl example/hello.pl
example/hello_compile.pl example/hello_compile.pl
example/hello_lite.pl example/hello_lite.pl
example/leaktest/hello_wsdl.pl
example/leaktest/leak.pl
example/leaktest/parse.pl
example/lib/MyElements/CountCookies.pm example/lib/MyElements/CountCookies.pm
example/lib/MyElements/CountCookiesResponse.pm example/lib/MyElements/CountCookiesResponse.pm
example/lib/MyElements/GenerateBarCode.pm example/lib/MyElements/GenerateBarCode.pm
@@ -270,8 +275,6 @@ MANIFEST This list of files
META.yml META.yml
MIGRATING MIGRATING
README README
SOAP-WSDL-2.00.01.ppd
SOAP-WSDL-2.00.01.zip
t/002_parse_wsdl.t t/002_parse_wsdl.t
t/003_wsdl_based_serializer.t t/003_wsdl_based_serializer.t
t/006_client.t t/006_client.t
@@ -281,6 +284,7 @@ t/011_simpleType.t
t/012_element.t t/012_element.t
t/013_complexType.t t/013_complexType.t
t/016_client_object.t t/016_client_object.t
t/094_cpan_meta.t
t/095_copying.t t/095_copying.t
t/096_characters.t t/096_characters.t
t/097_kwalitee.t t/097_kwalitee.t
@@ -332,9 +336,6 @@ t/acceptance/wsdl/WSDLParser/imported.xsd
t/acceptance/wsdl/WSDLParser/xsd_import_no_location.wsdl t/acceptance/wsdl/WSDLParser/xsd_import_no_location.wsdl
t/acceptance/wsdl/WSDLParser_import_loop.wsdl t/acceptance/wsdl/WSDLParser_import_loop.wsdl
t/contributed.wsdl t/contributed.wsdl
t/covered-by.txt
t/covered.txt
t/covered/covered-0.01.db
t/lib/Mod_Perl2Test.pm t/lib/Mod_Perl2Test.pm
t/lib/MyComplexType.pm t/lib/MyComplexType.pm
t/lib/MyElement.pm t/lib/MyElement.pm
@@ -364,6 +365,7 @@ t/SOAP/WSDL/05_simpleType-union.t
t/SOAP/WSDL/06_keep_alive.t t/SOAP/WSDL/06_keep_alive.t
t/SOAP/WSDL/11_helloworld.NET.t t/SOAP/WSDL/11_helloworld.NET.t
t/SOAP/WSDL/12_binding.t t/SOAP/WSDL/12_binding.t
t/SOAP/WSDL/Base.t
t/SOAP/WSDL/Client.t t/SOAP/WSDL/Client.t
t/SOAP/WSDL/Client/Base.t t/SOAP/WSDL/Client/Base.t
t/SOAP/WSDL/Definitions.t t/SOAP/WSDL/Definitions.t
@@ -461,4 +463,5 @@ t/SOAP/WSDL_NO_MESSAGE.wsdl
t/SOAP/WSDL_NO_PORTTYPE.wsdl t/SOAP/WSDL_NO_PORTTYPE.wsdl
t/test.wsdl t/test.wsdl
TEST_COVERAGE TEST_COVERAGE
test_html.pl
TODO TODO

162
META.yml
View File

@@ -1,6 +1,6 @@
--- ---
name: SOAP-WSDL name: SOAP-WSDL
version: 2.00.04 version: 2.00.05
author: author:
- 'Martin Kutter <martin.kutter@fen-net.de>' - 'Martin Kutter <martin.kutter@fen-net.de>'
abstract: SOAP with WSDL support abstract: SOAP with WSDL support
@@ -41,220 +41,220 @@ build_requires:
provides: provides:
SOAP::WSDL: SOAP::WSDL:
file: lib/SOAP/WSDL.pm file: lib/SOAP/WSDL.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Base: SOAP::WSDL::Base:
file: lib/SOAP/WSDL/Base.pm file: lib/SOAP/WSDL/Base.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Binding: SOAP::WSDL::Binding:
file: lib/SOAP/WSDL/Binding.pm file: lib/SOAP/WSDL/Binding.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Client: SOAP::WSDL::Client:
file: lib/SOAP/WSDL/Client.pm file: lib/SOAP/WSDL/Client.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Client::Base: SOAP::WSDL::Client::Base:
file: lib/SOAP/WSDL/Client/Base.pm file: lib/SOAP/WSDL/Client/Base.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Definitions: SOAP::WSDL::Definitions:
file: lib/SOAP/WSDL/Definitions.pm file: lib/SOAP/WSDL/Definitions.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Deserializer::Hash: SOAP::WSDL::Deserializer::Hash:
file: lib/SOAP/WSDL/Deserializer/Hash.pm file: lib/SOAP/WSDL/Deserializer/Hash.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Deserializer::SOM: SOAP::WSDL::Deserializer::SOM:
file: lib/SOAP/WSDL/Deserializer/SOM.pm file: lib/SOAP/WSDL/Deserializer/SOM.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Deserializer::XSD: SOAP::WSDL::Deserializer::XSD:
file: lib/SOAP/WSDL/Deserializer/XSD.pm file: lib/SOAP/WSDL/Deserializer/XSD.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Expat::Base: SOAP::WSDL::Expat::Base:
file: lib/SOAP/WSDL/Expat/Base.pm file: lib/SOAP/WSDL/Expat/Base.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Expat::Message2Hash: SOAP::WSDL::Expat::Message2Hash:
file: lib/SOAP/WSDL/Expat/Message2Hash.pm file: lib/SOAP/WSDL/Expat/Message2Hash.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Expat::MessageParser: SOAP::WSDL::Expat::MessageParser:
file: lib/SOAP/WSDL/Expat/MessageParser.pm file: lib/SOAP/WSDL/Expat/MessageParser.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Expat::MessageStreamParser: SOAP::WSDL::Expat::MessageStreamParser:
file: lib/SOAP/WSDL/Expat/MessageStreamParser.pm file: lib/SOAP/WSDL/Expat/MessageStreamParser.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Expat::WSDLParser: SOAP::WSDL::Expat::WSDLParser:
file: lib/SOAP/WSDL/Expat/WSDLParser.pm file: lib/SOAP/WSDL/Expat/WSDLParser.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Factory::Deserializer: SOAP::WSDL::Factory::Deserializer:
file: lib/SOAP/WSDL/Factory/Deserializer.pm file: lib/SOAP/WSDL/Factory/Deserializer.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Factory::Generator: SOAP::WSDL::Factory::Generator:
file: lib/SOAP/WSDL/Factory/Generator.pm file: lib/SOAP/WSDL/Factory/Generator.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Factory::Serializer: SOAP::WSDL::Factory::Serializer:
file: lib/SOAP/WSDL/Factory/Serializer.pm file: lib/SOAP/WSDL/Factory/Serializer.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Factory::Transport: SOAP::WSDL::Factory::Transport:
file: lib/SOAP/WSDL/Factory/Transport.pm file: lib/SOAP/WSDL/Factory/Transport.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Generator::Iterator::WSDL11: SOAP::WSDL::Generator::Iterator::WSDL11:
file: lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm file: lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Generator::PrefixResolver: SOAP::WSDL::Generator::PrefixResolver:
file: lib/SOAP/WSDL/Generator/PrefixResolver.pm file: lib/SOAP/WSDL/Generator/PrefixResolver.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Generator::Template: SOAP::WSDL::Generator::Template:
file: lib/SOAP/WSDL/Generator/Template.pm file: lib/SOAP/WSDL/Generator/Template.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Generator::Template::Plugin::XSD: SOAP::WSDL::Generator::Template::Plugin::XSD:
file: lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm file: lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Generator::Template::XSD: SOAP::WSDL::Generator::Template::XSD:
file: lib/SOAP/WSDL/Generator/Template/XSD.pm file: lib/SOAP/WSDL/Generator/Template/XSD.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Generator::Visitor: SOAP::WSDL::Generator::Visitor:
file: lib/SOAP/WSDL/Generator/Visitor.pm file: lib/SOAP/WSDL/Generator/Visitor.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Generator::Visitor::Typelib: SOAP::WSDL::Generator::Visitor::Typelib:
file: lib/SOAP/WSDL/Generator/Visitor/Typelib.pm file: lib/SOAP/WSDL/Generator/Visitor/Typelib.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Generator::Visitor::Typemap: SOAP::WSDL::Generator::Visitor::Typemap:
file: lib/SOAP/WSDL/Generator/Visitor/Typemap.pm file: lib/SOAP/WSDL/Generator/Visitor/Typemap.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Message: SOAP::WSDL::Message:
file: lib/SOAP/WSDL/Message.pm file: lib/SOAP/WSDL/Message.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::OpMessage: SOAP::WSDL::OpMessage:
file: lib/SOAP/WSDL/OpMessage.pm file: lib/SOAP/WSDL/OpMessage.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Operation: SOAP::WSDL::Operation:
file: lib/SOAP/WSDL/Operation.pm file: lib/SOAP/WSDL/Operation.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Part: SOAP::WSDL::Part:
file: lib/SOAP/WSDL/Part.pm file: lib/SOAP/WSDL/Part.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Port: SOAP::WSDL::Port:
file: lib/SOAP/WSDL/Port.pm file: lib/SOAP/WSDL/Port.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::PortType: SOAP::WSDL::PortType:
file: lib/SOAP/WSDL/PortType.pm file: lib/SOAP/WSDL/PortType.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::SOAP::Address: SOAP::WSDL::SOAP::Address:
file: lib/SOAP/WSDL/SOAP/Address.pm file: lib/SOAP/WSDL/SOAP/Address.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::SOAP::Body: SOAP::WSDL::SOAP::Body:
file: lib/SOAP/WSDL/SOAP/Body.pm file: lib/SOAP/WSDL/SOAP/Body.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::SOAP::Header: SOAP::WSDL::SOAP::Header:
file: lib/SOAP/WSDL/SOAP/Header.pm file: lib/SOAP/WSDL/SOAP/Header.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::SOAP::HeaderFault: SOAP::WSDL::SOAP::HeaderFault:
file: lib/SOAP/WSDL/SOAP/HeaderFault.pm file: lib/SOAP/WSDL/SOAP/HeaderFault.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::SOAP::Operation: SOAP::WSDL::SOAP::Operation:
file: lib/SOAP/WSDL/SOAP/Operation.pm file: lib/SOAP/WSDL/SOAP/Operation.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::SOAP::Typelib::Fault11: SOAP::WSDL::SOAP::Typelib::Fault11:
file: lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm file: lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Serializer::XSD: SOAP::WSDL::Serializer::XSD:
file: lib/SOAP/WSDL/Serializer/XSD.pm file: lib/SOAP/WSDL/Serializer/XSD.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Server: SOAP::WSDL::Server:
file: lib/SOAP/WSDL/Server.pm file: lib/SOAP/WSDL/Server.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Server::CGI: SOAP::WSDL::Server::CGI:
file: lib/SOAP/WSDL/Server/CGI.pm file: lib/SOAP/WSDL/Server/CGI.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Server::Mod_Perl2: SOAP::WSDL::Server::Mod_Perl2:
file: lib/SOAP/WSDL/Server/Mod_Perl2.pm file: lib/SOAP/WSDL/Server/Mod_Perl2.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Service: SOAP::WSDL::Service:
file: lib/SOAP/WSDL/Service.pm file: lib/SOAP/WSDL/Service.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Transport::HTTP: SOAP::WSDL::Transport::HTTP:
file: lib/SOAP/WSDL/Transport/HTTP.pm file: lib/SOAP/WSDL/Transport/HTTP.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Transport::Loopback: SOAP::WSDL::Transport::Loopback:
file: lib/SOAP/WSDL/Transport/Loopback.pm file: lib/SOAP/WSDL/Transport/Loopback.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::Transport::Test: SOAP::WSDL::Transport::Test:
file: lib/SOAP/WSDL/Transport/Test.pm file: lib/SOAP/WSDL/Transport/Test.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::TypeLookup: SOAP::WSDL::TypeLookup:
file: lib/SOAP/WSDL/TypeLookup.pm file: lib/SOAP/WSDL/TypeLookup.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::Types: SOAP::WSDL::Types:
file: lib/SOAP/WSDL/Types.pm file: lib/SOAP/WSDL/Types.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Annotation: SOAP::WSDL::XSD::Annotation:
file: lib/SOAP/WSDL/XSD/Annotation.pm file: lib/SOAP/WSDL/XSD/Annotation.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Attribute: SOAP::WSDL::XSD::Attribute:
file: lib/SOAP/WSDL/XSD/Attribute.pm file: lib/SOAP/WSDL/XSD/Attribute.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::AttributeGroup: SOAP::WSDL::XSD::AttributeGroup:
file: lib/SOAP/WSDL/XSD/AttributeGroup.pm file: lib/SOAP/WSDL/XSD/AttributeGroup.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::Builtin: SOAP::WSDL::XSD::Builtin:
file: lib/SOAP/WSDL/XSD/Builtin.pm file: lib/SOAP/WSDL/XSD/Builtin.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::ComplexType: SOAP::WSDL::XSD::ComplexType:
file: lib/SOAP/WSDL/XSD/ComplexType.pm file: lib/SOAP/WSDL/XSD/ComplexType.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::Element: SOAP::WSDL::XSD::Element:
file: lib/SOAP/WSDL/XSD/Element.pm file: lib/SOAP/WSDL/XSD/Element.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Enumeration: SOAP::WSDL::XSD::Enumeration:
file: lib/SOAP/WSDL/XSD/Enumeration.pm file: lib/SOAP/WSDL/XSD/Enumeration.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::FractionDigits: SOAP::WSDL::XSD::FractionDigits:
file: lib/SOAP/WSDL/XSD/FractionDigits.pm file: lib/SOAP/WSDL/XSD/FractionDigits.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Group: SOAP::WSDL::XSD::Group:
file: lib/SOAP/WSDL/XSD/Group.pm file: lib/SOAP/WSDL/XSD/Group.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::Length: SOAP::WSDL::XSD::Length:
file: lib/SOAP/WSDL/XSD/Length.pm file: lib/SOAP/WSDL/XSD/Length.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::MaxExclusive: SOAP::WSDL::XSD::MaxExclusive:
file: lib/SOAP/WSDL/XSD/MaxExclusive.pm file: lib/SOAP/WSDL/XSD/MaxExclusive.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::MaxInclusive: SOAP::WSDL::XSD::MaxInclusive:
file: lib/SOAP/WSDL/XSD/MaxInclusive.pm file: lib/SOAP/WSDL/XSD/MaxInclusive.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::MaxLength: SOAP::WSDL::XSD::MaxLength:
file: lib/SOAP/WSDL/XSD/MaxLength.pm file: lib/SOAP/WSDL/XSD/MaxLength.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::MinExclusive: SOAP::WSDL::XSD::MinExclusive:
file: lib/SOAP/WSDL/XSD/MinExclusive.pm file: lib/SOAP/WSDL/XSD/MinExclusive.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::MinInclusive: SOAP::WSDL::XSD::MinInclusive:
file: lib/SOAP/WSDL/XSD/MinInclusive.pm file: lib/SOAP/WSDL/XSD/MinInclusive.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::MinLength: SOAP::WSDL::XSD::MinLength:
file: lib/SOAP/WSDL/XSD/MinLength.pm file: lib/SOAP/WSDL/XSD/MinLength.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::Pattern: SOAP::WSDL::XSD::Pattern:
file: lib/SOAP/WSDL/XSD/Pattern.pm file: lib/SOAP/WSDL/XSD/Pattern.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::Schema: SOAP::WSDL::XSD::Schema:
file: lib/SOAP/WSDL/XSD/Schema.pm file: lib/SOAP/WSDL/XSD/Schema.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::Schema::Builtin: SOAP::WSDL::XSD::Schema::Builtin:
file: lib/SOAP/WSDL/XSD/Schema/Builtin.pm file: lib/SOAP/WSDL/XSD/Schema/Builtin.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::SimpleType: SOAP::WSDL::XSD::SimpleType:
file: lib/SOAP/WSDL/XSD/SimpleType.pm file: lib/SOAP/WSDL/XSD/SimpleType.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::TotalDigits: SOAP::WSDL::XSD::TotalDigits:
file: lib/SOAP/WSDL/XSD/TotalDigits.pm file: lib/SOAP/WSDL/XSD/TotalDigits.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Typelib::Attribute: SOAP::WSDL::XSD::Typelib::Attribute:
file: lib/SOAP/WSDL/XSD/Typelib/Attribute.pm file: lib/SOAP/WSDL/XSD/Typelib/Attribute.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Typelib::AttributeSet: SOAP::WSDL::XSD::Typelib::AttributeSet:
file: lib/SOAP/WSDL/XSD/Typelib/AttributeSet.pm file: lib/SOAP/WSDL/XSD/Typelib/AttributeSet.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::Typelib::Builtin: SOAP::WSDL::XSD::Typelib::Builtin:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Typelib::Builtin::ENTITY: SOAP::WSDL::XSD::Typelib::Builtin::ENTITY:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/ENTITY.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/ENTITY.pm
SOAP::WSDL::XSD::Typelib::Builtin::ID: SOAP::WSDL::XSD::Typelib::Builtin::ID:
@@ -279,14 +279,14 @@ provides:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anySimpleType.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anySimpleType.pm
SOAP::WSDL::XSD::Typelib::Builtin::anyType: SOAP::WSDL::XSD::Typelib::Builtin::anyType:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anyType.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anyType.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::Typelib::Builtin::anyURI: SOAP::WSDL::XSD::Typelib::Builtin::anyURI:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anyURI.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anyURI.pm
SOAP::WSDL::XSD::Typelib::Builtin::base64Binary: SOAP::WSDL::XSD::Typelib::Builtin::base64Binary:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/base64Binary.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/base64Binary.pm
SOAP::WSDL::XSD::Typelib::Builtin::boolean: SOAP::WSDL::XSD::Typelib::Builtin::boolean:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/boolean.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/boolean.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Typelib::Builtin::byte: SOAP::WSDL::XSD::Typelib::Builtin::byte:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/byte.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/byte.pm
SOAP::WSDL::XSD::Typelib::Builtin::date: SOAP::WSDL::XSD::Typelib::Builtin::date:
@@ -339,7 +339,7 @@ provides:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/string.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/string.pm
SOAP::WSDL::XSD::Typelib::Builtin::time: SOAP::WSDL::XSD::Typelib::Builtin::time:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/time.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/time.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Typelib::Builtin::token: SOAP::WSDL::XSD::Typelib::Builtin::token:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/token.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/token.pm
SOAP::WSDL::XSD::Typelib::Builtin::unsignedByte: SOAP::WSDL::XSD::Typelib::Builtin::unsignedByte:
@@ -352,19 +352,19 @@ provides:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedShort.pm file: lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedShort.pm
SOAP::WSDL::XSD::Typelib::ComplexType: SOAP::WSDL::XSD::Typelib::ComplexType:
file: lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm file: lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm
version: 2.1.0 version: 2.00.05
SOAP::WSDL::XSD::Typelib::Element: SOAP::WSDL::XSD::Typelib::Element:
file: lib/SOAP/WSDL/XSD/Typelib/Element.pm file: lib/SOAP/WSDL/XSD/Typelib/Element.pm
version: 2.00.04 version: 2.00.05
SOAP::WSDL::XSD::Typelib::SimpleType: SOAP::WSDL::XSD::Typelib::SimpleType:
file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::Typelib::SimpleType::restriction: SOAP::WSDL::XSD::Typelib::SimpleType::restriction:
file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm
version: 2.00.03 version: 2.00.05
SOAP::WSDL::XSD::WhiteSpace: SOAP::WSDL::XSD::WhiteSpace:
file: lib/SOAP/WSDL/XSD/WhiteSpace.pm file: lib/SOAP/WSDL/XSD/WhiteSpace.pm
version: 2.00.04 version: 2.00.05
generated_by: Module::Build version 0.2808 generated_by: Module::Build version 0.2808
meta-spec: meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.2.html url: http://module-build.sourceforge.net/META-spec-v1.2.html

11
README
View File

@@ -41,4 +41,13 @@ If you don't have Module::Build installed, you may also use
make install make install
Note that Module::Build is the recommended installer - make will not run Note that Module::Build is the recommended installer - make will not run
all tests provided with SOAP-WSDL. all tests provided with SOAP-WSDL.
SOLARIS INSTALLATION NOTES
--------------------------
According to a CPAN RT report http://rt.cpan.org/Ticket/Display.html?id=36865
it may be necessary to check (and possibly update) the expat libraries
required by XML::Parser.
SOAP::WSDL's metadata includes XML::Parser, but it seems that the expat
libraries XML::Parser depends on may slip through missing or outdated.

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<SOFTPKG NAME="SOAP-WSDL-2.00.01" VERSION="2,00,01,0">
<TITLE>SOAP-WSDL-2.00.01</TITLE>
<ABSTRACT>SOAP with WSDL support</ABSTRACT>
<AUTHOR>Martin Kutter &lt;martin.kutter@fen-net.de&gt;</AUTHOR>
<IMPLEMENTATION>
<DEPENDENCY NAME="Data-Dumper" VERSION="0,0,0,0" />
<DEPENDENCY NAME="Scalar-List-Utils" VERSION="0,0,0,0" />
<DEPENDENCY NAME="Class-Std-Fast" VERSION="0,0,5,0" />
<DEPENDENCY NAME="Template-Toolkit" VERSION="0,0,0,0" />
<DEPENDENCY NAME="TimeDate" VERSION="0,0,0,0" />
<OS NAME="linux" />
<ARCHITECTURE NAME="i486-linux-gnu-thread-multi-5.8" />
<CODEBASE HREF="SOAP-WSDL-2.00.01.zip" />
</IMPLEMENTATION>
</SOFTPKG>

Binary file not shown.

View File

@@ -6,12 +6,18 @@
# Note that this shell script requires Devel::CoverX::Covered - if you # Note that this shell script requires Devel::CoverX::Covered - if you
# don't have it, comment out the line noted below # don't have it, comment out the line noted below
# #
cd t/
cover -delete perl -It/lib -MTAP::Harness -MFile::Find::Rule -e '
find . -type f -name '*.t' | xargs -n 1 /usr/bin/perl -MDevel::Cover=-silent,1,-summary,0 -I../lib > /dev/null local $ENV{TEST_VERBOSE} = 1;
TAP::Harness->new({
merge => 1,
lib => [ q{t/lib}, q{lib} ],
switches => [ q{-MDevel::Cover=-ignore,.,-select,^lib/.+,-coverage,statement,-coverage,subroutine,-coverage,condition,-coverage,branch} ],
})->runtests( sort { $a cmp $b } File::Find::Rule->file()->name( q{*.t} )->in( q{t/} ) );
'
# Devel::CoverX::Covered # Devel::CoverX::Covered
covered runs covered runs
cover -ignore_re \.t$ -ignore_re ^lib -coverage="statement" -coverage=condition -coverage=subroutine -coverage="branch" cover -coverage="statement" -coverage=condition -coverage=subroutine -coverage="branch"

20
covered_by.pl Normal file
View File

@@ -0,0 +1,20 @@
use Getopt::Long;
use Pod::Usage;
use File::Basename;
use POSIX;
use Data::Dumper;
use Path::Class;
use Devel::CoverX::Covered::Db;
my $db = Devel::CoverX::Covered::Db->new(
dir => dir('./cover_db')->absolute(),
);
print( "* Covered *\nVersion: " . Devel::CoverX::Covered->VERSION . "\n" );
my @test_file_from = $db->test_files();
for my $test_file (sort @test_file_from) {
print "$test_file\n";
print( "\t", join("\n\t", $db->source_files_covered_by($test_file)) , "\n\n" );
}

58
covering.pl Normal file
View File

@@ -0,0 +1,58 @@
use strict;
use Getopt::Long;
use Pod::Usage;
use File::Basename;
use POSIX;
use Data::Dumper;
use Path::Class;
use Devel::CoverX::Covered::Db;
my $db = Devel::CoverX::Covered::Db->new(
dir => dir('./cover_db')->absolute(),
);
sub covered_subs {
my $db = shift;
my ($covered_file_name, $calling_file_name) = @_;
my %sub_covered;
map { push @{ $sub_covered{ $_->[1] } }, $_->[0] } $db->db->query(
qq{
SELECT ccm.covered_row, ccm.covered_sub_name
FROM covered_calling_metric ccm, file f_covered, file f_calling
WHERE
f_covered.name = ?
AND f_calling.name = ?
AND ccm.calling_file_id = f_calling.file_id
AND ccm.covered_file_id = f_covered.file_id
AND ccm.metric_type_id = ?
GROUP BY ccm.covered_row
ORDER by ccm.covered_sub_name
},
$covered_file_name,
$calling_file_name,
$db->get_metric_type_id("subroutine"),
)->arrays;
return \%sub_covered;
}
print( "* Covered *\nVersion: " . Devel::CoverX::Covered->VERSION . "\n" );
my @covered_files = sort { $a cmp $b } $db->covered_files();
for my $covered_file (sort @covered_files) {
next if $covered_file =~m{\.t$}x;
print "$covered_file\n";
# print( "\t", join("\n\t", $db->test_files_covering($covered_file)) , "\n\n" );
my @test_files = $db->test_files_covering($covered_file);
for my $test_file (@test_files) {
print "\t$test_file\n";
my $covered_subs_of_ref = covered_subs($db, $covered_file, $test_file);
for my $covered_sub (sort keys %{ $covered_subs_of_ref }) {
print "\t\t$covered_sub (line ", join(q{, }, @{ $covered_subs_of_ref->{ $covered_sub } }), ")\n";
}
}
}

View File

@@ -0,0 +1,45 @@
#!/usr/bin/perl -w
use strict;
use warnings;
# use SOAP::Lite 'trace';
use Devel::Leak;
use Devel::Cycle;
use SOAP::WSDL;
my $path = `pwd`; chomp $path;
# I have to lookup the URL from the WSDL
use SOAP::WSDL::Factory::Transport;
SOAP::WSDL::Factory::Transport->register('http' => 'SOAP::WSDL::Transport::HTTP');
my $table;
my $count = Devel::Leak::NoteSV($table);
for (1..10) {
my $soap;
$soap = SOAP::WSDL->new(
wsdl => "file://$path/../wsdl/11_helloworld.wsdl",
);
$count = Devel::Leak::NoteSV($table);
print "SVs: $count\n";
$soap->wsdlinit();
# $count = Devel::Leak::NoteSV($table);
# print "SVs: $count\n";
# $soap->autotype(0);
my $som = $soap->call(
"sayHello",
'sayHello', => { 'name' => 'Your Name',
'givenName' => 'Your given name',
}
);
die $som->fault->{ faultstring } if ($som->fault);
print $som->result, "\n";
undef $som;
# $count = Devel::Leak::NoteSV($table);
# print "SVs: $count\n";
}
#}
sleep 500;

28
example/leaktest/leak.pl Normal file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/perl -w
use strict;
use warnings;
# use SOAP::Lite 'trace';
use Devel::Leak;
use SOAP::WSDL;
use SOAP::WSDL::Definitions;
use SOAP::WSDL::Binding;
my $path = `pwd`; chomp $path;
# I have to lookup the URL from the WSDL
my $table;
my $count = Devel::Leak::NoteSV($table);
for (1..3) {
print "SVs: $count\n";
my $definitions = SOAP::WSDL::Definitions->new({
annotation => 'Foo',
});
$definitions->set_binding(
SOAP::WSDL::Binding->new({ parent => $definitions })
);
undef $definitions;
$count = Devel::Leak::NoteSV($table);
}
print "SVs: $count\n";

16
example/leaktest/parse.pl Normal file
View File

@@ -0,0 +1,16 @@
use SOAP::WSDL::Expat::WSDLParser;
use Devel::Leak;
my $xml = `cat ../wsdl/11_helloworld.wsdl`;
my ($table, $count);
for (1..5) {
$count = Devel::Leak::NoteSV($table);
print "SV: $count \n";
my $parser = SOAP::WSDL::Expat::WSDLParser->new();
$parser->parse_string($xml);
my $data = $parser->get_data();
undef $parser;
undef $data;
}

View File

@@ -14,7 +14,7 @@ use Class::Std::Fast constructor => 'none';
use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType; use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType;
use LWP::UserAgent; use LWP::UserAgent;
use version; our $VERSION= qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %no_dispatch_of :ATTR(:name<no_dispatch>); my %no_dispatch_of :ATTR(:name<no_dispatch>);
my %wsdl_of :ATTR(:name<wsdl>); my %wsdl_of :ATTR(:name<wsdl>);
@@ -270,7 +270,7 @@ sub _wsdl_init_methods :PRIVATE {
# on_action is a no-op and just here for compatibility reasons. # on_action is a no-op and just here for compatibility reasons.
# It returns the first parameter to allow method chaining. # It returns the first parameter to allow method chaining.
sub on_action { return shift }; sub on_action { return shift }
sub call { sub call {
my ($self, $method, @data_from) = @_; my ($self, $method, @data_from) = @_;
@@ -299,7 +299,7 @@ sub call {
&& ( ! $no_dispatch_of{ $ident } ) ) { && ( ! $no_dispatch_of{ $ident } ) ) {
require SOAP::WSDL::Deserializer::SOM; require SOAP::WSDL::Deserializer::SOM;
$client->set_deserializer( SOAP::WSDL::Deserializer::SOM->new() ); $client->set_deserializer( SOAP::WSDL::Deserializer::SOM->new() );
}; }
my $method_info = $method_info_of{ $ident }->{ $method }; my $method_info = $method_info_of{ $ident }->{ $method };
@@ -830,9 +830,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 694 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: WSDL.pm 694 2008-05-25 21:06:56Z kutterma $ $Id: WSDL.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL.pm $
=cut =cut

View File

@@ -1,11 +1,11 @@
package SOAP::WSDL::Base; package SOAP::WSDL::Base;
use strict; use strict; use warnings;
use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use List::Util qw(first); use List::Util;
use Scalar::Util;
use Carp qw(croak carp confess); use Carp qw(croak carp confess);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %id_of :ATTR(:name<id> :default<()>); my %id_of :ATTR(:name<id> :default<()>);
my %lang_of :ATTR(:name<lang> :default<()>); my %lang_of :ATTR(:name<lang> :default<()>);
@@ -15,7 +15,7 @@ my %documentation_of :ATTR(:name<documentation> :default<()>);
my %annotation_of :ATTR(:name<annotation> :default<()>); my %annotation_of :ATTR(:name<annotation> :default<()>);
my %targetNamespace_of :ATTR(:name<targetNamespace> :default<()>); my %targetNamespace_of :ATTR(:name<targetNamespace> :default<()>);
my %xmlns_of :ATTR(:name<xmlns> :default<{}>); my %xmlns_of :ATTR(:name<xmlns> :default<{}>);
my %parent_of :ATTR(:name<parent> :default<()>); my %parent_of :ATTR(:get<parent> :default<()>);
my %namespaces_of :ATTR(:default<{}>); my %namespaces_of :ATTR(:default<{}>);
@@ -23,34 +23,42 @@ sub namespaces {
return shift->get_xmlns(); return shift->get_xmlns();
} }
sub BUILD {
my ($self, $ident, $arg_ref) = @_;
if (defined $arg_ref->{ parent }) {
$parent_of{ $ident } = delete $arg_ref->{ parent },
Scalar::Util::weaken($parent_of{ $ident });
}
}
sub START { sub START {
my ($self, $ident, $arg_ref) = @_; my ($self, $ident, $arg_ref) = @_;
$xmlns_of{ $ident }->{ 'xml' } = 'http://www.w3.org/XML/1998/namespace'; $xmlns_of{ $ident }->{ 'xml' } = 'http://www.w3.org/XML/1998/namespace';
$namespaces_of{ $ident }->{ '#default' } = $self->get_xmlns()->{ '#default' }; $namespaces_of{ $ident }->{ '#default' } = $self->get_xmlns()->{ '#default' };
$namespaces_of{ $ident }->{ 'xml' } = 'http://www.w3.org/XML/1998/namespace'; $namespaces_of{ $ident }->{ 'xml' } = 'http://www.w3.org/XML/1998/namespace';
}
sub DEMOLISH {
my $self = shift;
# delete upward references
delete $parent_of{ ${ $self } };
return;
} }
# #
#sub STORABLE_freeze_pre :CUMULATIVE {}; # set_parent is hand-implemented to break up (weaken) the circular reference
#sub STORABLE_freeze_post :CUMULATIVE {}; # between an object and it's parent
#sub STORABLE_thaw_pre :CUMULATIVE {}; #
#sub STORABLE_thaw_post :CUMULATIVE { return $_[0] }; sub set_parent {
$parent_of{ ${ $_[0]} } = $_[1];
Scalar::Util::weaken($parent_of{ ${ $_[0]} });
}
# _accept is here to be called by visitor.
# The visitor pattern is a level of indirection - here the visitor calls
# $object->_accept($visitor) on each object, which in turn calls
# $visitor->visit_$class( $object ) where $class is the object's class.
#
sub _accept { sub _accept {
my $self = shift; my $self = shift;
my $class = ref $self; my $class = ref $self;
$class =~ s{ \A SOAP::WSDL:: }{}xms; $class =~ s{ \A SOAP::WSDL:: }{}xms;
$class =~ s{ (:? :: ) }{_}gxms; $class =~ s{ (:? :: ) }{_}gxms;
my $method = "visit_$class"; my $method = "visit_$class";
no strict qw(refs); ## no critic ProhibitNoStrict no strict qw(refs);
return shift->$method( $self ); return shift->$method( $self );
} }
@@ -65,13 +73,12 @@ sub AUTOMETHOD {
if ($subname =~s{^push_}{}xms) { if ($subname =~s{^push_}{}xms) {
my $getter = "get_$subname"; my $getter = "get_$subname";
my $setter = "set_$subname"; my $setter = "set_$subname";
## Checking here is paranoid - will fail fatally if # Checking here is paranoid - will fail fatally if there is no setter.
## there is no setter... # And we would have to check getters, too.
## And we would have to check getters, too. # Maybe do it the Conway way via the Symbol table...
## Maybe do it the Conway way via the Symbol table... # ... can is way slow...
## ... can is way slow...
return sub { return sub {
no strict qw(refs); ## no critic ProhibitNoStrict no strict qw(refs);
my $old_value = $self->$getter(); my $old_value = $self->$getter();
# Listify if not a list ref # Listify if not a list ref
$old_value = $old_value ? [ $old_value ] : [] if not ref $old_value; $old_value = $old_value ? [ $old_value ] : [] if not ref $old_value;
@@ -85,7 +92,7 @@ sub AUTOMETHOD {
elsif ($subname =~s {^find_}{get_}xms) { elsif ($subname =~s {^find_}{get_}xms) {
@values = @{ $values[0] } if ref $values[0] eq 'ARRAY'; @values = @{ $values[0] } if ref $values[0] eq 'ARRAY';
return sub { return sub {
return first { return List::Util::first {
$_->get_targetNamespace() eq $values[0] && $_->get_targetNamespace() eq $values[0] &&
$_->get_name() eq $values[1] $_->get_name() eq $values[1]
} }
@@ -101,10 +108,6 @@ sub AUTOMETHOD {
}; };
} }
# return if called from can();
my @caller = caller(2);
return if ($caller[3] eq 'Class::Std::Fast::__ANON__');
# confess "$subname not found in class " . ref $self;
return; return;
} }

View File

@@ -2,10 +2,10 @@ package SOAP::WSDL::Binding;
use strict; use strict;
use warnings; use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use List::Util qw(first);
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %operation_of :ATTR(:name<operation> :default<()>); my %operation_of :ATTR(:name<operation> :default<()>);
my %type_of :ATTR(:name<type> :default<()>); my %type_of :ATTR(:name<type> :default<()>);

View File

@@ -11,7 +11,7 @@ use SOAP::WSDL::Factory::Serializer;
use SOAP::WSDL::Factory::Transport; use SOAP::WSDL::Factory::Transport;
use SOAP::WSDL::Expat::MessageParser; use SOAP::WSDL::Expat::MessageParser;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %class_resolver_of :ATTR(:name<class_resolver> :default<()>); my %class_resolver_of :ATTR(:name<class_resolver> :default<()>);
my %no_dispatch_of :ATTR(:name<no_dispatch> :default<()>); my %no_dispatch_of :ATTR(:name<no_dispatch> :default<()>);
@@ -20,7 +20,7 @@ my %outputxml_of :ATTR(:name<outputxml> :default<()>);
my %transport_of :ATTR(:name<transport> :default<()>); my %transport_of :ATTR(:name<transport> :default<()>);
my %endpoint_of :ATTR(:name<endpoint> :default<()>); my %endpoint_of :ATTR(:name<endpoint> :default<()>);
my %soap_version_of :ATTR(:get<soap_version> :init_attr<soap_version> :default<'1.1'>); my %soap_version_of :ATTR(:get<soap_version> :init_attr<soap_version> :default<1.1>);
my %on_action_of :ATTR(:name<on_action> :default<()>); my %on_action_of :ATTR(:name<on_action> :default<()>);
my %content_type_of :ATTR(:name<content_type> :default<text/xml; charset=utf8>); #/#trick editors my %content_type_of :ATTR(:name<content_type> :default<text/xml; charset=utf8>); #/#trick editors
@@ -395,9 +395,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 677 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: Client.pm 677 2008-05-18 20:17:56Z kutterma $ $Id: Client.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client.pm $
=cut =cut

View File

@@ -4,7 +4,7 @@ use warnings;
use base 'SOAP::WSDL::Client'; use base 'SOAP::WSDL::Client';
use Scalar::Util qw(blessed); use Scalar::Util qw(blessed);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
sub call { sub call {
my ($self, $method, $body, $header) = @_; my ($self, $method, $body, $header) = @_;
@@ -22,7 +22,7 @@ sub call {
# parameters given # parameters given
my @part_from = (); my @part_from = ();
foreach my $class (@{ $method->{ body }->{ parts } }) { foreach my $class (@{ $method->{ body }->{ parts } }) {
eval "require $class" || die $@; eval "require $class" || die $@; ## no critic (ProhibitStringyEval)
push @part_from, $class->new(shift(@body_from) || {}); push @part_from, $class->new(shift(@body_from) || {});
} }
@@ -33,10 +33,10 @@ sub call {
# if we have a header # if we have a header
if (%{ $method->{ header } }) { if (%{ $method->{ header } }) {
# trat non object special - as above, but only for one # treat non object special - as above, but only for one
if (not blessed $header) { if (not blessed $header) {
my $class = $method->{ header }->{ parts }->[0]; my $class = $method->{ header }->{ parts }->[0];
eval "require $class" || die $@; eval "require $class" || die $@; ## no critic (ProhibitStringyEval)
$header = $class->new($header); $header = $class->new($header);
} }
} }
@@ -85,9 +85,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 689 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: Base.pm 689 2008-05-23 22:11:46Z kutterma $ $Id: Base.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client/Base.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client/Base.pm $
=cut =cut

View File

@@ -1,26 +1,22 @@
package SOAP::WSDL::Definitions; package SOAP::WSDL::Definitions;
use utf8;
use strict; use strict;
use warnings; use warnings;
use Carp;
use File::Basename;
use File::Path;
use List::Util qw(first); use List::Util qw(first);
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %types_of :ATTR(:name<types> :default<[]>); my %types_of :ATTR(:name<types> :default<[]>);
my %message_of :ATTR(:name<message> :default<[]>); my %message_of :ATTR(:name<message> :default<[]>);
my %portType_of :ATTR(:name<portType> :default<[]>); my %portType_of :ATTR(:name<portType> :default<[]>);
my %binding_of :ATTR(:name<binding> :default<[]>); my %binding_of :ATTR(:name<binding> :default<[]>);
my %service_of :ATTR(:name<service> :default<[]>); my %service_of :ATTR(:name<service> :default<[]>);
my %namespace_of :ATTR(:name<namespace> :default<()>); my %namespace_of :ATTR(:name<namespace> :default<()>);
# must be attr for Class::Std::Fast::Storable # must be attr for Class::Std::Fast::Storable
my %attributes_of :ATTR(); #my %attributes_of :ATTR();
%attributes_of = ( my %attributes_of = (
binding => \%binding_of, binding => \%binding_of,
message => \%message_of, message => \%message_of,
portType => \%portType_of, portType => \%portType_of,
@@ -44,6 +40,7 @@ BLOCK: {
} }
} }
1; 1;
=pod =pod
@@ -118,9 +115,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 689 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: Definitions.pm 689 2008-05-23 22:11:46Z kutterma $ $Id: Definitions.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Definitions.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Definitions.pm $
=cut =cut

View File

@@ -8,7 +8,7 @@ use SOAP::WSDL::Expat::Message2Hash;
use SOAP::WSDL::Factory::Deserializer; use SOAP::WSDL::Factory::Deserializer;
SOAP::WSDL::Factory::Deserializer->register( '1.1', __PACKAGE__ ); SOAP::WSDL::Factory::Deserializer->register( '1.1', __PACKAGE__ );
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
sub BUILD { sub BUILD {
my ($self, $ident, $args_of_ref) = @_; my ($self, $ident, $args_of_ref) = @_;
@@ -163,9 +163,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 689 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: Hash.pm 689 2008-05-23 22:11:46Z kutterma $ $Id: Hash.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/Hash.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/Hash.pm $
=cut =cut

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Deserializer::SOM;
use strict; use strict;
use warnings; use warnings;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
our @ISA; our @ISA;
eval { eval {
@@ -13,6 +13,18 @@ or die "Cannot load SOAP::Lite.
Cannot deserialize to SOM object without SOAP::Lite. Cannot deserialize to SOM object without SOAP::Lite.
Please install SOAP::Lite."; Please install SOAP::Lite.";
sub deserialize {
my $self = shift;
my $result = eval { $self->SUPER::deserialize(@_) };
if ($@) {
return SOAP::Fault->new(
faultactor => 'soap:Server',
faultstring => $@,
);
}
return $result;
}
sub generate_fault { sub generate_fault {
my ($self, $args_from_ref) = @_; my ($self, $args_from_ref) = @_;
# code, message, detail, actor # code, message, detail, actor
@@ -66,6 +78,17 @@ This may be XML including mixed content, attachements and other XML data not
SOAP::WSDL::Deserializer::SOM is a subclass of L<SOAP::Deserializer|SOAP::Deserializer> SOAP::WSDL::Deserializer::SOM is a subclass of L<SOAP::Deserializer|SOAP::Deserializer>
from the L<SOAP::Lite|SOAP::Lite> package. from the L<SOAP::Lite|SOAP::Lite> package.
=head1 METHODS
=head2 deserialize
Deserializes a XML sting into a SOAP::SOM object. Returns a SOAP::Fault object
on deserialization errors.
=head2 generate_fault
Dies with a SOAP::Fault object.
=head1 USAGE =head1 USAGE
SOAP::WSDL::Deserializer will not autoregister itself - to use it for a particular SOAP::WSDL::Deserializer will not autoregister itself - to use it for a particular
@@ -85,8 +108,8 @@ SOAP version just use the following lines:
=item * No on_fault handler =item * No on_fault handler
You cannot specify what to do when an error occurs - SOAP::WSDL will die You cannot specify what to do when an error occurs - SOAP::WSDL will return
with a SOAP::Fault object on transport errors. a SOAP::Fault object on transport errors.
=back =back
@@ -99,6 +122,9 @@ with a SOAP::Fault object on transport errors.
SOAP::WSDL::Deserializer::SOM will die with a SOAP::Fault object on calls SOAP::WSDL::Deserializer::SOM will die with a SOAP::Fault object on calls
to generate_fault. to generate_fault.
This also means that a SOAP::Fault may be thrown as exception when using
=back =back
=head1 LICENSE AND COPYRIGHT =head1 LICENSE AND COPYRIGHT
@@ -114,9 +140,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 677 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: SOM.pm 677 2008-05-18 20:17:56Z kutterma $ $Id: SOM.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/SOM.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/SOM.pm $
=cut =cut

View File

@@ -5,7 +5,7 @@ use Class::Std::Fast::Storable;
use SOAP::WSDL::SOAP::Typelib::Fault11; use SOAP::WSDL::SOAP::Typelib::Fault11;
use SOAP::WSDL::Expat::MessageParser; use SOAP::WSDL::Expat::MessageParser;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %class_resolver_of :ATTR(:name<class_resolver> :default<()>); my %class_resolver_of :ATTR(:name<class_resolver> :default<()>);
@@ -99,9 +99,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 677 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: XSD.pm 677 2008-05-18 20:17:56Z kutterma $ $Id: XSD.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/XSD.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/XSD.pm $
=cut =cut

View File

@@ -6,7 +6,7 @@ use XML::Parser::Expat;
# TODO: convert to Class::Std::Fast based class - hash based classes suck. # TODO: convert to Class::Std::Fast based class - hash based classes suck.
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
sub new { sub new {
my ($class, $arg_ref) = @_; my ($class, $arg_ref) = @_;
@@ -35,17 +35,23 @@ sub get_uri { return $_[0]->{ uri }; }
sub set_user_agent { $_[0]->{ user_agent } = $_[1]; } sub set_user_agent { $_[0]->{ user_agent } = $_[1]; }
sub get_user_agent { return $_[0]->{ user_agent }; } sub get_user_agent { return $_[0]->{ user_agent }; }
# Mark a URI as "already parsed"
sub set_parsed { sub set_parsed {
my ($self, $uri) = @_; my ($self, $uri) = @_;
$self->{ parsed }->{ $uri } = 1; $self->{ parsed }->{ $uri } = 1;
return; return;
} }
# returns true if a specific URI has already been parsed
sub is_parsed { sub is_parsed {
my ($self, $uri) = @_; my ($self, $uri) = @_;
return exists $self->{ parsed }->{ $uri }; return exists $self->{ parsed }->{ $uri };
} }
# parse a URI. This is the preferred parsing method for WSDL files, as it's
# the only one allowing automatic import resolution
sub parse_uri { sub parse_uri {
my $self = shift; my $self = shift;
my $uri = shift; my $uri = shift;
@@ -74,6 +80,7 @@ sub parse {
$_[0]->{ parser }->release(); $_[0]->{ parser }->release();
}; };
$_[0]->{ parser }->xpcroak( $@ ) if $@; $_[0]->{ parser }->xpcroak( $@ ) if $@;
delete $_[0]->{ parser };
return $_[0]->{ data }; return $_[0]->{ data };
} }
@@ -83,6 +90,7 @@ sub parsefile {
$_[0]->{ parser }->release(); $_[0]->{ parser }->release();
}; };
$_[0]->{ parser }->xpcroak( $@ ) if $@; $_[0]->{ parser }->xpcroak( $@ ) if $@;
delete $_[0]->{ parser };
return $_[0]->{ data }; return $_[0]->{ data };
} }

View File

@@ -4,7 +4,7 @@ use strict;
use warnings; use warnings;
use base qw(SOAP::WSDL::Expat::Base); use base qw(SOAP::WSDL::Expat::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
sub _initialize { sub _initialize {
my ($self, $parser) = @_; my ($self, $parser) = @_;

View File

@@ -1,19 +1,20 @@
#!/usr/bin/perl #!/usr/bin/perl
package SOAP::WSDL::Expat::MessageParser; package SOAP::WSDL::Expat::MessageParser;
use strict; use strict; use warnings;
use warnings;
use Carp qw(croak confess);
use version; our $VERSION = qv('2.00.03');
use SOAP::WSDL::XSD::Typelib::Builtin; use SOAP::WSDL::XSD::Typelib::Builtin;
use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType; use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType;
use base qw(SOAP::WSDL::Expat::Base); use base qw(SOAP::WSDL::Expat::Base);
require Class::Std::Fast; BEGIN { require Class::Std::Fast };
use version; our $VERSION = qv('2.00.05');
# GLOBALS
my $OBJECT_CACHE_REF = Class::Std::Fast::OBJECT_CACHE_REF(); my $OBJECT_CACHE_REF = Class::Std::Fast::OBJECT_CACHE_REF();
# keep track of classes loaded
my %LOADED_OF = (); my %LOADED_OF = ();
sub new { sub new {
@@ -46,7 +47,10 @@ sub class_resolver {
sub load_classes { sub load_classes {
my $self = shift; my $self = shift;
for (values %{ $self->{ class_resolver }->get_typemap }) { return if $LOADED_OF{ $self->{ class_resolver } };
# requires sorting to make sub-packages load after their parent
for (sort values %{ $self->{ class_resolver }->get_typemap }) {
no strict qw(refs); no strict qw(refs);
my $class = $_; my $class = $_;
@@ -54,9 +58,10 @@ sub load_classes {
next if $class eq '__SKIP__'; next if $class eq '__SKIP__';
next if defined *{ "$class\::" }; # check if namespace exists next if defined *{ "$class\::" }; # check if namespace exists
# Require takes a bareword or a file name - we have to take
# the filname road here...
$class =~s{ :: }{/}xmsg; $class =~s{ :: }{/}xmsg;
$class .= '.pm'; require "$class.pm"; ## no critic (RequireBarewordIncludes)
require $class;
} }
$LOADED_OF{ $self->{ class_resolver } } = 1; $LOADED_OF{ $self->{ class_resolver } } = 1;
} }
@@ -106,16 +111,12 @@ sub _initialize {
: (); : ();
# use "globals" for speed # use "globals" for speed
my ($_prefix, $_method, my ($_prefix, $_method, $_class, $_leaf) = ();
$_class, $_leaf) = ();
my $char_handler = sub { my $char_handler = sub {
return if (!$_leaf); # we only want characters in leaf nodes return if (!$_leaf); # we only want characters in leaf nodes
$characters .= $_[1]; # add to characters
$characters .= $_[1]; return; # return void
# if $_[1] =~m{ [^\s] }xms;
return;
}; };
no strict qw(refs); no strict qw(refs);
@@ -194,6 +195,9 @@ sub _initialize {
} }
} }
$depth++; $depth++;
# TODO: Skip content of anyType / any stuff
return; return;
}, },
@@ -319,10 +323,10 @@ the same terms as perl itself
=head1 Repository information =head1 Repository information
$Id: MessageParser.pm 677 2008-05-18 20:17:56Z kutterma $ $Id: MessageParser.pm 728 2008-07-13 19:28:50Z kutterma $
$LastChangedDate: 2008-05-18 22:17:56 +0200 (So, 18 Mai 2008) $ $LastChangedDate: 2008-07-13 21:28:50 +0200 (So, 13 Jul 2008) $
$LastChangedRevision: 677 $ $LastChangedRevision: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageParser.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageParser.pm $

View File

@@ -6,7 +6,7 @@ use XML::Parser::Expat;
use SOAP::WSDL::Expat::MessageParser; use SOAP::WSDL::Expat::MessageParser;
use base qw(SOAP::WSDL::Expat::MessageParser); use base qw(SOAP::WSDL::Expat::MessageParser);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
sub parse_start { sub parse_start {
my $self = shift; my $self = shift;
@@ -69,9 +69,9 @@ the same terms as perl itself
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 701 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: MessageStreamParser.pm 701 2008-06-05 19:19:16Z kutterma $ $Id: MessageStreamParser.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageStreamParser.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageStreamParser.pm $
=cut =cut

View File

@@ -5,7 +5,17 @@ use Carp;
use SOAP::WSDL::TypeLookup; use SOAP::WSDL::TypeLookup;
use base qw(SOAP::WSDL::Expat::Base); use base qw(SOAP::WSDL::Expat::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
#
# Import child elements of a WSDL / XML Schema tree into the current tree
#
# Set the targetNamespace of the imported nodes to $import_namespace
#
# SYNOPSIS
#
# $self->_import_children($name, $imported, $imported, $import_namespace)
#
sub _import_children { sub _import_children {
my ($self, $name, $imported, $importer, $import_namespace) = @_; my ($self, $name, $imported, $importer, $import_namespace) = @_;
@@ -140,6 +150,8 @@ sub _initialize {
# TODO skip non-XML Schema namespace tags # TODO skip non-XML Schema namespace tags
$parser->setHandlers( $parser->setHandlers(
Start => sub { Start => sub {
# handle attrs as list - expat uses dual-vars for looking
# up namespace information, and hash keys don't allow dual vars...
my ($parser, $localname, @attrs) = @_; my ($parser, $localname, @attrs) = @_;
$characters = q{}; $characters = q{};
@@ -174,9 +186,7 @@ sub _initialize {
# remember element for stepping back # remember element for stepping back
push @{ $list }, $current; push @{ $list }, $current;
} }
else {
$self->{ data } = $obj;
}
# set new element (step down) # set new element (step down)
$current = $obj; $current = $obj;
} }
@@ -228,6 +238,11 @@ sub _initialize {
$localname $localname
) || {}; ) || {};
if (! defined $list->[-1]) {
$self->{ data } = $current;
return;
}
return if not ($action->{ type }); return if not ($action->{ type });
if ( $action->{ type } eq 'CLASS' ) { if ( $action->{ type } eq 'CLASS' ) {
$current = pop @{ $list }; $current = pop @{ $list };
@@ -275,7 +290,6 @@ sub _fixup_attrs {
} $parser->new_ns_prefixes(); } $parser->new_ns_prefixes();
push @attrs_from, map { push @attrs_from, map {
$_ =
{ {
Name => defined $parser->namespace($_) Name => defined $parser->namespace($_)
? $parser->namespace($_) . '|' . $_ ? $parser->namespace($_) . '|' . $_
@@ -322,10 +336,10 @@ the same terms as perl itself
=head1 Repository information =head1 Repository information
$Id: WSDLParser.pm 688 2008-05-23 21:01:54Z kutterma $ $Id: WSDLParser.pm 728 2008-07-13 19:28:50Z kutterma $
$LastChangedDate: 2008-05-23 23:01:54 +0200 (Fr, 23 Mai 2008) $ $LastChangedDate: 2008-07-13 21:28:50 +0200 (So, 13 Jul 2008) $
$LastChangedRevision: 688 $ $LastChangedRevision: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/WSDLParser.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/WSDLParser.pm $

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Deserializer;
use strict; use strict;
use warnings; use warnings;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %DESERIALIZER = ( my %DESERIALIZER = (
'1.1' => 'SOAP::WSDL::Deserializer::XSD', '1.1' => 'SOAP::WSDL::Deserializer::XSD',

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Generator;
use strict; use strict;
use warnings; use warnings;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %GENERATOR = ( my %GENERATOR = (
'XSD' => 'SOAP::WSDL::Generator::Template::XSD', 'XSD' => 'SOAP::WSDL::Generator::Template::XSD',

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Serializer;
use strict; use strict;
use warnings; use warnings;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %SERIALIZER = ( my %SERIALIZER = (
'1.1' => 'SOAP::WSDL::Serializer::XSD', '1.1' => 'SOAP::WSDL::Serializer::XSD',
@@ -138,9 +138,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 677 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: Serializer.pm 677 2008-05-18 20:17:56Z kutterma $ $Id: Serializer.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Serializer.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Serializer.pm $
=cut =cut

View File

@@ -1,7 +1,7 @@
package SOAP::WSDL::Factory::Transport; package SOAP::WSDL::Factory::Transport;
use strict; use strict;
use warnings; use warnings;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %registered_transport_of = (); my %registered_transport_of = ();
@@ -243,9 +243,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 679 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: Transport.pm 679 2008-05-18 21:18:03Z kutterma $ $Id: Transport.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Transport.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Transport.pm $
=cut =cut

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Generator::Iterator::WSDL11;
use strict; use warnings; use strict; use warnings;
use Class::Std::Fast; use Class::Std::Fast;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %definitions_of :ATTR(:name<definitions> :default<[]>); my %definitions_of :ATTR(:name<definitions> :default<[]>);
my %nodes_of :ATTR(:name<nodes> :default<[]>); my %nodes_of :ATTR(:name<nodes> :default<[]>);
@@ -74,7 +74,8 @@ my %METHOD_OF = (
? do { ? do {
die "unsupported global type <" die "unsupported global type <"
. $node->get_type . "> found in part ". $node->get_name(); . $node->get_type . "> found in part ". $node->get_name();
$types->find_type( $node->expand($node->get_type) ) ## use this once we can auto-generate an element for RPC bindings
# $types->find_type( $node->expand($node->get_type) )
} }
: (), : (),
$node->get_element() $node->get_element()

View File

@@ -3,7 +3,7 @@ use strict; use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %namespace_prefix_map_of :ATTR(:name<namespace_prefix_map> :default<{}>); my %namespace_prefix_map_of :ATTR(:name<namespace_prefix_map> :default<{}>);
my %namespace_map_of :ATTR(:name<namespace_map> :default<{}>); my %namespace_map_of :ATTR(:name<namespace_map> :default<{}>);

View File

@@ -1,11 +1,11 @@
package SOAP::WSDL::Generator::Template; package SOAP::WSDL::Generator::Template;
use strict; use strict; use warnings;
use Template; use Template;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use Carp; use Carp;
use SOAP::WSDL::Generator::PrefixResolver; use SOAP::WSDL::Generator::PrefixResolver;
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %tt_of :ATTR(:get<tt>); my %tt_of :ATTR(:get<tt>);
my %definitions_of :ATTR(:name<definitions> :default<()>); my %definitions_of :ATTR(:name<definitions> :default<()>);
@@ -39,7 +39,8 @@ sub _process :PROTECTED {
INCLUDE_PATH => $INCLUDE_PATH_of{ $ident }, INCLUDE_PATH => $INCLUDE_PATH_of{ $ident },
OUTPUT_PATH => $OUTPUT_PATH_of{ $ident }, OUTPUT_PATH => $OUTPUT_PATH_of{ $ident },
PLUGIN_BASE => 'SOAP::WSDL::Generator::Template::Plugin', PLUGIN_BASE => 'SOAP::WSDL::Generator::Template::Plugin',
); )
or die Template->error();
$tt->process( $template, $tt->process( $template,
{ {
@@ -68,4 +69,4 @@ sub _process :PROTECTED {
or croak $INCLUDE_PATH_of{ $ident }, '\\', $template, ' ', $tt->error(); or croak $INCLUDE_PATH_of{ $ident }, '\\', $template, ' ', $tt->error();
} }
1; 1;

View File

@@ -4,7 +4,7 @@ use warnings;
use Carp qw(confess); use Carp qw(confess);
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %namespace_prefix_map_of :ATTR(:name<namespace_prefix_map> :default<{}>); my %namespace_prefix_map_of :ATTR(:name<namespace_prefix_map> :default<{}>);
my %namespace_map_of :ATTR(:name<namespace_map> :default<{}>); my %namespace_map_of :ATTR(:name<namespace_map> :default<{}>);

View File

@@ -1,11 +1,11 @@
package SOAP::WSDL::Generator::Template::XSD; package SOAP::WSDL::Generator::Template::XSD;
use strict; use strict; use warnings;
use Template; use Template;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use File::Basename; use File::Basename;
use File::Spec; use File::Spec;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
use SOAP::WSDL::Generator::Visitor::Typemap; use SOAP::WSDL::Generator::Visitor::Typemap;
use SOAP::WSDL::Generator::Visitor::Typelib; use SOAP::WSDL::Generator::Visitor::Typelib;

View File

@@ -3,7 +3,7 @@ use strict;
use warnings; use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %definitions_of :ATTR(:name<definitions> :default<()>); my %definitions_of :ATTR(:name<definitions> :default<()>);
my %type_prefix_of :ATTR(:name<type_prefix> :default<()>); my %type_prefix_of :ATTR(:name<type_prefix> :default<()>);

View File

@@ -5,7 +5,7 @@ use base qw(SOAP::WSDL::Generator::Visitor
SOAP::WSDL::Generator::Template SOAP::WSDL::Generator::Template
); );
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
1; 1;

View File

@@ -5,7 +5,7 @@ use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Generator::Visitor); use base qw(SOAP::WSDL::Generator::Visitor);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %path_of :ATTR(:name<path> :default<[]>); my %path_of :ATTR(:name<path> :default<[]>);
my %typemap_of :ATTR(:name<typemap> :default<()>); my %typemap_of :ATTR(:name<typemap> :default<()>);

View File

@@ -32,6 +32,15 @@ this backend:
=head3 Accessing HTTP(S) webservices protected by NTLM authentication =head3 Accessing HTTP(S) webservices protected by NTLM authentication
You need the L<NTLM|NTLM> distribution installed to access webservices protected
by NTLM authentication. More specifically, you need the Authen::NTLM module
from this distribution. Note that this is different from the Authen::NTML
distribution by Yee Man Chan also available from CPAN.
Your user credentials usually need to include the windows domain like this:
testdomain\testuser
Besides passing user credentials as when accessing a web service protected Besides passing user credentials as when accessing a web service protected
by basic or digest authentication, you also need to enforce connection by basic or digest authentication, you also need to enforce connection
keep_alive on the transport backens. keep_alive on the transport backens.
@@ -130,4 +139,4 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
$Id: $ $Id: $
$HeadURL: $ $HeadURL: $
=cut =cut

View File

@@ -90,10 +90,8 @@ can just say
Of course this will only work if MyTypes::NewType has a superset of the old Of course this will only work if MyTypes::NewType has a superset of the old
object class' elements. object class' elements.
.
Future versions will restrict the data returned to the child element's data - Note that XML attribute data is not included in the hash ref output yet.
you should not expect XML attributes to be returned through hash refs.
=head1 HOW IT WORKS =head1 HOW IT WORKS
@@ -405,7 +403,7 @@ supported (yet).
=item * import =item * import
The import includion element requires the schemaLocation attribute for The import inclusion element requires the schemaLocation attribute for
resolving the XML schema to import. Support for the import element is resolving the XML schema to import. Support for the import element is
implemented in L<SOAP::WSDL::Expat::WSDLParser|SOAP::WSDL::Expat::WSDLParser>, implemented in L<SOAP::WSDL::Expat::WSDLParser|SOAP::WSDL::Expat::WSDLParser>,
so alternative parsers may or may not support the import element. so alternative parsers may or may not support the import element.

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %part_of :ATTR(:name<part> :default<[]>); my %part_of :ATTR(:name<part> :default<[]>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %body_of :ATTR(:name<body> :default<[]>); my %body_of :ATTR(:name<body> :default<[]>);
my %header_of :ATTR(:name<header> :default<[]>); my %header_of :ATTR(:name<header> :default<[]>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %operation_of :ATTR(:name<operation> :default<()>); my %operation_of :ATTR(:name<operation> :default<()>);
my %input_of :ATTR(:name<input> :default<[]>); my %input_of :ATTR(:name<input> :default<[]>);

View File

@@ -6,7 +6,7 @@ use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %element_of :ATTR(:name<element> :default<()>); my %element_of :ATTR(:name<element> :default<()>);
my %type_of :ATTR(:name<type> :default<()>); my %type_of :ATTR(:name<type> :default<()>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %binding_of :ATTR(:name<binding> :default<()>); my %binding_of :ATTR(:name<binding> :default<()>);
my %address_of :ATTR(:name<address> :default<()>); my %address_of :ATTR(:name<address> :default<()>);

View File

@@ -2,33 +2,26 @@ package SOAP::WSDL::PortType;
use strict; use strict;
use warnings; use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use List::Util;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %operation_of :ATTR(:name<operation> :default<()>); my %operation_of :ATTR(:name<operation> :default<()>);
my %attributes_of :ATTR(); #
#=head2 find_operation
#
#$port_type->find_operation($namespace, $name)
#
#Returns the PortType's operation object matching the given namespace and
#name
#
%attributes_of = ( sub find_operation {
operation => \%operation_of, return List::Util::first {
); ( $_->get_targetNamespace() eq $_[1] ) && ( $_->get_name() eq $_[2] )
} @{ $operation_of{ ${ $_[0] } } };
# Function factory - we could be writing this method for all %attribute };
# keys, too, but that's just C&P (eehm, Copy & Paste...)
foreach my $method(keys %attributes_of ) {
no strict qw(refs); ## no critic ProhibitNoStrict
# ... btw, we mean this method here...
*{ "find_$method" } = sub {
my ($self, @args) = @_;
my @found_at = grep {
$_->get_targetNamespace() eq $args[0] &&
$_->get_name() eq $args[1]
}
@{ $attributes_of{ $method }->{ ident $self } };
return $found_at[0];
};
}
1; 1;

View File

@@ -4,7 +4,7 @@ use warnings;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %location :ATTR(:name<location> :default<()>); my %location :ATTR(:name<location> :default<()>);
1; 1;

View File

@@ -4,7 +4,7 @@ use warnings;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %use_of :ATTR(:name<use> :default<q{}>); my %use_of :ATTR(:name<use> :default<q{}>);
my %namespace_of :ATTR(:name<namespace> :default<q{}>); my %namespace_of :ATTR(:name<namespace> :default<q{}>);

View File

@@ -4,7 +4,7 @@ use warnings;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %use_of :ATTR(:name<use> :default<q{}>); my %use_of :ATTR(:name<use> :default<q{}>);
my %namespace_of :ATTR(:name<namespace> :default<q{}>); my %namespace_of :ATTR(:name<namespace> :default<q{}>);

View File

@@ -3,6 +3,6 @@ use strict;
use warnings; use warnings;
use base qw(SOAP::WSDL::Header); use base qw(SOAP::WSDL::Header);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
1; 1;

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %style_of :ATTR(:name<style> :default<()>); my %style_of :ATTR(:name<style> :default<()>);
my %soapAction_of :ATTR(:name<soapAction> :default<()>); my %soapAction_of :ATTR(:name<soapAction> :default<()>);

View File

@@ -3,7 +3,7 @@ use strict;
use warnings; use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
use SOAP::WSDL::XSD::Typelib::ComplexType; use SOAP::WSDL::XSD::Typelib::ComplexType;
use SOAP::WSDL::XSD::Typelib::Element; use SOAP::WSDL::XSD::Typelib::Element;
@@ -37,7 +37,7 @@ __PACKAGE__->_factory(
sub get_xmlns { return 'http://schemas.xmlsoap.org/soap/envelope/' }; sub get_xmlns { return 'http://schemas.xmlsoap.org/soap/envelope/' };
__PACKAGE__->__set_name('Fault'); __PACKAGE__->__set_name('Fault');
__PACKAGE__->__set_nillable(); __PACKAGE__->__set_nillable(0);
__PACKAGE__->__set_minOccurs(); __PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs(); __PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref(''); __PACKAGE__->__set_ref('');
@@ -101,9 +101,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 677 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: Fault11.pm 677 2008-05-18 20:17:56Z kutterma $ $Id: Fault11.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm $
=cut =cut

View File

@@ -5,7 +5,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use Scalar::Util qw(blessed); use Scalar::Util qw(blessed);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
use SOAP::WSDL::Factory::Serializer; use SOAP::WSDL::Factory::Serializer;
@@ -129,9 +129,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 677 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: XSD.pm 677 2008-05-18 20:17:56Z kutterma $ $Id: XSD.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Serializer/XSD.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Serializer/XSD.pm $
=cut =cut

View File

@@ -6,7 +6,7 @@ use Scalar::Util qw(blessed);
use SOAP::WSDL::Factory::Deserializer; use SOAP::WSDL::Factory::Deserializer;
use SOAP::WSDL::Factory::Serializer; use SOAP::WSDL::Factory::Serializer;
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %dispatch_to_of :ATTR(:name<dispatch_to> :default<()>); my %dispatch_to_of :ATTR(:name<dispatch_to> :default<()>);
my %action_map_ref_of :ATTR(:name<action_map_ref> :default<{}>); my %action_map_ref_of :ATTR(:name<action_map_ref> :default<{}>);

View File

@@ -12,7 +12,7 @@ use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Server); use base qw(SOAP::WSDL::Server);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
# mostly copied from SOAP::Lite. Unfortunately we can't use SOAP::Lite's CGI # mostly copied from SOAP::Lite. Unfortunately we can't use SOAP::Lite's CGI
# server directly - we would have to swap out it's base class... # server directly - we would have to swap out it's base class...

View File

@@ -16,7 +16,7 @@ use Apache2::Const -compile => qw(
HTTP_LENGTH_REQUIRED HTTP_LENGTH_REQUIRED
); );
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %LOADED_OF = (); my %LOADED_OF = ();

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %port_of :ATTR(:name<port> :default<[]>); my %port_of :ATTR(:name<port> :default<[]>);

View File

@@ -1,8 +1,8 @@
package SOAP::WSDL::Transport::HTTP; package SOAP::WSDL::Transport::HTTP;
use strict; use strict; use warnings;
use base qw(LWP::UserAgent); use base qw(LWP::UserAgent);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
# create methods normally inherited from SOAP::Client # create methods normally inherited from SOAP::Client
SUBFACTORY: { SUBFACTORY: {
@@ -90,9 +90,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 677 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: HTTP.pm 677 2008-05-18 20:17:56Z kutterma $ $Id: HTTP.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Transport/HTTP.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Transport/HTTP.pm $
=cut =cut

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'basic'; use Class::Std::Fast::Storable constructor => 'basic';
use SOAP::WSDL::Factory::Transport; use SOAP::WSDL::Factory::Transport;
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
# register on loading # register on loading
SOAP::WSDL::Factory::Transport->register( http => __PACKAGE__ ); SOAP::WSDL::Factory::Transport->register( http => __PACKAGE__ );

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use SOAP::WSDL::Factory::Transport; use SOAP::WSDL::Factory::Transport;
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
SOAP::WSDL::Factory::Transport->register( http => __PACKAGE__ ); SOAP::WSDL::Factory::Transport->register( http => __PACKAGE__ );
SOAP::WSDL::Factory::Transport->register( https => __PACKAGE__ ); SOAP::WSDL::Factory::Transport->register( https => __PACKAGE__ );

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::TypeLookup;
use strict; use strict;
use warnings; use warnings;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
my %TYPE_FROM = ( my %TYPE_FROM = (
# wsdl: # wsdl:

View File

@@ -5,7 +5,7 @@ use SOAP::WSDL::XSD::Schema::Builtin;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %schema_of :ATTR(:name<schema> :default<[]>); my %schema_of :ATTR(:name<schema> :default<[]>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
#<enumeration value=""> #<enumeration value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
#<attribute #<attribute
# default = string # default = string

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
#<attributeGroup #<attributeGroup
# id = ID # id = ID

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
# only used in SOAP::WSDL - will be obsolete once SOAP::WSDL uses the # only used in SOAP::WSDL - will be obsolete once SOAP::WSDL uses the
# generative approach, too # generative approach, too

View File

@@ -1,12 +1,11 @@
package SOAP::WSDL::XSD::ComplexType; package SOAP::WSDL::XSD::ComplexType;
use strict; use strict;
use warnings; use warnings;
use Carp;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use Scalar::Util qw(blessed); use Scalar::Util qw(blessed);
use base qw/SOAP::WSDL::Base/; use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
# id provided by Base # id provided by Base
# name provided by Base # name provided by Base

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
# id provided by Base # id provided by Base
# name provided by Base # name provided by Base

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
#<enumeration value=""> #<enumeration value="">

View File

@@ -4,8 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
#<pattern value=""> #<pattern value="">
# id provided by Base # id provided by Base

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
#<xs:group name="myModelGroup"> #<xs:group name="myModelGroup">
# <xs:sequence> # <xs:sequence>

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
#<minExclusive value=""> #<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
#<minExclusive value=""> #<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
#<minExclusive value=""> #<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
#<maxLength value=""> #<maxLength value="">
@@ -14,5 +14,6 @@ use version; our $VERSION = qv('2.00.03');
# may be defined as atomic simpleType # may be defined as atomic simpleType
my %value_of :ATTR(:name<value> :default<()>); my %value_of :ATTR(:name<value> :default<()>);
my %fixed_of :ATTR(:name<fixed> :default<()>);
1; 1;

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
#<minExclusive value=""> #<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
#<minExclusive value=""> #<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
#<minExclusive value=""> #<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
#<pattern value=""> #<pattern value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
# child elements # child elements
my %attributeGroup_of :ATTR(:name<attributeGroup> :default<[]>); my %attributeGroup_of :ATTR(:name<attributeGroup> :default<[]>);

View File

@@ -6,10 +6,12 @@ use SOAP::WSDL::XSD::Schema;
use SOAP::WSDL::XSD::Builtin; use SOAP::WSDL::XSD::Builtin;
use base qw(SOAP::WSDL::XSD::Schema); use base qw(SOAP::WSDL::XSD::Schema);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
# all builtin types - add validation (e.g. content restrictions) later... # all builtin types - add validation (e.g. content restrictions) later...
my %BUILTINS = ( my %BUILTINS = (
'anyType' => {},
'anySimpleType' => {},
'anyURI' => {}, 'anyURI' => {},
'boolean' => {}, 'boolean' => {},
'base64Binary' => {}, 'base64Binary' => {},
@@ -98,9 +100,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 701 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: Builtin.pm 701 2008-06-05 19:19:16Z kutterma $ $Id: Builtin.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Schema/Builtin.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Schema/Builtin.pm $
=cut =cut

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %length_of :ATTR(:name<length> :default<[]>); my %length_of :ATTR(:name<length> :default<[]>);
my %minLength_of :ATTR(:name<minLength> :default<[]>); my %minLength_of :ATTR(:name<minLength> :default<[]>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
#<totalDigits value=""> #<totalDigits value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use base qw(SOAP::WSDL::XSD::Typelib::Element); use base qw(SOAP::WSDL::XSD::Typelib::Element);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
sub start_tag { sub start_tag {
# my ($self, $opt, $value) = @_; # my ($self, $opt, $value) = @_;

View File

@@ -3,7 +3,7 @@ use strict;
use warnings; use warnings;
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
sub serialize { sub serialize {
# we work on @_ for performance. # we work on @_ for performance.

View File

@@ -3,7 +3,7 @@ use strict;
use warnings; use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
use SOAP::WSDL::XSD::Typelib::Builtin::anyType; use SOAP::WSDL::XSD::Typelib::Builtin::anyType;
use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType; use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType;

View File

@@ -1,7 +1,7 @@
package SOAP::WSDL::XSD::Typelib::Builtin::IDREFS; package SOAP::WSDL::XSD::Typelib::Builtin::IDREFS;
use strict; use strict;
use warnings; use warnings;
use Class::Std::Fast::Storable; use Class::Std::Fast::Storable constructor => 'none', cache => 1;
use base qw( use base qw(
SOAP::WSDL::XSD::Typelib::Builtin::list SOAP::WSDL::XSD::Typelib::Builtin::list
SOAP::WSDL::XSD::Typelib::Builtin::IDREF); SOAP::WSDL::XSD::Typelib::Builtin::IDREF);

View File

@@ -3,7 +3,7 @@ use strict;
use warnings; use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
sub get_xmlns { 'http://www.w3.org/2001/XMLSchema' }; sub get_xmlns { 'http://www.w3.org/2001/XMLSchema' };

View File

@@ -3,7 +3,7 @@ use strict;
use warnings; use warnings;
use Class::Std::Fast::Storable constructor => 'none', cache => 1; use Class::Std::Fast::Storable constructor => 'none', cache => 1;
use version; our $VERSION= qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType); use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType);

View File

@@ -17,15 +17,12 @@ sub set_value {
[\+\-] \d{2} \: \d{2} $ [\+\-] \d{2} \: \d{2} $
}xms }xms
); );
no warnings qw(uninitialized);
# strptime sets empty values to undef - and strftime doesn't like that... # strptime sets empty values to undef - and strftime doesn't like that...
my @time_from = map { ! defined $_ ? 0 : $_ } strptime($_[1]); my @time_from = map { ! defined $_ ? 0 : $_ } strptime($_[1]);
undef $time_from[$#time_from]; undef $time_from[-1];
my $time_str = do { # no warnings; my $time_str = strftime( '%Y-%m-%dT%H:%M:%S%z', @time_from );
strftime( '%Y-%m-%dT%H:%M:%S%z', @time_from );
};
# insert : in timezone info # insert : in timezone info
substr $time_str, -2, 0, ':'; substr $time_str, -2, 0, ':';

View File

@@ -6,7 +6,7 @@ use Date::Format;
use Class::Std::Fast::Storable constructor => 'none', cache => 1; use Class::Std::Fast::Storable constructor => 'none', cache => 1;
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType); use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType);
use version; our $VERSION=qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
sub set_value { sub set_value {
# use set_value from base class if we have a XML-Time format # use set_value from base class if we have a XML-Time format
@@ -37,7 +37,6 @@ sub set_value {
my $time_str = strftime( '%H:%M:%S%z', @time_from ); my $time_str = strftime( '%H:%M:%S%z', @time_from );
substr $time_str, -2, 0, ':'; substr $time_str, -2, 0, ':';
$_[0]->SUPER::set_value($time_str); $_[0]->SUPER::set_value($time_str);
} }
} }

View File

@@ -10,7 +10,7 @@ require Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anyType); use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anyType);
use version; our $VERSION = qv('2.1.0'); use version; our $VERSION = qv('2.00.05');
my %ELEMENTS_FROM; # order of elements in a class my %ELEMENTS_FROM; # order of elements in a class
my %ATTRIBUTES_OF; # references to value hashes my %ATTRIBUTES_OF; # references to value hashes
@@ -508,9 +508,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 670 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: ComplexType.pm 670 2008-05-14 07:39:14Z kutterma $ $Id: ComplexType.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm $
=cut =cut

View File

@@ -1,9 +1,8 @@
#!/usr/bin/perl
package SOAP::WSDL::XSD::Typelib::Element; package SOAP::WSDL::XSD::Typelib::Element;
use strict; use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use strict;
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
my %NAME; my %NAME;
my %NILLABLE; my %NILLABLE;
@@ -25,15 +24,17 @@ BLOCK: {
_maxOccurs => \%MAX_OCCURS, _maxOccurs => \%MAX_OCCURS,
); );
# create getters / setters for all elements' class data
no strict qw(refs); no strict qw(refs);
while (my ($name, $value) = each %method_lookup ) { while (my ($name, $value) = each %method_lookup ) {
*{ "__set$name" } = sub { *{ "__set$name" } = sub {
# TODO the "or die" is bullshit - at least the error message is wrong... @_ or die "Cannot call __set$name without parameter";
my $class = ref $_[0] || $_[0] or die "Cannot call __set$name without parameter"; my $class = ref $_[0] || $_[0];
$value->{ $class } = $_[1]; $value->{ $class } = $_[1];
}; };
*{ "__get$name" } = sub { *{ "__get$name" } = sub {
my $class = ref $_[0] || $_[0] or die "Cannot call __get$name as function"; @_ or die "Cannot call __set$name as function";
my $class = ref $_[0] || $_[0];
return $value->{ $class }; return $value->{ $class };
}; };
} }
@@ -176,9 +177,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 701 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: Element.pm 701 2008-06-05 19:19:16Z kutterma $ $Id: Element.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/Element.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/Element.pm $
=cut =cut

View File

@@ -1,16 +1,15 @@
#!/usr/bin/perl
package SOAP::WSDL::XSD::Typelib::SimpleType; package SOAP::WSDL::XSD::Typelib::SimpleType;
use strict; use strict; use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin; use SOAP::WSDL::XSD::Typelib::Builtin;
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
package SOAP::WSDL::XSD::Typelib::SimpleType::restriction; package SOAP::WSDL::XSD::Typelib::SimpleType::restriction;
use strict; use strict;
use SOAP::WSDL::XSD::Typelib::Builtin; use SOAP::WSDL::XSD::Typelib::Builtin;
use base qw(SOAP::WSDL::XSD::Typelib::SimpleType); use base qw(SOAP::WSDL::XSD::Typelib::SimpleType);
use version; our $VERSION = qv('2.00.03'); use version; our $VERSION = qv('2.00.05');
1; 1;
__END__ __END__
@@ -133,9 +132,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION =head1 REPOSITORY INFORMATION
$Rev: 677 $ $Rev: 728 $
$LastChangedBy: kutterma $ $LastChangedBy: kutterma $
$Id: SimpleType.pm 677 2008-05-18 20:17:56Z kutterma $ $Id: SimpleType.pm 728 2008-07-13 19:28:50Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm $ $HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm $
=cut =cut

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none'; use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base); use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.04'); use version; our $VERSION = qv('2.00.05');
#<pattern value=""> #<pattern value="">

11
t/094_cpan_meta.t Normal file
View File

@@ -0,0 +1,11 @@
use Test::More;
if (not $ENV{RELEASE_TESTING} ) {
my $msg = 'Author test. Set $ENV{RELEASE_TESTING} to a true value to run.';
plan( skip_all => $msg );
}
eval { require Test::CPAN::Meta }
or plan skip_all => "Test::CPAN::Meta required for testing META.yml";
Test::CPAN::Meta::meta_yaml_ok();

13
t/SOAP/WSDL/Base.t Normal file
View File

@@ -0,0 +1,13 @@
use strict; use warnings;
use Test::More tests => 6;
use_ok qw(SOAP::WSDL::Base);
my $obj = SOAP::WSDL::Base->new();
ok $obj->push_annotation('foo');
ok $obj->push_annotation('foo');
ok $obj->push_annotation('foo');
ok $obj->set_namespace('foo');
ok $obj->push_namespace('foo');

View File

@@ -8,7 +8,7 @@ eval { require SOAP::Lite; 1; } or do {
print "# Using SOAP::Lite $SOAP::Lite::VERSION\n"; print "# Using SOAP::Lite $SOAP::Lite::VERSION\n";
use lib '../../../lib'; use lib '../../../lib';
plan tests => 10; plan tests => 13;
use_ok qw(SOAP::WSDL::Deserializer::SOM); use_ok qw(SOAP::WSDL::Deserializer::SOM);
ok my $deserializer = SOAP::WSDL::Deserializer::SOM->new(); ok my $deserializer = SOAP::WSDL::Deserializer::SOM->new();
@@ -30,8 +30,19 @@ eval { $deserializer->generate_fault({
message => 'Teststring' message => 'Teststring'
}); });
}; };
ok $@->isa('SOAP::Fault');
is $@->faultcode(), 'Test'; my $fault = $@;
is $@->faultactor(), 'soap:Server';
is $@->faultstring(), 'Teststring'; isa_ok $fault, 'SOAP::Fault';
is $fault->faultcode(), 'Test';
is $fault->faultactor(), 'soap:Server';
is $fault->faultstring(), 'Teststring';
$fault = $deserializer->deserialize('');
isa_ok $fault, 'SOAP::Fault';
is $fault->faultactor(), 'soap:Server';
like $fault->faultstring(), qr{no \s element \s found}x;

View File

@@ -1,9 +1,11 @@
use strict; use strict;
use warnings; use warnings;
use Test::More tests => 14; #qw(no_plan); use Test::More tests => 16; #qw(no_plan);
use File::Spec; use File::Spec;
use File::Basename; use File::Basename;
my $HAVE_TEST_WARN =eval { require Test::Warn; };
my $path = File::Spec->rel2abs( dirname __FILE__ ); my $path = File::Spec->rel2abs( dirname __FILE__ );
$path =~s{\\}{/}xg; # stupid windows workaround: $path works with /, but not $path =~s{\\}{/}xg; # stupid windows workaround: $path works with /, but not
# with \ # with \
@@ -16,25 +18,25 @@ my $definitions = $parser->parse_file(
"$path/../../../acceptance/wsdl/WSDLParser.wsdl" "$path/../../../acceptance/wsdl/WSDLParser.wsdl"
); );
use Data::Dumper;
my $schema = $definitions->first_types()->get_schema()->[1]; my $schema = $definitions->first_types()->get_schema()->[1];
my $attr = $schema->get_element()->[0]->first_complexType->first_attribute(); my $attr = $schema->get_element()->[0]->first_complexType->first_attribute();
ok $attr->get_name('testAttribute'), 'attribute name'; ok $attr->get_name('testAttribute'), 'attribute name';
ok $attr->get_type('xs:string'), 'attribute type'; ok $attr->get_type('xs:string'), 'attribute type';
if ($HAVE_TEST_WARN) {
#use SOAP::WSDL::Generator::Template::XSD; Test::Warn::warning_like( sub {
#my $generator = SOAP::WSDL::Generator::Template::XSD->new({ $definitions = $parser->parse_uri(
# definitions => $definitions, "file://$path/../../../acceptance/wsdl/WSDLParser-import.wsdl"
# type_prefix => 'Foo', );
# element_prefix => 'Foo', }, qr{already \s imported}x, 'duplicate import warning')
# typemap_prefix => 'Foo', }
# OUTPUT_PATH => "$path/testlib", else {
#}); SKIP: { skip 'Cannot test warnings without Test::Warn', 1; };
local $SIG{__WARN__} = sub {};
$definitions = $parser->parse_uri( $definitions = $parser->parse_uri(
"file://$path/../../../acceptance/wsdl/WSDLParser-import.wsdl" "file://$path/../../../acceptance/wsdl/WSDLParser-import.wsdl"
); );
}
ok my $service = $definitions->first_service(); ok my $service = $definitions->first_service();
is $service->get_name(), 'Service1', 'wsdl:import service name'; is $service->get_name(), 'Service1', 'wsdl:import service name';
@@ -77,9 +79,20 @@ like $@, qr{\A cannot \s import \s document \s from \s namespace \s
$SIG{ALRM} = sub { die 'looped'}; $SIG{ALRM} = sub { die 'looped'};
alarm 1; alarm 1;
$definitions = $parser->parse_file( if ($HAVE_TEST_WARN) {
"$path/../../../acceptance/wsdl/WSDLParser_import_loop.wsdl" Test::Warn::warning_like( sub {
); $definitions = $parser->parse_uri(
"file://$path/../../../acceptance/wsdl/WSDLParser_import_loop.wsdl"
);
}, qr{already \s imported}x, 'duplicate import warning');
}
else {
SKIP: { skip 'Cannot test warnings without Test::Warn', 1; };
local $SIG{__WARN__} = sub {};
$definitions = $parser->parse_uri(
"file://$path/../../../acceptance/wsdl/WSDLParser_import_loop.wsdl"
);
}
alarm 0; alarm 0;
pass 'import loop'; pass 'import loop';

Some files were not shown because too many files have changed in this diff Show More