Compare commits

...

1 Commits

Author SHA1 Message Date
Martin Kutter
fd0854e34a import SOAP-WSDL 2.00_12 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_12
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_12.tar.gz
2009-12-12 19:47:49 -08:00
28 changed files with 312 additions and 1070 deletions

View File

@@ -4,7 +4,7 @@ Module::Build->new(
create_makefile_pl => 'passthrough',
dist_abstract => 'SOAP with WSDL support',
dist_name => 'SOAP-WSDL',
dist_version => '2.00_11',
dist_version => '2.00_12',
module_name => 'SOAP::WSDL',
license => 'artistic',
requires => {

900
CHANGES
View File

@@ -1,778 +1,122 @@
------------------------------------------------------------------------
r176 | kutterma | 2007-08-31 17:28:29 +0200 (Fr, 31 Aug 2007) | 2 lines
- set SVN keywords
- updated docs
------------------------------------------------------------------------
r175 | kutterma | 2007-08-31 17:05:42 +0200 (Fr, 31 Aug 2007) | 6 lines
- modified SOAP::WSDL::Client to allow passing the SOAPAction header to call()
- modified SOAP::WSDL::Definitions's generator to emit interfaces which include
soap_action and style information for every operation
- re-generated GetWeather example interface
- fixed wsdl2perl.pl (typo)
------------------------------------------------------------------------
r174 | kutterma | 2007-08-31 15:49:04 +0200 (Fr, 31 Aug 2007) | 2 lines
- SOAPAction header is now always quoted.
- updated docs
------------------------------------------------------------------------
r173 | kutterma | 2007-08-31 15:48:10 +0200 (Fr, 31 Aug 2007) | 1 line
- added WS-I basic profile compliance docs. Looks like we're far from being compliant...
------------------------------------------------------------------------
r172 | kutterma | 2007-08-30 22:58:41 +0200 (Do, 30 Aug 2007) | 1 line
- updated TODO list
------------------------------------------------------------------------
r170 | kutterma | 2007-08-30 22:32:56 +0200 (Do, 30 Aug 2007) | 1 line
- added RELEASE_NOTES
------------------------------------------------------------------------
r169 | kutterma | 2007-08-30 21:33:50 +0200 (Do, 30 Aug 2007) | 1 line
- fixed SOAP11 serializer package name
------------------------------------------------------------------------
r168 | kutterma | 2007-08-30 21:32:39 +0200 (Do, 30 Aug 2007) | 4 lines
- added Serializer factory
- modified client to use serializer
- moved old SOAP::WSDL::Envelope into Serializer namespace
- moved Tranport factory into Factory namespace
------------------------------------------------------------------------
r167 | kutterma | 2007-08-30 21:30:17 +0200 (Do, 30 Aug 2007) | 1 line
- fixed Envelope to comply to new serializer scheme
------------------------------------------------------------------------
r166 | kutterma | 2007-08-30 18:44:48 +0200 (Do, 30 Aug 2007) | 1 line
- re-fixed Transport factory
------------------------------------------------------------------------
r165 | kutterma | 2007-08-30 18:43:36 +0200 (Do, 30 Aug 2007) | 1 line
- added HTTP Transport class (really)
------------------------------------------------------------------------
r164 | kutterma | 2007-08-30 14:38:47 +0200 (Do, 30 Aug 2007) | 1 line
- first try at serializer factory.
------------------------------------------------------------------------
r163 | kutterma | 2007-08-30 10:34:00 +0200 (Do, 30 Aug 2007) | 1 line
- updated docs (reference to homepage and forum)
------------------------------------------------------------------------
r162 | kutterma | 2007-08-30 10:29:49 +0200 (Do, 30 Aug 2007) | 1 line
- updated docs
------------------------------------------------------------------------
r161 | kutterma | 2007-08-30 10:17:28 +0200 (Do, 30 Aug 2007) | 2 lines
- modified client to use SOAP::WSDL::Transport factory
- fixed SOAP::WSDL::Transport factory
------------------------------------------------------------------------
r160 | kutterma | 2007-08-30 00:20:09 +0200 (Do, 30 Aug 2007) | 1 line
- added weird SOAP::Lite nameing scheme to registered && SOAP::Lite Transport instantiations
------------------------------------------------------------------------
r159 | kutterma | 2007-08-30 00:00:15 +0200 (Do, 30 Aug 2007) | 1 line
- first try at Transport factory and Transport::HTTP implementation class.
------------------------------------------------------------------------
r158 | kutterma | 2007-08-29 22:36:34 +0200 (Mi, 29 Aug 2007) | 1 line
- updated TODO list
------------------------------------------------------------------------
r153 | kutterma | 2007-08-29 11:24:40 +0200 (Mi, 29 Aug 2007) | 4 lines
- removed XML::LibXML dependencies (is now required, not used in test scripts)
- fixed WSDLParser to switch on expat namespace support when parsing files
- added expat based tests ported from XML::LibXML based WSDL parser tests
- updated docs
------------------------------------------------------------------------
r152 | kutterma | 2007-08-28 23:28:06 +0200 (Di, 28 Aug 2007) | 3 lines
- updated Build.PL
- updated CHANGES
- updated MANIFEST
------------------------------------------------------------------------
r151 | kutterma | 2007-08-28 23:07:14 +0200 (Di, 28 Aug 2007) | 1 line
- fixed namespace test
------------------------------------------------------------------------
r150 | kutterma | 2007-08-28 23:06:00 +0200 (Di, 28 Aug 2007) | 1 line
- renamed tests to better meet their content
------------------------------------------------------------------------
r149 | kutterma | 2007-08-28 23:03:30 +0200 (Di, 28 Aug 2007) | 1 line
- cleanup
------------------------------------------------------------------------
r148 | kutterma | 2007-08-28 23:02:01 +0200 (Di, 28 Aug 2007) | 2 lines
- added namespace test
- removed SAX handler from usage test
------------------------------------------------------------------------
r147 | kutterma | 2007-08-28 22:57:48 +0200 (Di, 28 Aug 2007) | 1 line
- added namespace support
------------------------------------------------------------------------
r146 | kutterma | 2007-08-28 21:56:35 +0200 (Di, 28 Aug 2007) | 1 line
- removed POD directive from template, so the CPAN indexer won't show it...
------------------------------------------------------------------------
r145 | kutterma | 2007-08-28 16:35:18 +0200 (Di, 28 Aug 2007) | 5 lines
- XML::SAX::Base and XML::SAX::ParserFactory and Pod::Simple::Text dependencies to ease testing
- removed unneccessary performance test
- Added Expat-based WSDL parser and test to get rid of XML::LibXML dependency some day...
- needs further work: namespaces are not processed correctly, yet
------------------------------------------------------------------------
r144 | kutterma | 2007-08-14 11:05:40 +0200 (Di, 14 Aug 2007) | 1 line
- added missing prerequisite 'Template' to Build.PL
------------------------------------------------------------------------
r143 | kutterma | 2007-08-13 20:43:20 +0200 (Mo, 13 Aug 2007) | 3 lines
- fixed POD (#1772710)
- fixed Makefile.PL - now try the passthrough variant first. If too many CPAN testers still fail, we may switch to traditional, some day...
- prepared 2.00_10 pre-release
------------------------------------------------------------------------
r142 | kutterma | 2007-08-13 15:55:45 +0200 (Mo, 13 Aug 2007) | 1 line
typo
------------------------------------------------------------------------
r141 | kutterma | 2007-08-12 21:45:51 +0200 (So, 12 Aug 2007) | 2 lines
- corrected POD error
- little speedup in add_FOO methods
------------------------------------------------------------------------
r140 | kutterma | 2007-08-12 21:27:58 +0200 (So, 12 Aug 2007) | 1 line
- corrected POD error
------------------------------------------------------------------------
r139 | kutterma | 2007-08-12 21:15:59 +0200 (So, 12 Aug 2007) | 1 line
- adder repository information
------------------------------------------------------------------------
r138 | kutterma | 2007-08-12 21:13:08 +0200 (So, 12 Aug 2007) | 1 line
- typo
------------------------------------------------------------------------
r137 | kutterma | 2007-08-12 21:12:20 +0200 (So, 12 Aug 2007) | 3 lines
- updated docs
- added svn information
- cosmetics
------------------------------------------------------------------------
r136 | kutterma | 2007-08-12 15:11:50 +0200 (So, 12 Aug 2007) | 2 lines
- fixed element ref="" top level- elements in code generator
- prepared 2.00_09 pre-release
------------------------------------------------------------------------
r135 | kutterma | 2007-08-12 14:44:06 +0200 (So, 12 Aug 2007) | 1 line
- prepared 2.00_09 pre-release
------------------------------------------------------------------------
r134 | kutterma | 2007-08-12 14:30:33 +0200 (So, 12 Aug 2007) | 2 lines
- updated README
- bumped up version
------------------------------------------------------------------------
r133 | kutterma | 2007-08-12 14:27:17 +0200 (So, 12 Aug 2007) | 1 line
- fixed Build.PL to leave Makefile.PL untouched.
------------------------------------------------------------------------
r132 | kutterma | 2007-08-12 14:21:24 +0200 (So, 12 Aug 2007) | 1 line
- now really added Makefile.PL
------------------------------------------------------------------------
r131 | kutterma | 2007-08-12 14:18:59 +0200 (So, 12 Aug 2007) | 3 lines
- fixed documentation for generated code with element ref="" declarations
- fixed element ref="" test for generated code
- added (generated) Makefile.PL to make CPAN testers happy
------------------------------------------------------------------------
r130 | kutterma | 2007-08-10 15:57:12 +0200 (Fr, 10 Aug 2007) | 1 line
- first try at truely callback-based parser (inspired by XML::Compile)
------------------------------------------------------------------------
r129 | kutterma | 2007-08-07 17:53:40 +0200 (Di, 07 Aug 2007) | 1 line
- moved duplicate sub generation out of loop
------------------------------------------------------------------------
r128 | kutterma | 2007-08-07 14:16:28 +0200 (Di, 07 Aug 2007) | 1 line
- bool now returns numerical value in bool context, not "true" or "false" (always true...)
------------------------------------------------------------------------
r127 | kutterma | 2007-08-07 11:45:23 +0200 (Di, 07 Aug 2007) | 1 line
- fixed test to be timezone sensitive
------------------------------------------------------------------------
r126 | kutterma | 2007-08-07 11:09:51 +0200 (Di, 07 Aug 2007) | 1 line
- made test timezone-sensitive
------------------------------------------------------------------------
r125 | kutterma | 2007-08-07 11:09:16 +0200 (Di, 07 Aug 2007) | 1 line
- made test timezone-sensitive
------------------------------------------------------------------------
r124 | kutterma | 2007-08-06 18:05:02 +0200 (Mo, 06 Aug 2007) | 2 lines
- fixed element ref handling in code generator in ComplexType.
- top-level element ref still not supported/tested
------------------------------------------------------------------------
r123 | kutterma | 2007-08-06 17:48:57 +0200 (Mo, 06 Aug 2007) | 1 line
- test now dies and outputs code to eval on eval errors
------------------------------------------------------------------------
r122 | kutterma | 2007-08-06 17:29:46 +0200 (Mo, 06 Aug 2007) | 1 line
- fixed element ref="" handling in complexType
------------------------------------------------------------------------
r121 | kutterma | 2007-08-06 17:29:14 +0200 (Mo, 06 Aug 2007) | 1 line
- added test data for element ref inside complexType
------------------------------------------------------------------------
r120 | kutterma | 2007-08-06 17:28:54 +0200 (Mo, 06 Aug 2007) | 1 line
- added test for element ref inside complexType
------------------------------------------------------------------------
r119 | kutterma | 2007-08-06 17:13:03 +0200 (Mo, 06 Aug 2007) | 1 line
- fixed element ref handling
------------------------------------------------------------------------
r118 | kutterma | 2007-08-06 17:12:47 +0200 (Mo, 06 Aug 2007) | 1 line
- added element ref test data
------------------------------------------------------------------------
r117 | kutterma | 2007-08-06 17:12:36 +0200 (Mo, 06 Aug 2007) | 1 line
- added element ref test
------------------------------------------------------------------------
r116 | kutterma | 2007-08-06 15:47:30 +0200 (Mo, 06 Aug 2007) | 1 line
- refined docs
------------------------------------------------------------------------
r115 | kutterma | 2007-08-06 15:39:39 +0200 (Mo, 06 Aug 2007) | 1 line
- updated docs. Hope the CPAN indexer ignores "=for developers"...
------------------------------------------------------------------------
r114 | kutterma | 2007-08-06 14:12:28 +0200 (Mo, 06 Aug 2007) | 1 line
- removed annoying pod
------------------------------------------------------------------------
r113 | kutterma | 2007-08-05 18:42:09 +0200 (So, 05 Aug 2007) | 5 lines
- removed SOAP::Lite dependency
- updated docs
- changed SOAP::WSDL::XSD::Typelib::ComplexType to require the actuall class for element data, not just the base class (good for finding errors earlier)
- implemented returning SOAP::SOM objects in SOAP::WSDL
- added SOAP::WSDL example(weather_wsdl.pl)
------------------------------------------------------------------------
r112 | kutterma | 2007-08-03 16:12:57 +0200 (Fr, 03 Aug 2007) | 1 line
updated docs
------------------------------------------------------------------------
r111 | kutterma | 2007-08-03 16:12:04 +0200 (Fr, 03 Aug 2007) | 1 line
- added "skip"
------------------------------------------------------------------------
r110 | kutterma | 2007-07-31 22:27:25 +0200 (Di, 31 Jul 2007) | 2 lines
- further work on removing SOAP::Lite dependency
- Note: SOAP::WSDL may be broken !
------------------------------------------------------------------------
r109 | kutterma | 2007-07-31 21:10:40 +0200 (Di, 31 Jul 2007) | 3 lines
- finished move from XSD::Primitive to Builtin
- fixed a few tests
- removed typo namespace from TypeLookupt
------------------------------------------------------------------------
r108 | kutterma | 2007-07-31 21:02:43 +0200 (Di, 31 Jul 2007) | 1 line
- removed unneeded example stuff
------------------------------------------------------------------------
r107 | kutterma | 2007-07-31 20:32:43 +0200 (Di, 31 Jul 2007) | 1 line
- rename to Builtin
------------------------------------------------------------------------
r106 | kutterma | 2007-07-31 20:32:11 +0200 (Di, 31 Jul 2007) | 1 line
- prepared rename to Builtin
------------------------------------------------------------------------
r105 | kutterma | 2007-07-31 13:17:52 +0200 (Di, 31 Jul 2007) | 2 lines
- added configurable ContentType / charset
- maybe split up charset and content type into two methods ?
------------------------------------------------------------------------
r104 | kutterma | 2007-07-31 00:16:15 +0200 (Di, 31 Jul 2007) | 3 lines
- removed optional nanoseconds from dateTime conversions
- added conversion to date objects
- removed fetching WSDL via SOAP::Schema in SOAP::WSDL. SOAP::Lite is still used as base class.
------------------------------------------------------------------------
r103 | kutterma | 2007-07-30 13:25:06 +0200 (Mo, 30 Jul 2007) | 1 line
- updated TODO
------------------------------------------------------------------------
r102 | kutterma | 2007-07-30 13:23:09 +0200 (Mo, 30 Jul 2007) | 2 lines
- updated Build.PL dependencies
- update TODO
------------------------------------------------------------------------
r101 | kutterma | 2007-07-30 13:22:05 +0200 (Mo, 30 Jul 2007) | 2 lines
- added dateTime test
- fixed pod test
------------------------------------------------------------------------
r100 | kutterma | 2007-07-27 16:03:15 +0200 (Fr, 27 Jul 2007) | 2 lines
- allow passing list refs of hash refs to set_value.
I hope I got all combinations by now - start getting ugly...
------------------------------------------------------------------------
r99 | kutterma | 2007-07-26 23:18:35 +0200 (Do, 26 Jul 2007) | 1 line
- added SOAP::Lite usage (to be removed later)
------------------------------------------------------------------------
r98 | kutterma | 2007-07-26 23:16:30 +0200 (Do, 26 Jul 2007) | 3 lines
- removed SOAP::Lite dependency
- added set_trace and tracing facility support via callback in call()
- added fault_class property to allow different Fault classes (somewhen later on)
------------------------------------------------------------------------
r97 | kutterma | 2007-07-25 16:59:49 +0200 (Mi, 25 Jul 2007) | 3 lines
- dateTime now converts date strings into XML date strings
- updated docs
------------------------------------------------------------------------
r96 | kutterma | 2007-07-23 11:17:36 +0200 (Mo, 23 Jul 2007) | 3 lines
- SOAP::WSDL::Definitions::create now
- converts '.' in service names to '::' (.NET class separator to perl class separator)
- outputs Typemaps and Interface classes in UTF8 to allow proper inclusion of UTF8 documentation from WSDL
------------------------------------------------------------------------
r95 | kutterma | 2007-07-23 10:26:59 +0200 (Mo, 23 Jul 2007) | 1 line
- typo
------------------------------------------------------------------------
r94 | kutterma | 2007-07-23 10:11:46 +0200 (Mo, 23 Jul 2007) | 1 line
- typo
------------------------------------------------------------------------
r93 | kutterma | 2007-07-22 23:24:12 +0200 (So, 22 Jul 2007) | 1 line
updated TODO
------------------------------------------------------------------------
r92 | kutterma | 2007-07-22 23:19:15 +0200 (So, 22 Jul 2007) | 3 lines
- WSDLHandler now handles <wsdl:documentation> tags
- SOAP::WSDL::Definitions now includes some usable doc in generated interface classes
- fixed explain in SimpleType, ComplexType and Element (someway)
------------------------------------------------------------------------
r91 | kutterma | 2007-07-22 21:18:21 +0200 (So, 22 Jul 2007) | 1 line
- updated docs
------------------------------------------------------------------------
r90 | kutterma | 2007-07-22 15:42:23 +0200 (So, 22 Jul 2007) | 1 line
- updated docs
------------------------------------------------------------------------
r89 | kutterma | 2007-07-22 15:38:25 +0200 (So, 22 Jul 2007) | 2 lines
- updated docs
- removed useless docs from "internally used only" - modules
------------------------------------------------------------------------
r88 | kutterma | 2007-07-22 09:17:57 +0200 (So, 22 Jul 2007) | 1 line
typo
------------------------------------------------------------------------
r87 | kutterma | 2007-07-21 23:57:46 +0200 (Sa, 21 Jul 2007) | 1 line
- updated docs
------------------------------------------------------------------------
r86 | kutterma | 2007-07-21 23:24:24 +0200 (Sa, 21 Jul 2007) | 5 lines
- removed irritating pod from SOAP::WSDL::XSD::Typelib::Builtin::* classes and put int into SOAP::WSDL::XSD::Typelib::Builtin
- added fast constructor creation BEGIN block to all SOAP::WSDL::XSD::Typelib::Builtin::* classes
- added examples
- updated docs
- prepared 2.00_07 pre-release
------------------------------------------------------------------------
r85 | kutterma | 2007-07-21 18:12:49 +0200 (Sa, 21 Jul 2007) | 4 lines
- added wsdl2perl code generation script - works against FortuneCookie web service at fullerdata.com
- fixed SOAP::WSDL::Client::Base to work as base class for generated classes
- added interface generation facility to SOAP::WSDL::Definitions
- updated docs (a few)
------------------------------------------------------------------------
r84 | kutterma | 2007-07-20 15:37:40 +0200 (Fr, 20 Jul 2007) | 9 lines
- added Expat-based parser
- made Expat-based parser the default
- added fast "new" method to most important "Builtin" types
- added Parser POD
- fixed propagating element names in complex types to element elements - element ref="element" should work on
class level now (don't know whether typelib supports it yet)
- updated tests
- updated HACKING
- prepared 2.00_06 release
------------------------------------------------------------------------
r83 | kutterma | 2007-07-19 13:09:33 +0200 (Do, 19 Jul 2007) | 1 line
- fixed element class generation (removed additional ::)
------------------------------------------------------------------------
r82 | kutterma | 2007-07-17 22:17:02 +0200 (Di, 17 Jul 2007) | 1 line
- updated README and HACKING
------------------------------------------------------------------------
r81 | kutterma | 2007-07-17 22:00:14 +0200 (Di, 17 Jul 2007) | 5 lines
- added parent ref in SOAP::WSDL::Base - now we have a real tree, and maybe can completely support namespaces some day
- replaced grep by List::Util::first where appropriate
- code cleanup
- fixed test for Code Generation
- updated a few tests
------------------------------------------------------------------------
r80 | kutterma | 2007-07-17 17:00:48 +0200 (Di, 17 Jul 2007) | 1 line
- improved pod in generated classes
------------------------------------------------------------------------
r79 | kutterma | 2007-07-17 14:41:44 +0200 (Di, 17 Jul 2007) | 1 line
- made explain look nicer
------------------------------------------------------------------------
r78 | kutterma | 2007-07-15 12:25:03 +0200 (So, 15 Jul 2007) | 7 lines
- SOAP::WSDL::Definitions can now generate
- Typemaps
- Type and Element classes
- fixed SOAP::WSDL::XSD::Typelib::ComplexType to support elements with type="ComplexType" definitions
- moved toClass method in SOAP::WSDL::XSD::ComplexType, Element and SimpleType to to_class and added compatibility wrapper with warning for toClass calls
- added generator test
- updated docs
------------------------------------------------------------------------
r77 | kutterma | 2007-07-14 10:46:54 +0200 (Sa, 14 Jul 2007) | 1 line
- started working on high-level code generator
------------------------------------------------------------------------
r76 | kutterma | 2007-07-13 09:21:33 +0200 (Fr, 13 Jul 2007) | 1 line
- fixed handling of complex data (hashes with lists embedded lists of objects)
------------------------------------------------------------------------
r75 | kutterma | 2007-07-10 12:08:39 +0200 (Di, 10 Jul 2007) | 1 line
- removed unneeded SOAP::Lite calls
------------------------------------------------------------------------
r74 | kutterma | 2007-07-10 12:08:10 +0200 (Di, 10 Jul 2007) | 1 line
- updated to new SOAP::Lite API
------------------------------------------------------------------------
r73 | kutterma | 2007-07-10 12:00:25 +0200 (Di, 10 Jul 2007) | 6 lines
- re-integrated old SOAP::WSDL tests
- updated docs
- SOAP::WSDL::XSD::Typelib::Builtin::string now escapes XML builtin entities on serialization
- SOAP::WSDL::XSD::Element now supports generating classes for elements and types into different namespaces
- SOAP::WSDL::Definitions now supports different namespaces for elements and types when generating typmaps
- 2.00_05 release preparation
------------------------------------------------------------------------
r72 | kutterma | 2007-07-06 11:20:56 +0200 (Fr, 06 Jul 2007) | 1 line
- fixed detail (typo)
------------------------------------------------------------------------
r71 | kutterma | 2007-07-05 16:13:28 +0200 (Do, 05 Jul 2007) | 1 line
- TODO comments added
------------------------------------------------------------------------
r70 | kutterma | 2007-07-04 16:14:50 +0200 (Mi, 04 Jul 2007) | 2 lines
- updated docs
- prepared 2.00_04 release
------------------------------------------------------------------------
r69 | kutterma | 2007-07-04 16:07:54 +0200 (Mi, 04 Jul 2007) | 1 line
- ComplexType now ignores xmlns - TODO: check xmlns, don't ignore...
------------------------------------------------------------------------
r68 | kutterma | 2007-07-04 11:25:31 +0200 (Mi, 04 Jul 2007) | 1 line
- made builtin types with overloads serializable
------------------------------------------------------------------------
r67 | kutterma | 2007-07-04 09:51:06 +0200 (Mi, 04 Jul 2007) | 4 lines
- updated docs
- removed unneeded uses from test
- added Build requirements from tests
- prepared 2.00_03 release
------------------------------------------------------------------------
r66 | kutterma | 2007-07-04 00:06:29 +0200 (Mi, 04 Jul 2007) | 3 lines
- split up builtin type lib into single files for Class::Std::Storable
- fixed more tests
- fixed complexType serialization for non-objecs
------------------------------------------------------------------------
r65 | kutterma | 2007-07-03 16:52:54 +0200 (Di, 03 Jul 2007) | 2 lines
- fixed a few tests
- added performance improvements
------------------------------------------------------------------------
r64 | kutterma | 2007-07-03 15:09:27 +0200 (Di, 03 Jul 2007) | 1 line
- small performance improvements
------------------------------------------------------------------------
r63 | kutterma | 2007-07-03 14:37:28 +0200 (Di, 03 Jul 2007) | 3 lines
- fixed serializing complextypes correctly
- fixed handling has attribute refs in new
- fixed performance problems in MessageHandler
------------------------------------------------------------------------
r62 | kutterma | 2007-07-03 14:37:14 +0200 (Di, 03 Jul 2007) | 1 line
- re-added
------------------------------------------------------------------------
r61 | kutterma | 2007-07-03 14:36:59 +0200 (Di, 03 Jul 2007) | 1 line
------------------------------------------------------------------------
r60 | kutterma | 2007-07-01 09:52:41 +0200 (So, 01 Jul 2007) | 2 lines
- fixed lots of tests
- attic tests may be re-integrated now...
------------------------------------------------------------------------
r59 | kutterma | 2007-06-28 13:07:35 +0200 (Do, 28 Jun 2007) | 1 line
- added ignore for dist tar.gz
------------------------------------------------------------------------
r58 | kutterma | 2007-06-28 13:06:25 +0200 (Do, 28 Jun 2007) | 1 line
- updated buildrequires
------------------------------------------------------------------------
r57 | kutterma | 2007-06-28 13:05:03 +0200 (Do, 28 Jun 2007) | 1 line
- typo
------------------------------------------------------------------------
r56 | kutterma | 2007-06-28 11:15:24 +0200 (Do, 28 Jun 2007) | 1 line
- pre-release 2.00_01
------------------------------------------------------------------------
r55 | kutterma | 2007-06-28 10:23:20 +0200 (Do, 28 Jun 2007) | 1 line
- moved old tests to attic
------------------------------------------------------------------------
r54 | kutterma | 2007-06-28 10:15:41 +0200 (Do, 28 Jun 2007) | 1 line
- fixed a few typos
------------------------------------------------------------------------
r53 | kutterma | 2007-06-28 10:10:41 +0200 (Do, 28 Jun 2007) | 3 lines
- fixed MessageHandler to support deserializing into objects which return false in boolean context
- updated docs
- fixed Fault11 (named detail correctly)
------------------------------------------------------------------------
r52 | kutterma | 2007-06-27 17:36:01 +0200 (Mi, 27 Jun 2007) | 3 lines
- added Fault for SOAP 1.1 implementation
- fixed ComplexType - though it doesn't work quite for faults yet...
------------------------------------------------------------------------
r51 | kutterma | 2007-06-27 13:27:59 +0200 (Mi, 27 Jun 2007) | 13 lines
- added test for sending objects via call()
- modified Client to accept objects of type SOAP::WSDL::XSD::Typelib::Builtin::anyType as message content
without checking the WSDL objects
Note:
- SOAPAction is just guessed - needs to be replaced by something better
- The method should be looked up from the typelib, too, and serialized according to the rules specified in the WSDL
and dumped into the typelib.
- updated to_typelib to include top element
- fixed element and complextype templates for toClass
------------------------------------------------------------------------
r50 | kutterma | 2007-06-27 00:01:32 +0200 (Mi, 27 Jun 2007) | 1 line
- added xsi xmlns to envelope
------------------------------------------------------------------------
r49 | kutterma | 2007-06-26 23:52:18 +0200 (Di, 26 Jun 2007) | 1 line
- cosmetics and a few doc updates
------------------------------------------------------------------------
r48 | kutterma | 2007-06-26 22:47:52 +0200 (Di, 26 Jun 2007) | 2 lines
- refactored element serializing to make it somewhat more consistent
- added nillable implementation for Elements
------------------------------------------------------------------------
r47 | kutterma | 2007-06-26 18:06:59 +0200 (Di, 26 Jun 2007) | 1 line
- removed shebang
------------------------------------------------------------------------
r46 | kutterma | 2007-06-26 18:06:33 +0200 (Di, 26 Jun 2007) | 1 line
- added warnings
------------------------------------------------------------------------
r45 | kutterma | 2007-06-26 17:39:09 +0200 (Di, 26 Jun 2007) | 3 lines
- got toClass working for generating WSDL based type libraries.
- changed typelib base class behavior to qualify first element called.
TODO (a bigger one): Fully support namespaces...
------------------------------------------------------------------------
r44 | kutterma | 2007-06-26 12:10:33 +0200 (Di, 26 Jun 2007) | 14 lines
- changed Typelib::Element to work as attribute of a type (serialize serializes start_tag and end_tag provided by Typelib::Element around it's vontent, if present)
- worked on toClass functionality with embedded templates.
There's much to do - current impl should support:
* <element name="name" type="type"
* <element name="name"><simpleType>
* <element name="name"><complexType>
* <simpleType ...><list>
* <simpleType ...><restriction>
* <complexType ...><all>
* <complexType ...><sequence>
All other variants are not completely supported yet.
------------------------------------------------------------------------
r43 | kutterma | 2007-06-25 18:58:56 +0200 (Mo, 25 Jun 2007) | 1 line
- broke element again...
------------------------------------------------------------------------
r42 | kutterma | 2007-06-25 17:30:34 +0200 (Mo, 25 Jun 2007) | 3 lines
- fixed to_typemap to report atomic simple and complex types correctly
- update tests
- renamed WSDLFilter to WSDLHandler
------------------------------------------------------------------------
r41 | kutterma | 2007-06-25 17:29:41 +0200 (Mo, 25 Jun 2007) | 1 line
------------------------------------------------------------------------
r40 | kutterma | 2007-06-25 14:15:40 +0200 (Mo, 25 Jun 2007) | 2 lines
- Client.pm now uses XML::LibXML as default and falls back on XML::SAX::ParserFactory if not present
- fixed tests
------------------------------------------------------------------------
r39 | kutterma | 2007-06-25 14:07:28 +0200 (Mo, 25 Jun 2007) | 2 lines
- typo in Element
- fixed tests
------------------------------------------------------------------------
r38 | kutterma | 2007-06-25 10:31:20 +0200 (Mo, 25 Jun 2007) | 2 lines
- made WSDLFilter.pm a inside out class and let it run without XML::SAX::Base (This probably breaks a lot of tests - we need to implement XML::LibXML semantics in all tests / classes which use it)
- first swag at to_typemap Typemap generation. to_typemap implemented throughout the WSDL:: modules. Some implementations (Elenenet.pm, ComplexType.pm) need further work for correctly handling atomic simpleType / complexType definitions.
------------------------------------------------------------------------
r37 | kutterma | 2007-06-24 09:15:22 +0200 (So, 24 Jun 2007) | 3 lines
- added test for on-the-fly created ComplexType
- fixed ComplexType factory to really work
- startet working on Element facets
------------------------------------------------------------------------
r36 | kutterma | 2007-06-24 09:14:46 +0200 (So, 24 Jun 2007) | 2 lines
- added test for on-the-fly created ComplexType
- startet working on Element facets
------------------------------------------------------------------------
r35 | kutterma | 2007-06-24 08:13:32 +0200 (So, 24 Jun 2007) | 1 line
- implemented ComplexType as class factory to get rid of the annoying START every subclass had to implement.
------------------------------------------------------------------------
r34 | kutterma | 2007-06-23 23:22:35 +0200 (Sa, 23 Jun 2007) | 2 lines
- added XSD Typelib SimpleType, Element and ComplexType base classes (stereotypes).
ComplexType's not yet complete (no restriction / extension etc. handling).
------------------------------------------------------------------------
r33 | kutterma | 2007-06-23 11:04:56 +0200 (Sa, 23 Jun 2007) | 2 lines
- added SOAP::WSDL::XSD::Typelib::Builtin implementation of builtin XML Schema datatypes with built-in stringification, boolification and numerification.
- SAX::MessageHandler now deserializes simple types in SOAP messages into SOAP::WSDL::XSD::Typelib::Builtin (provided these are named in the ClassResolver...)
------------------------------------------------------------------------
r32 | kutterma | 2007-06-23 02:14:16 +0200 (Sa, 23 Jun 2007) | 4 lines
- added pod
- added ref handling for elements
- added abstract handling for elements (easy...)
- added storing of content model (simpleContent/complexContent) to simpleType and complexType, though the attribute is still ignored in serializing
------------------------------------------------------------------------
r31 | kutterma | 2007-06-23 00:37:18 +0200 (Sa, 23 Jun 2007) | 1 line
- renamed MessageFilter to MessageHandler
------------------------------------------------------------------------
r30 | kutterma | 2007-06-23 00:35:54 +0200 (Sa, 23 Jun 2007) | 1 line
- renamed MessageFilter to MessageHandler
------------------------------------------------------------------------
r29 | kutterma | 2007-06-23 00:35:16 +0200 (Sa, 23 Jun 2007) | 2 lines
- switched to Class::Std::Storable
- renamed MessageFilter to MessageHandler
------------------------------------------------------------------------
r28 | kutterma | 2007-06-22 18:56:28 +0200 (Fr, 22 Jun 2007) | 3 lines
- optimised SOAP::WSDL::SAX::MessageFilter for performance
- moved Typelob into own directory and load it dynamically from test script
- added some pod
------------------------------------------------------------------------
r27 | kutterma | 2007-06-22 15:34:28 +0200 (Fr, 22 Jun 2007) | 5 lines
- modified SOAP::WSDL::XSD lib to allow serializing of object hierarchies
- added SOAP::WSDL::SAX::MessageFilter for creating object hierarchies from SOAP messages
- moved Builtin XML Schema types to SOAP::WSDL:XSD::Schema::Builtin
- added test + benchmark for serializing /deserializing SOAP messages into object trees
- fixed Client to use SOAP::WSDL::Types as typelib, not first SOAP::WSDL::XSD::Schema
------------------------------------------------------------------------
r26 | kutterma | 2007-06-21 23:35:30 +0200 (Do, 21 Jun 2007) | 2 lines
- first swag at a typed SOAP Message parser.
Typelib is still to be implemented...
------------------------------------------------------------------------
r25 | kutterma | 2007-06-21 18:14:49 +0200 (Do, 21 Jun 2007) | 1 line
- added missing files from last commit
------------------------------------------------------------------------
r24 | kutterma | 2007-06-19 00:29:36 +0200 (Di, 19 Jun 2007) | 3 lines
- worked a bit on explain
- introduced handling of multiple schema definitions in one WSDL file
- fixed propagating targetNamespace to child elements in WSDLFilter
------------------------------------------------------------------------
r23 | kutterma | 2007-06-16 14:48:30 +0200 (Sa, 16 Jun 2007) | 1 line
- updated new SOAP::WSDL framework to use inside out classes based on Class::Std (not yet complete)
------------------------------------------------------------------------
r22 | kutterma | 2007-06-12 23:19:41 +0200 (Di, 12 Jun 2007) | 4 lines
- updated a few tests
- fixed a few WSDLs
- fixed handling of elements with minOccurs 0
- fixed setting of minOccurs/maxOccurs for all/sequence complexTypes
------------------------------------------------------------------------
r21 | kutterma | 2007-06-08 21:38:41 +0200 (Fr, 08 Jun 2007) | 2 lines
- updated a few tests
- fixed namespaces in tests
------------------------------------------------------------------------
r19 | kutterma | 2007-05-31 16:58:18 +0200 (Do, 31 Mai 2007) | 10 lines
- first swag at a WSDL-generated Object-tree based SOAP client.
Works as following:
a) a sax filter transforms the sax stream from a wsdl into a perl object tree
b) the perl object tree has methods for performing the following tasks:
a) explain: Tell what services and methods are there, and how to use them
b) serialize: Serialize data structures to the XML defined in the WSDL & schema
c) The client uses the generated XML to call the SOAP Server. Unfortunately, SOAP::Lite
does not allow custom XML to be rendered as a method's "value", so we have to replace
call() completely and generate the envelope on our own (which is not complete yet).
------------------------------------------------------------------------
r9 | kutterma | 2007-05-28 17:08:41 +0200 (Mo, 28 Mai 2007) | 1 line
- first try at bindings support - see t/12/bindings on how we could find out bindings and portname from a target URL
------------------------------------------------------------------------
r4 | kutterma | 2007-05-28 15:15:03 +0200 (Mo, 28 Mai 2007) | 1 line
- move from private repository to sourceforge
------------------------------------------------------------------------
Release notes for SOAP::WSDL 2.00_12
-------
I'm very happy to present a new pre-release version of SOAP::WSDL.
SOAP::WSDL is a toolkit for creating SOAP interfaces in perl.
Features:
* WSDL based SOAP client
o SOAP1.1 support
o Supports document/literal message style/encoding
* Code generator for generating WSDL-based interface classes
o Generated code includes usage documentation for the web service interface
* Easy-to use API. SOAP::WSDL is much easier to use than SOAP::Lite.
o Automatically encodes perl data structures as message data
o Automatically sets HTTP headers right
* SOAP::Lite like look and feel.
o Where possible, SOAP::WSDL mimics SOAP::Lite's API to allow easy migrations
* XML schema based class library for creating data objects
* High-performance XML parser
* Plugin support. SOAP::WSDL can be extended through plugins in various aspects.
The following plugins are supported:
o Transport plugins via SOAP::WSDL::Factory::Transport
o Serializer plugins via SOAP::WSDL::Factory::Serializer
The following changes have been made:
2.00_12
----
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):
* [1787146] SOAP::WSDL still uses XML::LibXML
The superficious usage of XML::LibXML has been removed. XML::LibXML with
sax filter has been replaced by SOAP::WSDL::Expat::WSDLParser.
* [1787054] Test suite requires XML::LibXML in 2.00_11
The test suite no longer requires XML::LibXML to pass.
2.00_11
----
The following features were added (the numbers in square brackets are the
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660924):
* [1767963] Transport plugins via SOAP::WSDL::Factory::Transport.
SOAP::WSDL uses SOAP::Lite's tranport modules as default, with a
lightweight HTTP(S) transport plugin as fallback.
Custom transport modules can be registered via SOAP::WSDL::Factory::Transport.
* [ 1772730 ] Serializer plugins via SOAP::WSDL::Factory::Serializer
The default serializer for SOAP1.1 is SOAP::WSDL::Serializer::SOAP11.
Custom serializers classes can be registered via
SOAP::WSDL::Factory::Serializer or set via SOAP::WSDL's set_serializer
method.
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):
* [ 1764854 ] Port WSDL parser to expat and remove XML::LibXML dependency
SOAP::WSDL now requires only XML::Parser to be installed.
XML::LibXML is not required any more, though XML::LibXML based modules still
exist.
The following uncategorized improvements have been made
* The number of dependencies has been reduced. SOAP::WSDL no longer requires the
following modules to be installed:
- XML::SAX::Base
- XML::SAX::ParserFactory
- Pod::Simple::Text
- XML::LibXML
* The missing prerequisite Template has been added.
* Documentation has been improved.
2.00_10
----
* Changed Makefile.PL to use Module::Build (passthrough mode)
* fixed element ref="" handling
2.00_09
----
* SOAP::WSDL::XSD::Typelib::Builtin::boolean objects now return their numerical
value in bool context, not "true" or "false" (always true...)
* date/time test are now timezone-sensitive
* examples added
2.00_08
---
* SOAP::WSDL::XSD::Typelib::ComplexType objects now check the class of their
child objects.
This provides early feedback to developers.
* SOAP message parser can skip unwanted parts of the message to improve parsing
speed - see SOAP::WSDL::Expat::MessageParser for details.
* HTTP Content-Type is configurable
* SOAP::WSDL::XSD::Typelib::ComplexType based objects accept any combination of
hash refs, list refs and objects as parameter to set_value() and new().
* SOAP::WSDL::XSD::Typelib::Builtin::dateTime and ::date convert date
strings into XML date strings
* SOAP::WSDL::Definitions::create now
- converts '.' in service names to '::' (.NET class separator to perl class
separator)
- outputs Typemaps and Interface classes in UTF8 to allow proper inclusion
of UTF8 documentation from WSDL
* SOAP::WSDL::Definitions::create() includes doc in generated interface classes
* WSDLHandler now handles <wsdl:documentation> tags
* fixed explain in SimpleType, ComplexType and Element
2.00_07 and below
---
* Implemented a Code generator for creating SOAP interfaces based on WSDL definitions
* Implemented a high-speed stream based SOAP message parser
SOAP message parser returns a objects based on XML schema based class library
* Implemented a XML schema based class library
* Implemented a stream based WSDL parser.
Parses WSDL into objects. Objects can serialize data, and explain how to use the
service(s) they make up (output documentation).

