Directory lib/xsd/

Directory Created:
2003-09-24 16:18
Total Files:
Deleted Files:
Lines of Code:

Browse with ViewVC


             codegen (5 files, 657 lines)

             xmlparser (4 files, 347 lines)

Lines of Code

lib/xsd/ Lines of Code


Author Changes Lines of Code Lines per Change
Totals 57 (100.0%) 2524 (100.0%) 44.2
nahi 45 (78.9%) 2522 (99.9%) 56.0
matz 2 (3.5%) 2 (0.1%) 1.0
shyouhei 10 (17.5%) 0 (0.0%) 0.0

Most Recent Commits

shyouhei 2007-02-13 00:01

set svn:eol-style

0 lines of code changed in:

nahi 2005-09-15 15:33

* lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.5.

#nnn is a ticket number at


* allow to configure an envelope namespace of SOAP request. (#124)

TemporaryNamespace = ''

@client.options["soap.envelope.requestnamespace"] =


@client.options["soap.envelope.responsenamespace"] =



* let SOAP request XML indent space configuable. see

"soap.envelope.no_indent" option. (#130)

* let external CES configuable.

ex. client["soap.mapping.external_ces"] = 'SJIS'. $KCODE is used

by default. (#133)

external CES ::= CES used in Ruby object of client and server

internal CES ::= CES used in SOAP/OM

* add iso-8859-1 external CES support. (#106)

* fixed illegal 'qualified' handling of elements. it caused

ASP.NET inteoperability problem. (#144)

* added 'soap.envelope.use_numeric_character_reference' (boolean)

option to let query XML use numeric character reference in XML,

not plain UTF-8 character. !GoogleSearch server seems to not

allow plain UTF-8 character since 2005-08-15 update. (#147)

* SOAP::Header::SimpleHeader (de)serialization throws an exception

on !SimpleHeader.on_(in|out)bound when header is a String. so we

could not use a simple single element headerItem. fixed. thanks

to emil. (#129)

* out parameter of rpc operation did not work. (#132)

* follow HTTP redirect only if using http-access2. (#125) (#145)

* add a workaround for importing an WSDL whose path begins with

drive letter. (#115)


* SOAP Data which is defined as a simpletype was not mapped

correctly to Ruby obj when using wsdl2ruby.rb generated classdef

file. (#123)

* rpc/literal support. (#118)

* re-implemented local element qualify/unqualify control. handles

elementFormDefault and form in WSDL. (#119)

* Array of an element which has simpleType causes a crash. (#128)

* prarmeterOrder may not contain return part so it can be shorter

than parts size. Thanks to Hugh. (#139)

* Samples

* added !BasicAuth client sample. (#117)

* added Base64 client/server sample.

* added Flickr SOAP interface client sample. (#122)

* added !SalesForce client sample. (#135)

* updated Thawte CA certificate for !GoogleAdWords sample.

* updated a client script with the newer version made by Johan.


* shortened long file names. (#120)

* fixed typo in authheader sample. (#129)

* updated deprecated method usage. (#138)

60 lines of code changed in:

nahi 2005-05-22 14:03

* lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.4.

== SOAP client and server ==

=== for both client side and server side ===

* improved document/literal service support.

style(rpc,document)/use(encoding, literal) combination are all

supported. for the detail about combination, see


* let WSDLEncodedRegistry#soap2obj map SOAP/OM to Ruby according to

WSDL as well as obj2soap. closes #70.

* let SOAP::Mapping::Object handle XML attribute for doc/lit service.

you can set/get XML attribute via accessor methods which as a name

'xmlattr_' prefixed (<foo name="bar"/> -> Foo#xmlattr_name).

=== client side ===

* WSDLDriver capitalized name operation bug fixed. from

1.5.3-ruby1.8.2, operation which has capitalized name (such as

KeywordSearchRequest in AWS) is defined as a method having

uncapitalized name. (converted with GenSupport.safemethodname

to handle operation name 'foo-bar'). it introduced serious

incompatibility; in the past, it was defined as a capitalized.

define capitalized method as well under that circumstance.

* added new factory interface 'WSDLDriverFactory#create_rpc_driver'

to create RPC::Driver, not WSDLDriver (RPC::Driver and WSDLDriver

are merged). 'WSDLDriverFactory#create_driver' still creates

WSDLDriver for compatibility but it warns that the method is

deprecated. please use create_rpc_driver instead of create_driver.

* allow to use an URI object as an endpoint_url even with net/http,

not http-access2.

=== server side ===

* added mod_ruby support to SOAP::CGIStub. rename a CGI script

server.cgi to server.rb and let mod_ruby's RubyHandler handles the

script. CGIStub detects if it's running under mod_ruby environment

or not.

* added fcgi support to SOAP::CGIStub. see the sample at

sample/soap/calc/server.fcgi. (almost same as server.cgi but has

fcgi handler at the bottom.)

* allow to return a SOAPFault object to respond customized SOAP fault.

* added the interface 'generate_explicit_type' for server side

(CGIStub, HTTPServer). call 'self.generate_explicit_type = true'

if you want to return simplified XML even if it's rpc/encoded


== WSDL ==

=== WSDL definition ===

* improved XML Schema support such as extension, restriction,

simpleType, complexType + simpleContent, ref, length, import,


* reduced "unknown element/attribute" warnings (warn only 1 time for

each QName).

* importing XSD file at schemaLocation with xsd:import.

=== code generation from WSDL ===

* generator crashed when there's '-' in defined element/attribute


* added ApacheMap WSDL definition.

* sample/{soap,wsdl}: removed.

104 lines of code changed in:

nahi 2004-12-20 14:50

* added files:

* lib/soap/mapping/wsdl*.rb

* lib/wsdl/soap/element.rb

* lib/wsdl/xmlSchema/simpleContent.rb

* modified files:

* lib/soap/*

* lib/wsdl/*

* lib/xsd/*

* test/soap/*

* test/wsdl/*

* test/xsd/*

* summary

* imported from the soap4r repository. Version: 1.5.3-ruby1.8.2

* added several XSD basetype support: nonPositiveInteger,

negativeInteger, nonNegativeInteger, unsignedLong, unsignedInt,

unsignedShort, unsignedByte, positiveInteger

* HTTP client connection/send/receive timeout support.

* HTTP client/server gzipped content encoding support.

* improved WSDL schema definition support; still is far from

complete, but is making step by step improovement.

307 lines of code changed in:

matz 2004-10-19 11:25

* io.c (read_all): block string buffer modification during

rb_io_fread() by freezing it temporarily. [ruby-dev:24479]

* dir.c (rb_push_glob): block call at once the end of method.


* ext/enumerator/enumerator.c (enum_each_slice): remove

rb_gc_force_recycle() to prevent potential SEGV.


* ext/zlib/zlib.c (zstream_expand_buffer): hide internal string

buffer by clearing klass. [ruby-dev:24510]

* ext/socket/socket.c (sock_s_getservbyaname): protocol string

might be altered. [ruby-dev:24503]

* string.c (rb_str_upto): check if return value from succ is a

string. [ruby-dev:24504]

* io.c (rb_io_popen): get mode string via rb_io_flags_mode() to

avoid mode string modification. [ruby-dev:24454]

* io.c (rb_io_getline_fast): should take delim as unsigned char to

distinguish EOF and '\377'. [ruby-dev:24460]

* io.c (rb_io_getline): add check for RS modification.


* enum.c (enum_sort_by): use qsort() directly instead using

rb_iterate(). [ruby-dev:24462]

* enum.c (enum_each_with_index): remove rb_gc_force_recycle() to

prevent access to recycled object (via continuation for

example). [ruby-dev:24463]

1 lines of code changed in:

nahi 2004-07-03 14:33

* added files:

* lib/soap/header/*

* lib/soap/rpc/httpserver.rb

* lib/wsdl/soap/cgiStubCreator.rb

* lib/wsdl/soap/classDefCreator.rb

* lib/wsdl/soap/classDefCreatorSupport.rb

* lib/wsdl/soap/clientSkeltonCreator.rb

* lib/wsdl/soap/driverCreator.rb

* lib/wsdl/soap/mappingRegistryCreator.rb

* lib/wsdl/soap/methodDefCreator.rb

* lib/wsdl/soap/servantSkeltonCreator.rb

* lib/wsdl/soap/standaloneServerStubCreator.rb

* lib/wsdl/xmlSchema/enumeration.rb

* lib/wsdl/xmlSchema/simpleRestriction.rb

* lib/wsdl/xmlSchema/simpleType.rb

* lib/xsd/codegen/*

* lib/xsd/codegen.rb

* sample/soap/authheader/*

* sample/soap/raa2.4/*

* sample/soap/ssl/*

* sample/soap/swa/*

* sample/soap/whois.rb

* sample/wsdl/raa2.4/*

* test/soap/header/*

* test/soap/ssl/*

* test/soap/struct/*

* test/soap/swa/*

* test/soap/wsdlDriver/*

* test/wsdl/multiplefault.wsdl

* test/wsdl/simpletype/*

* test/wsdl/test_multiplefault.rb

* modified files:

* lib/soap/baseData.rb

* lib/soap/element.rb

* lib/soap/generator.rb

* lib/soap/netHttpClient.rb

* lib/soap/parser.rb

* lib/soap/property.rb

* lib/soap/soap.rb

* lib/soap/streamHandler.rb

* lib/soap/wsdlDriver.rb

* lib/soap/wsdlDriver.rb

* lib/soap/encodingstyle/handler.rb

* lib/soap/encodingstyle/literalHandler.rb

* lib/soap/encodingstyle/soapHandler.rb

* lib/soap/mapping/factory.rb

* lib/soap/mapping/mapping.rb

* lib/soap/mapping/registry.rb

* lib/soap/mapping/rubytypeFactory.rb

* lib/soap/mapping/wsdlRegistry.rb

* lib/soap/rpc/cgistub.rb

* lib/soap/rpc/driver.rb

* lib/soap/rpc/proxy.rb

* lib/soap/rpc/router.rb

* lib/soap/rpc/soaplet.rb

* lib/soap/rpc/standaloneServer.rb

* lib/wsdl/data.rb

* lib/wsdl/definitions.rb

* lib/wsdl/operation.rb

* lib/wsdl/parser.rb

* lib/wsdl/soap/definitions.rb

* lib/wsdl/xmlSchema/complexContent.rb

* lib/wsdl/xmlSchema/complexType.rb

* lib/wsdl/xmlSchema/data.rb

* lib/wsdl/xmlSchema/parser.rb

* lib/wsdl/xmlSchema/schema.rb

* lib/xsd/datatypes.rb

* lib/xsd/qname.rb

* sample/soap/sampleStruct/server.rb

* sample/wsdl/amazon/AmazonSearch.rb

* sample/wsdl/amazon/AmazonSearchDriver.rb

* test/soap/test_property.rb

* test/soap/calc/test_calc_cgi.rb

* test/wsdl/test_emptycomplextype.rb

* summary

* add SOAP Header mustUnderstand support.

* add HTTP client SSL configuration and Cookies support (works

completely with http-access2).

* add header handler for handling sending/receiving SOAP Header.

* map Ruby's anonymous Struct to common SOAP Struct in SOAP Object

Model. it caused error.

* add WSDL simpleType support to restrict lexical value space.

161 lines of code changed in:

nahi 2004-01-06 03:20

* import soap4r/1.5.2;

* lib/soap/{attachment.rb,baseData.rb,encodingstyle/soapHandler.rb}:

introduce SOAPExternalReference class as a referenct to SOAPEnvelope

external content.

* lib/soap/{attachment.rb,mimemessage.rb}: great SwA (SOAP messages

with Attachments) support code by Jamie Herre.

* lib/soap/{element.rb,marshal.rb,parser.rb,processor.rb,

streamHandler.rb,wsdlDriver.rb}: SwA support.

* lib/soap/rpc/{cgistub.rb,driver.rb,element.rb,proxy.rb,router.rb,

soaplet.rb}: SwA support and refactoring.

* lib/soap/generator.rb, lib/soap/mapping/mapping.rb: follow

SOAPReference#initialize signature change.

* lib/soap/mapping/factory.rb: deleted unused methods.

* lib/soap/mapping/rubytypeFactory.rb: do no ignore case while xsi:type

string <-> Ruby class name matching.

* lib/xsd/datatypes.rb: check the smallest positive non-zero

single-precision float exactly instead of packing with "f".


* test/soap/test_basetype.rb, test/xsd/test_xsd.rb: use 1.402e-45, not

1.4e-45. 1.4e-45 is smaller than 2 ** -149...

* test/soap/test_basetype.rb, test/soap/marshal/test_marshal.rb,

test/xsd/test_xsd.rb: use "(-1.0 / (1.0 / 0.0))" instead of "-0.0".

* test/soap/test_streamhandler.rb: revert to the previous test that

warns "basic_auth unsupported under net/http".

12 lines of code changed in:

nahi 2003-12-04 05:05

* lib/soap/soap.rb: add SOAP::Env module for environment repository

such as HTTP_PROXY.

* lib/soap/property.rb: property implementation.

* lib/soap/streamHandler.rb, lib/soap/wsdlDriver.rb,

lib/soap/rpc/driver.rb: use soap/property.rb.

* lib/wsdl/importer.rb, lib/soap/wsdlDriver.rb, lib/soap/rpc/driver.rb:

use SOAP::Env.

* lib/soap/netHttpClient.rb: add basic_auth, ssl_config, and cookie

management interface, but ignored for now.

* lib/xsd/charset.rb: add XSD::Charset.encoding= interface to set

wiredump charset explicitly. it was fixed to 'utf-8' when iconv or

uconv module was found.

10 lines of code changed in:

nahi 2003-11-28 06:53

* lib/soap/streamHandler.rb: drop unused http parameters.

* lib/soap/encodingstyle/soapHandler.rb, lib/soap/mapping/factory.rb,

lib/soap/mapping/mapping.rb, lib/soap/mapping/registry.rb,

lib/wsdl/soap/complexType.rb: ApacheSOAP's map support was broken under WSDL

dynanic client environment. fixed.

* test/wsdl/raa/*: add tests.

* lib/xsd/datatypes.rb: dateTime precision bug fix (at least, I hope.) bug of

soap4r. XSDDateTimeImple.to_time passed a Float to Time.local/ as an

usec, and NUM2LONG(rb_num2long for Float) causes rounding error.

48 lines of code changed in:

nahi 2003-11-25 08:31

* lib/soap/**/*.rb, lib/wsdl/**/*.rb, lib/xsd/**/*.rb: changed license; GPL2 -> Ruby's.

* lib/soap/rpc/driver.rb, lib/soap/wsdlDriver.rb, lib/soap/streamHandler.rb: add interface to streamhandler.

* lib/soap/marshal.rb: raise error if parse fails.

* lib/soap/netHttpClient.rb: add https support. Patched by Oliver M. Bolzer.

* lib/soap/netHttpClient.rb: dump HTTP response message body by itself.

* lib/soap/rpc/driver.rb, lib/soap/rpc/proxy.rb, lib/soap/wsdlDriver.rb: add driver#mandatorycharset interface to foce using charset for parsing response from buggy server.

* lib/soap/encodingstyle/soapHandler.rb: support Apache Axis's half typed multi-ref array.

* lib/soap/mapping/factory.rb, lib/soap/mapping/registry.rb: map SOAPStruct which has multi-accessors which name are the same, to an array.

* lib/soap/rpc/element.rb: fixed illegal parameter order.

* lib/soap/rpc/element.rb: element name of response message could have the name other than 'return'.

* lib/wsdl/operation.rb, lib/wsdl/operationBinding.rb, lib/wsdl/soap/classDefCreator.rb, lib/wsdl/soap/methodDefCreator.rb, lib/wsdl/soap/methodDefCreatorSupport.rb: WSDL/1.1 allows plural fault definition in a operation. [ruby-talk:84948]

* test/wsdl/multiplefault.wsdl, test/wsdl/test_multiplefault.rb: add test for above fix.

* lib/wsdl/soap/complexType.rb: support WSDL array definition with maxOccures="unbound".

* lib/xsd/charset.rb: use cp932 under emx. Patched by Siena. / SHINAGAWA, Norihide in [ruby-dev:21972]

* lib/xsd/xmlparser/parser.rb: set @charset nil by default. Nil means 'follow encoding declaration in XML'.

* sample/soap/digraph.rb, sample/wsdl/amazon/wsdlDriver.rb, sample/wsdl/googleSearch/sampleClient.rb, sample/wsdl/googleSearch/wsdlDriver.rb, test/wsdl/test_emptycomplextype.rb, test/wsdl/marshal/test_wsdlmarshal.rb, test/xsd/test_xmlschemaparser.rb: use { |f| } instead of [ruby-dev:21964]

* test/wsdl/emptycomplextype.wsdl, test/wsdl/test_emptycomplextype.rb: simplify the test case.

* test/wsdl/axisArray/*: add tests for axis's array encoding.

44 lines of code changed in:

matz 2003-11-22 05:00

* gc.c (Init_stack): stack region is far smaller than usual if

pthread is used.

* marshal.c (w_extended): singleton methods should not be checked

when dumping via marshal_dump() or _dump(). [ruby-talk:85909]

* file.c (getcwdofdrv): avoid using getcwd() directly, use

my_getcwd() instead.

* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine

<>. [ruby-core:01596]

* marshal.c (w_object): LINK check earlier than anything else,

i.e. do not dump TYPE_IVAR for already dumped objects.

(ruby-bugs PR#1220)

* eval.c (rb_eval): call "inherited" only when a new class is

generated; not on reopening.

* eval.c (eval): prepend error position in evaluating string to

* revived NextStep, OpenStep, and Rhapsody ports which

had become unbuildable; enhanced --enable-fat-binary option so that

it accepts a list of desired architectures (rather than assuming a

fixed list), or defaults to a platform-appropriate list if user does

not provide an explicit list; made the default list of architectures

for MAB (fat binary) more comprehensive; now uses -fno-common even

when building the interpreter (in addition to using it for

extensions), thus allowing the interpreter to be embedded into a

plugin module of an external project (in addition to allowing

embedding directly into an application); added checks for

<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now

ensures that -I/usr/local/include is employed when extensions'

extconf.rb scripts invoke have_header() since extension checks on

NextStep and OpenStep will fail without it if the desired resource

resides in the /usr/local tree; fixed formatting of --help message.

* $(LIBRUBY_A) rule now deletes the archive before

invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives

(see configure's --enable-fat-binary option); added rule for new


* defines.h: fixed endian handling during MAB build (see configure's

--enable-fat-binary option) to ensure that all portions of the

project see the correct WORDS_BIGENDIAN value (some extension modules

were getting the wrong endian setting); added missing constants

GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep

and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H

define in NeXT section.

* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on

NextStep since, on some installations, this value always resolves

uselessly to zero.

* dln.c: added error reporting to NextStep extension loader since the

previous behavior of failing silently was not useful; now ensures

that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined

for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice

on Rhapsody since this header lacks multiple-include protection,

which resulted in "redefinition" compilation errors.

* main.c: also create hard reference to objc_msgSend() on NeXT

platforms (in addition to Apple platforms).

* lib/mkmf.rb: now exports XCFLAGS from configure script to extension

makefiles so that extensions can be built MAB (see configure's

--enable-fat-binary option); also utilize XCFLAGS in cc_command()

(but not cpp_command() because MAB flags are incompatible with

direct invocation of `cpp').

* ext/curses/extconf.rb: now additionally checks for presence of these

curses functions which are not present on NextStep or Openstep:

bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),

setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),

wscrl(), wsetscrreg()

* ext/curses/curses.c: added appropriate #ifdef's for additional set of

curses functions now checked by extconf.rb; fixed curses_bkgd() and

window_bkgd() to correctly return boolean result rather than numeric

result; fixed window_getbkgd() to correctly signal an error by

returning nil rather than -1.

* ext/etc/etc.c: setup_passwd() and setup_group() now check for null

pointers before invoking rb_tainted_str_new2() upon fields extracted

from `struct passwd' and `struct group' since null pointers in some

fields are common on NextStep/OpenStep (especially so for the

`pw_comment' field) and rb_tainted_str_new2() throws an exception

when it receives a null pointer.

* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for

platforms such as NextStep and OpenStep which lack strdup().

* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),

gethostbyaddr(), and gethostbyname() from (const char*) to non-const

(char*) for older platforms such as NextStep and OpenStep.

* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for

platforms such as NextStep and OpenStep which lack strdup(); include

<netinet/in_systm.h> if present for NextStep and OpenStep; cast first

argument of gethostbyaddr() and getservbyname() from (const char*) to

non-const (char*) for older platforms.

* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for

platforms such as NextStep and OpenStep which lack strdup().

1 lines of code changed in:

nahi 2003-10-14 16:14

* lib/soap/baseData.rb: Introduce SOAPType as the common ancestor of

SOAPBasetype and SOAPCompoundtype.

* lib/soap/generator.rb, lib/soap/element.rb, lib/soap/encodingstyle/*:

Encoding methods signature change. Pass SOAPGenerator as a parameter.

* lib/soap/mapping/*, test/soap/marshal/test_marshal.rb: Refactoring for better

marshalling/unmarshalling support. Now I think SOAP marshaller supports all

kind of object graph which is supported by Ruby's original marshaller. Of

course there could be bugs as always. Find it. :-)

* lib/soap/rpc/standaloneServer.rb: Set severity threshould to INFO. DEBUG is

too noisy.

* lib/xsd/datatypes.rb: DateTime#of is obsoleted. Use DateTime#offset.

* test/wsdl/emptycomplextype.wsdl, test/xsd/xmlschema.xml: Avoid useless


6 lines of code changed in:

nahi 2003-10-05 06:42

* lib/xsd/datatypes.rb: Rational -> Decimal string bug fix.

* test/soap/marshal/test_marshal.rb: ditto.

* test/soap/calc/test_calc_cgi.rb: add Config::CONFIG["EXEECT"] to RUBYBIN.

1 lines of code changed in:

nahi 2003-10-03 18:15

* lib/xsd/datatypes.rb: dump sign by itself. under the problematic platform,

sprintf("%+.10g", -0.0) => +0. Sigh.

* sample/wsdl/amazon/*: update schema ver2 to ver3.

36 lines of code changed in:

nahi 2003-10-01 16:29

* test/logger/test_logger.rb: unlinking file before close causes problem under

win32 box.

* lib/xsd/datatypes.rb(XSDFloat, XSDDouble): add +/- sign explicitly when

stringified and embedded into XML instance. Ruby's sprintf may format -0.0

as "0.0" (no minus sign) depending on underlying C sprintf implementation.

* test/xsd/test_xsd.rb, test/soap/test_basetype.rb: follow above change.

* test/soap/calc/*: give httpd config param "CGIInterpreter".

"/usr/bin/env ruby" thing does not work under non-Unix boxes.

* ChangeLog: corrected wrong DoW of my log entries...

2 lines of code changed in:

nahi 2003-09-28 10:33

* forgot to add this file in the previous commit.

11 lines of code changed in:

nahi 2003-09-24 16:18

* lib/soap/* (29 files): SOAP4R added.

* lib/wsdl/* (42 files): WSDL4R added.

* lib/xsd/* (12 files): XSD4R added.

* test/soap/* (16 files): added.

* test/wsdl/* (2 files): added.

* test/xsd/* (3 files): added.

* sample/soap/* (27 files): added.

* sample/wsdl/* (13 files): added.

1720 lines of code changed in:

Generated by StatSVN 0.3.2-SNAPSHOT