mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7c95e34533
commit
15b7d43988
31 changed files with 2817 additions and 0 deletions
42
lib/xsd/mapping.rb
Normal file
42
lib/xsd/mapping.rb
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# XSD4R - XML Mapping for Ruby
|
||||
# Copyright (C) 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
||||
|
||||
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
||||
# redistribute it and/or modify it under the same terms of Ruby's license;
|
||||
# either the dual license version in 2003, or any later version.
|
||||
|
||||
|
||||
require "soap/parser"
|
||||
require 'soap/encodingstyle/literalHandler'
|
||||
require "soap/generator"
|
||||
require "soap/mapping"
|
||||
require "soap/mapping/wsdlliteralregistry"
|
||||
|
||||
|
||||
module XSD
|
||||
|
||||
|
||||
module Mapping
|
||||
MappingRegistry = SOAP::Mapping::WSDLLiteralRegistry.new
|
||||
MappingOpt = {:default_encodingstyle => SOAP::LiteralNamespace}
|
||||
|
||||
def self.obj2xml(obj, elename = nil, io = nil)
|
||||
if !elename.nil? and !elename.is_a?(XSD::QName)
|
||||
elename = XSD::QName.new(nil, elename)
|
||||
end
|
||||
elename ||= XSD::QName.new(nil, SOAP::Mapping.name2elename(obj.class.to_s))
|
||||
soap = SOAP::Mapping.obj2soap(obj, MappingRegistry)
|
||||
soap.elename = elename
|
||||
generator = SOAP::SOAPGenerator.new(MappingOpt)
|
||||
generator.generate(soap, io)
|
||||
end
|
||||
|
||||
def self.xml2obj(stream)
|
||||
parser = SOAP::Parser.new(MappingOpt)
|
||||
soap = parser.parse(stream)
|
||||
SOAP::Mapping.soap2obj(soap, MappingRegistry)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue