lib/wsdl/xmlSchema/xsd2ruby.rb in soap4r-1.5.7 vs lib/wsdl/xmlSchema/xsd2ruby.rb in soap4r-1.5.8
- old
+ new
@@ -7,19 +7,23 @@
require 'xsd/codegen/gensupport'
require 'wsdl/xmlSchema/importer'
require 'wsdl/soap/classDefCreator'
+require 'wsdl/soap/classDefCreatorSupport'
require 'wsdl/soap/literalMappingRegistryCreator'
+require 'wsdl/soap/classNameCreator'
require 'logger'
module WSDL
module XMLSchema
class XSD2Ruby
+ include WSDL::SOAP::ClassDefCreatorSupport
+
attr_accessor :location
attr_reader :opt
attr_accessor :logger
attr_accessor :basedir
@@ -39,10 +43,11 @@
@opt = {}
@logger = Logger.new(STDERR)
@basedir = nil
@xsd = nil
@name = nil
+ @name_creator = WSDL::SOAP::ClassNameCreator.new
end
def create_file
@modulepath = @opt['module_path']
create_classdef if @opt.key?('classdef')
@@ -53,11 +58,11 @@
def create_classdef
@logger.info { "Creating class definition." }
@classdef_filename = @name + '.rb'
check_file(@classdef_filename) or return
write_file(@classdef_filename) do |f|
- f << WSDL::SOAP::ClassDefCreator.new(@xsd, @modulepath).dump
+ f << WSDL::SOAP::ClassDefCreator.new(@xsd, @name_creator, @modulepath).dump
end
end
def create_mapping_registry
@logger.info { "Creating mapping registry definition." }
@@ -76,21 +81,25 @@
f << dump_mapper
end
end
def dump_mapping_registry
- creator = WSDL::SOAP::LiteralMappingRegistryCreator.new(@xsd, @modulepath)
- module_name = XSD::CodeGen::GenSupport.safeconstname(
- @name + 'MappingRegistry')
+ defined_const = {}
+ creator = WSDL::SOAP::LiteralMappingRegistryCreator.new(@xsd, @name_creator, @modulepath, defined_const)
+ module_name = XSD::CodeGen::GenSupport.safeconstname(@name + 'MappingRegistry')
if @modulepath
module_name = [@modulepath, module_name].join('::')
end
m = XSD::CodeGen::ModuleDef.new(module_name)
m.def_require("xsd/mapping")
m.def_require("#{@classdef_filename}")
varname = 'Registry'
m.def_const(varname, '::SOAP::Mapping::LiteralRegistry.new')
m.def_code(creator.dump(varname))
+ #
+ defined_const.each do |ns, tag|
+ m.def_const(tag, dq(ns))
+ end
m.dump
end
def dump_mapper
class_name = XSD::CodeGen::GenSupport.safeconstname(@name + 'Mapper')