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')