View File

@@ -1,3 +1,4 @@
benchmark/01_expat.t
bin/wsdl2perl.pl
Build.PL
CHANGES
@@ -22,7 +23,6 @@ example/lib/MyTypemaps/FullerData_x0020_Fortune_x0020_Cookie.pm
example/lib/MyTypemaps/GlobalWeather.pm
example/weather.pl
example/weather_wsdl.pl
example/weather_xml_compile.pl
example/wsdl/FortuneCookie.xml
example/wsdl/genericbarcode.xml
example/wsdl/globalweather.xml
@@ -42,7 +42,7 @@ lib/SOAP/WSDL/Factory/Serializer.pm
lib/SOAP/WSDL/Factory/Transport.pm
lib/SOAP/WSDL/Manual.pod
lib/SOAP/WSDL/Manual/Glossary.pod
lib/SOAP/WSDL/Manual/WS_I_BasicProfile_Compliance.pod
lib/SOAP/WSDL/Manual/WS_I.pod
lib/SOAP/WSDL/Message.pm
lib/SOAP/WSDL/Operation.pm
lib/SOAP/WSDL/OpMessage.pm
@@ -50,7 +50,6 @@ lib/SOAP/WSDL/Parser.pod
lib/SOAP/WSDL/Part.pm
lib/SOAP/WSDL/Port.pm
lib/SOAP/WSDL/PortType.pm
lib/SOAP/WSDL/RELEASE_NOTES
lib/SOAP/WSDL/SAX/MessageHandler.pm
lib/SOAP/WSDL/SAX/WSDLHandler.pm
lib/SOAP/WSDL/Serializer/SOAP11.pm
@@ -203,6 +202,5 @@ t/SOAP/WSDL/11_helloworld.NET.t
t/SOAP/WSDL/12_binding.pl
t/SOAP/WSDL/XSD/Typelib/Builtin/001_string.t
t/SOAP/WSDL/XSD/Typelib/Builtin/002_dateTime.t
t/SOAP/WSDL/XSD/Typelib/Builtin/002_time.t
t/SOAP/WSDL/XSD/Typelib/Builtin/003_date.t
TODO

