D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
proc
/
self
/
root
/
proc
/
thread-self
/
root
/
opt
/
alt
/
ruby18
/
lib64
/
ruby
/
1.8
/
xsd
/
Filename :
mapping.rb
back
Copy
# 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