View File

@@ -1,6 +1,6 @@
---
name: SOAP-WSDL
version: 2.00_11
version: 2.00_12
author:
abstract: SOAP with WSDL support
license: artistic
@@ -23,13 +23,14 @@ meta-spec:
provides:
SOAP::WSDL:
file: lib/SOAP/WSDL.pm
version: 2.00_10
version: 2.00_12
SOAP::WSDL::Base:
file: lib/SOAP/WSDL/Base.pm
SOAP::WSDL::Binding:
file: lib/SOAP/WSDL/Binding.pm
SOAP::WSDL::Client:
file: lib/SOAP/WSDL/Client.pm
version: 2.00_12
SOAP::WSDL::Client::Base:
file: lib/SOAP/WSDL/Client/Base.pm
SOAP::WSDL::Definitions:

68
benchmark/01_expat.t Normal file
View File

@@ -0,0 +1,68 @@
#!/usr/bin/perl -w
use strict;
use warnings;
use lib '../lib';
use lib 'lib';
use lib '../t/lib';
use SOAP::WSDL::SAX::MessageHandler;
use Benchmark;
use SOAP::WSDL::Expat::MessageParser;
use XML::Simple;
use XML::LibXML;
use MyComplexType;
use MyElement;
use MySimpleType;
my $xml = q{<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" >
<SOAP-ENV:Body><MyAtomicComplexTypeElement xmlns="urn:Test" >
<test>Test</test>
<test2 >Test2</test2>
</MyAtomicComplexTypeElement></SOAP-ENV:Body></SOAP-ENV:Envelope>};
my $parser = SOAP::WSDL::Expat::MessageParser->new({
class_resolver => 'FakeResolver'
});
$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
my $libxml = XML::LibXML->new();
timethese 1000,
{
'SOAP::WSDL' => sub { $parser->parse( $xml ) },
#'XML::Simple (Hash)' => sub { XMLin $xml },
'XML::LibXML (DOM)' => sub { my $dom = $libxml->parse_string( $xml ) },
};
use Test::More tests => 1;
is $parser->get_data(), q{<MyAtomicComplexTypeElement xmlns="urn:Test" >}
. q{<test >Test</test><test2 >Test2</test2></MyAtomicComplexTypeElement>}
, 'Content comparison';
$parser->class_resolver( 'FakeResolver2' );
# data classes reside in t/lib/Typelib/
BEGIN {
package FakeResolver;
{
my %class_list = (
'MyAtomicComplexTypeElement' => 'MyAtomicComplexTypeElement',
'MyAtomicComplexTypeElement/test' => 'MyTestElement',
'MyAtomicComplexTypeElement/test2' => 'MyTestElement2',
);
sub get_map { return \%class_list };
sub new { return bless {}, 'FakeResolver' };
sub get_class {
my $name = join('/', @{ $_[1] });
return ($class_list{ $name }) ? $class_list{ $name }
: warn "no class found for $name";
};
};
};

View File

@@ -1,43 +0,0 @@
# Accessing the globalweather service at
# www.webservicex.net/GlobalWeather/GlobalWeather.asmx
#
# Note that the GlobalWeather web service returns a (quoted) XML structure -
# don't be surprised by the response's format.
#
# I have no connection to www.webservicex.net
# Use this script at your own risk.
#
# This script demonstrates the use of SOAP::WSDL in SOAP::Lite style.
=for later
use lib 'lib/';
use lib '../lib';
use SOAP::WSDL;
use File::Basename qw(dirname);
use File::Spec;
my $path = File::Spec->rel2abs( dirname __FILE__);
my $soap = SOAP::WSDL->new();
my $som = $soap->wsdl("file:///$path/wsdl/globalweather.xml")->no_dispatch(1)
->call('GetWeather', GetWeather => { CountryName => 'Germany', CityName => 'Munich' });
print $som;
=for later use
die $som->message() if $som->fault();
print $som->result();
=cut
use Carp;
use diagnostics;
use XML::Compile::WSDL;
my $schema = XML::Compile::WSDL->new('wsdl/globalweather.xml',
schema_dirs => 'D:/Test/XMLC/'
);
my $operation = $schema->prepare('GetWeather', role => 'CLIENT', port => 'GlobalWeatherSoap');
use Data::Dumper;
print Dumper $operation;

View File

@@ -5,13 +5,11 @@ use vars qw($AUTOLOAD);
use Carp;
use Scalar::Util qw(blessed);
use SOAP::WSDL::Client;
use SOAP::WSDL::Envelope;
use SOAP::WSDL::SAX::WSDLHandler;
use SOAP::WSDL::Expat::WSDLParser;
use Class::Std;
use XML::LibXML;
use LWP::UserAgent;
our $VERSION='2.00_10';
our $VERSION='2.00_12';
my %no_dispatch_of :ATTR(:name<no_dispatch>);
my %wsdl_of :ATTR(:name<wsdl>);
@@ -98,13 +96,11 @@ sub wsdlinit {
croak $response->message() if ($response->code != 200);
# TODO: Port parser to expat and remove XML::LibXML dependency
my $parser = XML::LibXML->new();
my $filter = SOAP::WSDL::SAX::WSDLHandler->new();
$parser->set_handler( $filter );
my $parser = SOAP::WSDL::Expat::WSDLParser->new();
$parser->parse_string( $response->content() );
# sanity checks
my $wsdl_definitions = $filter->get_data() or die "unable to parse WSDL";
my $wsdl_definitions = $parser->get_data() or die "unable to parse WSDL";
my $types = $wsdl_definitions->first_types()
or die "unable to extract schema from WSDL";
my $ns = $wsdl_definitions->get_xmlns()
@@ -662,9 +658,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 176 $
$Rev: 188 $
$LastChangedBy: kutterma $
$Id: WSDL.pm 176 2007-08-31 15:28:29Z kutterma $
$Id: WSDL.pm 188 2007-09-03 15:15:19Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL.pm $
=cut

View File

@@ -13,6 +13,8 @@ use SOAP::WSDL::Factory::Transport;
use SOAP::WSDL::Expat::MessageParser;
use SOAP::WSDL::SOAP::Typelib::Fault11;
our $VERSION='2.00_12';
# Package global for speed and memory savings.
# But should be factored out into serializer/deserializer...
my $PARSER;
@@ -381,9 +383,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 176 $
$Rev: 188 $
$LastChangedBy: kutterma $
$Id: Client.pm 176 2007-08-31 15:28:29Z kutterma $
$Id: Client.pm 188 2007-09-03 15:15:19Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client.pm $
=cut

View File

@@ -8,7 +8,7 @@ use XML::Parser::Expat;
sub new {
my ($class, $args) = @_;
my $self = {
class_resolver => $args->{ class_resolver }
class_resolver => $args->{ class_resolver },
};
bless $self, $class;
return $self;
@@ -20,9 +20,9 @@ sub class_resolver {
}
sub _initialize {
my ($self, $parser) = @_;
my ($self, $parser) = @_;
delete $self->{ data };
delete $self->{ data }; # remove potential old results
my $characters;
my $current = undef;
@@ -34,17 +34,25 @@ sub _initialize {
# use "globals" for speed
my ($_prefix, $_localname, $_element, $_method,
$_class, $_parser, %_attrs) = ();
no strict qw(refs);
$parser->setHandlers(
Start => sub {
($_parser, $_element, %_attrs) = @_;
($_prefix, $_localname) = split m{:}xms , $_element;
$_localname ||= $_element; # for non-prefixed elements
$_localname ||= $_element; # for non-prefixed elements
# ignore top level elements
if (@{ $ignore } && $_localname eq $ignore->[0]) {
if (@{ $ignore } && $_localname eq $ignore->[0]) {
CHECK_ENVELOPE: {
last CHECK_ENVELOPE if $_localname ne 'Envelope';
last CHECK_ENVELOPE if exists $_attrs{ 'xmlns' }
&& $_attrs{ 'xmlns' } eq 'http://schemas.xmlsoap.org/soap/envelope/';
last CHECK_ENVELOPE if $_attrs{ "xmlns:$_prefix"}
eq 'http://schemas.xmlsoap.org/soap/envelope/';
die "Bad namespace for SOAP envelope: " . $parser->recognized_string();
}
shift @{ $ignore };
return;
}
@@ -52,10 +60,10 @@ sub _initialize {
push @{ $path }, $_localname; # step down in path
return if $skip; # skip inside __SKIP__
# resolve class of this element
# resolve class of this element
$_class = $self->{ class_resolver }->get_class( $path )
or die "Cannot resolve class for "
. join('/', @{ $path }) . " via $self->{ class_resolver }";
. join('/', @{ $path }) . " via " . $self->{ class_resolver };
# maybe write as "return $skip = join ... if (...)" ?
# would save a BLOCK...
@@ -71,15 +79,17 @@ sub _initialize {
# if $class matches...
if (index $_class, 'SOAP::WSDL::XSD::Typelib::Builtin', 0 < 0) {
# check wheter there is a CODE reference for $class::new.
# check wheter there is a non-empty ARRAY reference for $_class::ISA
# or a "new" method
# If not, require it - all classes required here MUST
# define new()
# This is the same as $class->can('new'), but it's way faster
*{ "$_class\::new" }{ CODE }
# This is not exactly the same as $class->can('new'), but it's way faster
defined *{ "$_class\::new" }{ CODE }
or scalar @{ *{ "$_class\::ISA" }{ ARRAY } }
or eval "require $_class" ## no critic qw(ProhibitStringyEval)
or die $@;
or die $@;
}
$current = $_class->new({ %_attrs }); # set new current object
# remember top level element
@@ -124,8 +134,8 @@ sub _initialize {
# set appropriate attribute in last element
# multiple values must be implemented in base class
$_method = "add_$_localname";
$$list[-1]->$_method( $current );
$$list[-1]->$_method( $current );
$current = pop @$list; # step up in object hierarchy...
}
);
@@ -208,8 +218,8 @@ This module may be used under the same terms as perl itself.
$ID: $
$LastChangedDate: 2007-08-31 17:28:29 +0200 (Fr, 31 Aug 2007) $
$LastChangedRevision: 176 $
$LastChangedDate: 2007-09-02 21:05:18 +0200 (So, 02 Sep 2007) $
$LastChangedRevision: 184 $
$LastChangedBy: kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageParser.pm $

View File

@@ -35,9 +35,6 @@ the service's interface structure.
The results of all calls to your service object's methods (except new)
are objects based on SOAP::WSDL's XML schema implementation.
These objects are false in boolean context, and serialize to XML when
printed.
To access the object's properties use get_NAME / set_NAME getter/setter
methods whith NAME corresponding to the XML tag name.

View File

@@ -2,7 +2,7 @@
=head1 NAME
SOAP::WSDL WS-I Basic Profile Compliance - How SOAP::WSDL complies to WS-I Basic Profile 1.0
SOAP::WSDL::Manual::WS_I - How SOAP::WSDL complies to WS-I Basic Profile 1.0
=head1 DESCRIPTION
@@ -292,7 +292,18 @@ the SOAPAction header from the operation name and the top node's namespace.
SOAP::WSDL::Client always assures the SOAPaction header is quoted, thus
automatically inserts the empty string if no SOAPAction header is defined.
=head2 R1015
A RECEIVER MUST generate a fault if they encounter a message whose document
element has a local name of "Envelope" but a namespace name that is not
"http://schemas.xmlsoap.org/soap/envelope/".
SOAP::WSDL::Expat::MessageParser checks the namespace of the SOAP envelope.
SOAP::WSDL::Expat::MessageParser does not check that Envelope is the root
element, yet.
=head1 RULES NOT CONFIRMED
@@ -347,16 +358,6 @@ However, rpc-literal bindings are not supported, yet.
TODO support rpc-literal bindings.
=head2 R1015
A RECEIVER MUST generate a fault if they encounter a message whose document
element has a local name of "Envelope" but a namespace name that is not
"http://schemas.xmlsoap.org/soap/envelope/".
SOAP::WSDL::Expat::MessageParser does not check the namespace of the SOAP envelope.
TODO implement checking namespace of the SOAP envelope and emit fault if not "http://schemas.xmlsoap.org/soap/envelope/".
=head2 R2008
In a DESCRIPTION the value of the location attribute of a wsdl:import element

View File

@@ -1,71 +0,0 @@
Release notes for SOAP::WSDL 2.00_11
-------
I'm happy to present a new pre-release version of SOAP::WSDL.
The following features were added (the numbers in brackets are the tracker IDs
from https://sourceforge.net/tracker/?group_id=111978&atid=660924):
* [1767963] Transport plugins via SOAP::WSDL::Factory::Transport.
SOAP::WSDL uses SOAP::Lite's tranport modules as default, with a
lightweight HTTP(S) transport plugin as fallback.
Custom transport modules can be registered via
SOAP::WSDL::Factory::Transport.
* [ 1772730 ] Serializer plugins via SOAP::WSDL::Factory::Serializer
The default serializer for SOAP1.1 is SOAP::WSDL::Serializer::SOAP11.
Custom serializers classes can be registered via
SOAP::WSDL::Factory::Serializer or set via SOAP::Lite's set_serializer
method.
The following bugs have been fixed (the numbers in brackets are the tracker IDs
from https://sourceforge.net/tracker/?group_id=111978&atid=660921):
* [ 1764854 ] Port WSDL parser to expat and remove XML::LibXML dependency
SOAP::WSDL now requires only XML::Parser to be installed.
XML::LibXML is not required any more, though XML::LibXML based modules still
exist.
The following uncategorized improvements have been made
* The number of dependencies has been reduced. SOAP::WSDL no longer requires the
following modules to be installed:
- XML::SAX::Base
- XML::SAX::ParserFactory
- Pod::Simple::Text
* The missing prerequisite Template has been added.
* Documentation has been improved.
The following changes were made in former pre-relase versions:
2.00_10
----
* Changed Makefile.PL to use Module::Build (passthrough mode)
* fixed element ref="" handling
2.00_09
----
* SOAP::WSDL::XSD::Typelib::Builtin::boolean objects now return their numerical
value in bool context, not "true" or "false" (always true...)
* date/time test are now timezone-sensitive
* examples added
2.00_08
---
* SOAP message parser may skip unwanted parts of the message - see
SOAP::WSDL::Expat::MessageParser for details.
* HTTP Content-Type is configurable now
* SOAP::WSDL::XSD::Typelib::ComplexType based objects now accept a
list ref of hash refs as parameter to set_value.
* SOAP::WSDL::XSD::Typelib::Builtin::dateTime and ::date now converts date
strings into XML date strings
* SOAP::WSDL::Definitions::create now
- converts '.' in service names to '::' (.NET class separator to perl class
separator)
- outputs Typemaps and Interface classes in UTF8 to allow proper inclusion
of UTF8 documentation from WSDL
* WSDLHandler now handles <wsdl:documentation> tags
* SOAP::WSDL::Definitions now includes some usable doc in generated interface classes
* fixed explain in SimpleType, ComplexType and Element (someway)

View File

@@ -181,7 +181,7 @@ sub to_class {
my $template = <<'EOT';
package [% type_prefix %][% self.get_name %];
use strict;
use Class::Std::Storable;
use SOAP::WSDL::XSD::Typelib::ComplexType;
use base qw(
SOAP::WSDL::XSD::Typelib::ComplexType

View File

@@ -244,7 +244,7 @@ sub to_class {
my $template = <<'EOT';
package [% element_prefix %][% self.get_name %];
use strict;
use Class::Std::Storable;
use SOAP::WSDL::XSD::Typelib::Element;
[% IF (type = self.first_simpleType) %]

View File

@@ -37,29 +37,20 @@ BEGIN {
sub set_value {
# use set_value from base class if we have a XML-DateTime format
#2037-12-31T00:00:00.0000000+01:00
if (
return $_[0]->SUPER::set_value($_[1]) if (
$_[1] =~ m{ ^\d{4} \- \d{2} \- \d{2}
T \d{2} \: \d{2} \: \d{2} (:? \. \d{1,7} )?
[\+\-] \d{2} \: \d{2} $
}xms
) {
$_[0]->SUPER::set_value($_[1])
}
# use a combination of strptime and strftime for converting the date
# strptime does not emit timezone info, so we're pretty fucked up here.
#
# Unfortunately, strftime outputs the time zone as [+-]0000, whereas XML
# whants it as [+-]00:00
# We leave out the optional nanoseconds part, as it would always be empty.
else {
# strptime sets empty values to undef - and strftime doesn't like that...
my @time_from = map { ! defined $_ ? 0 : $_ } strptime($_[1]);
undef $time_from[-1];
);
# strptime sets empty values to undef - and strftime doesn't like that...
my @time_from = map { ! defined $_ ? 0 : $_ } strptime($_[1]);
undef $time_from[-1];
my $time_str = strftime( '%Y-%m-%dT%H:%M:%S%z', @time_from );
substr $time_str, -2, 0, ':';
$_[0]->SUPER::set_value($time_str);
}
my $time_str = strftime( '%Y-%m-%dT%H:%M:%S%z', @time_from );
substr $time_str, -2, 0, ':';
$_[0]->SUPER::set_value($time_str);
}
1;

View File

@@ -4,9 +4,9 @@ use strict;
use warnings;
use Carp;
use SOAP::WSDL::XSD::Typelib::Builtin;
use Scalar::Util qw(blessed);
use Class::Std::Storable;
use Scalar::Util qw(blessed refaddr);
use Data::Dumper;
use Class::Std::Storable;
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anyType);
@@ -64,7 +64,7 @@ sub _factory {
my $is_list = $type->isa('SOAP::WSDL::XSD::Typelib::Builtin::list');
*{ "$class\::set_$name" } = sub {
my ($self, $value) = @_;
# my ($self, $value) = @_;
# The structure below looks rather weird, but is optimized for performance.
#
@@ -93,11 +93,11 @@ sub _factory {
# for GLOB references, feel free to add them.
# d) we should also die for non-blessed non-ARRAY/HASH references in lists but don't do yet - oh my !
my $is_ref = ref $value;
$attribute_ref->{ ident $self } = ($is_ref)
my $is_ref = ref $_[1];
$attribute_ref->{ ident $_[0] } = ($is_ref)
? $is_ref eq 'ARRAY'
? $is_list # remembered from outside closure
? $type->new({ value => $value }) # list element - can take list ref as value
? $type->new({ value => $_[1] }) # list element - can take list ref as value
: [ map {
ref $_
? ref $_ eq 'HASH'
@@ -106,20 +106,20 @@ sub _factory {
? $_
: croak "cannot use " . ref($_) . " reference as value for $name - $type required"
: $type->new({ value => $_ })
} @{ $value }
} @{ $_[1] }
]
: $is_ref eq 'HASH'
? $type->new( $value )
? $type->new( $_[1] )
: $is_ref eq $type
? $value
? $_[1]
: die croak "cannot use $is_ref reference as value for $name - $type required"
: $type->new({ value => $value });
: $type->new({ value => $_[1] });
};
*{ "$class\::add_$name" } = sub {
my $ident = ident $_[0];
warn "attempting to add empty value to " . ref $_[0]
if (not defined $_[1]);
if not defined $_[1];
# first call
return $attribute_ref->{ $ident } = $_[1]
@@ -133,16 +133,30 @@ sub _factory {
return push @{ $attribute_ref->{ $ident } }, $_[1];
};
*{ "$class\::$name" } = *{ "$class\::add_$name" };
}
*{ "$class\::new" } = sub {
my $self = bless \my ($o), $_[0];
$self->BUILD( ident $self, $_[1] ) if exists &BUILD;
$self->_init( ident $self, $_[1] );
$self->START( ident $self, $_[1] ) if exists &START;
return $self;
};
*{ "$class\::START" } = sub {
my ($self, $ident, $args_of) = @_;
*{ "$class\::_init" } = sub {
# We're working on @_ for speed.
# Normally, the first line would look like this:
# my ($self, $ident, $args_of) = @_;
#
# The hanging side comment show you what would be there, then.
# iterate over keys of arguments
# and call set appropriate field in clase
map { ($ATTRIBUTES_OF{ $class }->{ $_ })
? do {
my $method = "set_$_";
$self->$method( $args_of->{ $_ } );
$_[0]->$method( $_[2]->{ $_ } ); # ( $args_of->{ $_ } );
}
: $_ =~ m{ \A # beginning of string
xmlns # xmlns
@@ -152,8 +166,8 @@ sub _factory {
croak "unknown field $_ in $class. Valid fields are:\n"
. join(', ', @{ $ELEMENTS_FROM{ $class } }) . "\n"
. "Structure given:\n" . Dumper @_ };
} keys %$args_of;
return $self;
} keys %{ $_[2] }; # %$args_of;
return $_[0]; # $self;
};

View File

@@ -1,8 +1,6 @@
#!/usr/bin/perl
package SOAP::WSDL::XSD::Typelib::Element;
use strict;
use Class::Std::Storable;
use Data::Dumper;
my %NAME;
my %NILLABLE;

View File

@@ -1,30 +1,24 @@
#!/usr/bin/perl -w
use strict;
use warnings;
use Test::More tests => 18; # qw/no_plan/; # TODO: change to tests => N;
use Test::More tests => 17;
use lib '../lib';
use XML::LibXML;
eval {
require Test::XML;
import Test::XML;
};
use_ok(qw/SOAP::WSDL::SAX::WSDLHandler/);
use_ok(qw/SOAP::WSDL::Expat::WSDLParser/);
my $filter;
ok($filter = SOAP::WSDL::SAX::WSDLHandler->new(
), "Object creation");
my $parser = XML::LibXML->new();
$parser->set_handler( $filter );
my $parser = SOAP::WSDL::Expat::WSDLParser->new();
$parser->parse_string( xml() );
my $wsdl;
ok( $wsdl = $filter->get_data() , "get object tree");
ok( $wsdl = $parser->get_data() , "get object tree");
my $types = $wsdl->first_types();

View File

@@ -1,16 +1,14 @@
use Test::More tests => 11;
use Data::Dumper;
use lib '../lib';
use XML::LibXML;
use_ok(qw/SOAP::WSDL::SAX::WSDLHandler/);
use_ok(qw/SOAP::WSDL::Expat::WSDLParser/);
my $filter;
ok($filter = SOAP::WSDL::SAX::WSDLHandler->new(), "Object creation");
my $parser;
my $parser = XML::LibXML->new();
$parser->set_handler( $filter );
ok($parser = SOAP::WSDL::Expat::WSDLParser->new() );
eval { $parser->parse_string( xml() ) };
if ($@)
@@ -24,8 +22,7 @@ else
}
my $wsdl;
ok( $wsdl = $filter->get_data() , "get object tree");
ok( $wsdl = $parser->get_data() , "get object tree");
my $schema = $wsdl->first_types();

View File

@@ -4,21 +4,16 @@ use warnings;
use Test::More tests => 5;
use lib '../lib';
use XML::LibXML;
eval {
require Test::XML;
import Test::XML;
};
use_ok(qw/SOAP::WSDL::SAX::WSDLHandler/);
use_ok(qw/SOAP::WSDL::Expat::WSDLParser/);
my $filter;
my $parser;
ok($filter = SOAP::WSDL::SAX::WSDLHandler->new(), "Object creation");
my $parser = XML::LibXML->new();
$parser->set_handler( $filter );
ok($parser = SOAP::WSDL::Expat::WSDLParser->new(), "Object creation");
eval { $parser->parse_string( xml() ) };
if ($@)
@@ -32,7 +27,7 @@ else
}
my $wsdl;
ok( $wsdl = $filter->get_data() , "get object tree");
ok( $wsdl = $parser->get_data() , "get object tree");
my $schema = $wsdl->get_types()->[0]->get_schema()->[0] || die "No schema !";

View File

@@ -4,19 +4,13 @@ use warnings;
use Test::More qw/no_plan/; # TODO: change to tests => N;
use Data::Dumper;
use lib '../lib';
use XML::LibXML;
use diagnostics;
use_ok(qw/SOAP::WSDL::SAX::WSDLHandler/);
use_ok(qw/SOAP::WSDL::Expat::WSDLParser/);
my $filter;
ok($filter = SOAP::WSDL::SAX::WSDLHandler->new(), "Object creation");
my $parser = XML::LibXML->new();
$parser->set_handler( $filter );
my $parser;
ok($parser = SOAP::WSDL::Expat::WSDLParser->new(), "Object creation");
eval { $parser->parse_string( xml() ) };
if ($@)
{
@@ -29,7 +23,7 @@ else
}
my $wsdl;
ok( $wsdl = $filter->get_data() , "get object tree");
ok( $wsdl = $parser->get_data() , "get object tree");
my $opt = {
namespace => $wsdl->get_xmlns(),

View File

@@ -10,7 +10,7 @@ eval {
import Test::XML;
};
use_ok qw/SOAP::WSDL::Envelope/;
use_ok qw/SOAP::WSDL::Serializer::SOAP11/;
my $opt = {
readable => 1,
@@ -18,7 +18,7 @@ my $opt = {
},
};
my $xml;
ok( $xml = SOAP::WSDL::Envelope->serialize(
ok( $xml = SOAP::WSDL::Serializer::SOAP11->serialize(
undef, undef, $opt
),
"serialize empty envelope"

View File

@@ -1,30 +1,18 @@
#!/usr/bin/perl -w
use strict;
use warnings;
use Test::More;
use Test::More tests => 5;
use lib '../lib';
if (eval "require XML::LibXML") {
plan tests => 5;
}
else {
plan skip_all => "Cannot test without XML::LibXML";
}
eval {
require Test::XML;
import Test::XML;
};
use_ok(qw/SOAP::WSDL::SAX::WSDLHandler/);
use_ok(qw/SOAP::WSDL::Expat::WSDLParser/);
my $filter;
ok($filter = SOAP::WSDL::SAX::WSDLHandler->new(), "Object creation");
my $parser = XML::LibXML->new();
$parser->set_handler( $filter );
my $parser;
ok($parser = SOAP::WSDL::Expat::WSDLParser->new(), "Object creation");
eval { $parser->parse_string( xml() ) };
if ($@)
{
@@ -37,7 +25,7 @@ else
}
my $wsdl;
ok( $wsdl = $filter->get_data() , "get object tree");
ok( $wsdl = $parser->get_data() , "get object tree");
ok $wsdl->to_typemap( { prefix => 'CP::EAI::Typelib::' } ), 'typemap';
exit;

View File

@@ -1,25 +0,0 @@
use Test::More tests => 3;
use strict;
use warnings;
use lib '../lib';
use_ok('SOAP::WSDL::XSD::Typelib::Builtin::time');
my $obj;
$obj = SOAP::WSDL::XSD::Typelib::Builtin::time->new();
$obj->set_value( '12:23:03' );
is $obj->get_value() , '12:23:03+01:00', 'conversion';
$obj->set_value( '12:23:03.12345+01:00' ), ;
is $obj->get_value() , '12:23:03.12345+01:00', 'no conversion';
# exit;
#~ use Benchmark;
#~ timethese 10000, {
#~ xml => sub { $obj->set_value('2037-12-31T00:00:00.0000000+01:00') },
#~ string => sub { $obj->set_value('2037-12-31') },
#~ }

View File

@@ -1,7 +1,6 @@
#!/usr/bin/perl
package MyElement;
use strict;
use Class::Std::Storable;
use SOAP::WSDL::XSD::Typelib::Element;
use SOAP::WSDL::XSD::Typelib::Builtin;
use base (
@@ -14,7 +13,6 @@ sub get_xmlns { 'urn:Test' };
package MyComplexTypeElement;
use strict;
use Class::Std::Storable;
use SOAP::WSDL::XSD::Typelib::Element;
use MyComplexType;
use base (
@@ -27,7 +25,6 @@ sub get_xmlns { 'urn:Test' };
package MyTestElement;
use strict;
use Class::Std::Storable;
use SOAP::WSDL::XSD::Typelib::Element;
use SOAP::WSDL::XSD::Typelib::Builtin::string;
use base (
@@ -36,12 +33,11 @@ use base (
);
__PACKAGE__->__set_name('MyTestElement');
sub get_xmlns { 'urn:Test' };
package MyTestElement2;
use strict;
use Class::Std::Storable;
use SOAP::WSDL::XSD::Typelib::Element;
use SOAP::WSDL::XSD::Typelib::Builtin;
use base (
@@ -57,7 +53,6 @@ sub get_xmlns { 'urn:Test' };
package MyAtomicComplexTypeElement;
use strict;
use Class::Std::Storable;
use SOAP::WSDL::XSD::Typelib::Element;
use SOAP::WSDL::XSD::Typelib::ComplexType;
use SOAP::WSDL::XSD::Typelib::Builtin;

View File

@@ -1,5 +1,5 @@
package Typelib::Base;
use Class::Std::Storable;
use Class::Std::Storable;
sub mk_add_mutators {
my $class = shift;

View File

@@ -1,7 +1,6 @@
package Typelib::TEnqueueMessage;
use strict;
use base qw(Typelib::Base);
use Class::Std::Storable;
my %MMessage_of :ATTR(:name<MMessage> :default<()>);

View File

@@ -1,7 +1,6 @@
package Typelib::TMessage;
use strict;
use base qw(Typelib::Base);
use Class::Std::Storable;
my %MRecipientURI_of :ATTR(:name<MRecipientURI> :default<()>);
my %MMessageContent_of :ATTR(:name<MMessageContent> :default<()>);