मार्क,
हालांकि इस थोड़ी देर पहले कहा गया था, मैं एक समाधान में आए और सोचा था कि यह भविष्य में लोगों को मदद कर सकता है।
मेरी आवश्यकता समान थी। मेरे पास एक सहयोगी से एक .xsd है और इससे क्लास फ़ाइल जेनरेट करना चाहूंगा। मेरी आशा है कि मैं आसानी से ऑब्जेक्ट को मार्शल कर पाऊंगा और इसे अपने रीस्टफुल एंड-पॉइंट पर पास कर पाऊंगा, जहां उसका जावा सर्वर पेलोड को उतार देगा और बिना किसी अतिरिक्त प्रयास के गतिशील रूप से ऑब्जेक्ट का निर्माण करेगा।
मुझे मिला समाधान मुझे https://github.com/rubyjedi/soap4r से soap4r
प्राप्त करना था। मैं बिन निर्देशिका निष्पादन में दो * .rb फ़ाइलें बनाया और फिर भाग गया:
bin/xsd2ruby.rb --xsd <source>.xsd --classdef <filename_prefix>
यह xsd:complexType
एक वर्ग के रूप में कार्यान्वित से प्रत्येक के साथ एक नई फ़ाइल उत्पन्न। अन्य सभी जटिल प्रकार भी सही विरासत संबंधों के साथ उत्पन्न हुए थे और सभी xsd:element
को एक आवृत्ति चर के रूप में परिभाषित किया गया था और एक क्लास प्रारंभकर्ता भी परिभाषित किया गया था।
से ही चल रहा है xsd2ruby.rb
झुकेंगे विकल्प:
~/src/test/soap4r:bin/xsd2ruby.rb
Usage: bin/xsd2ruby.rb --xsd xsd_location [options]
xsd_location: filename or URL
Example:
bin/xsd2ruby.rb --xsd myapp.xsd --classdef foo
Options:
--xsd xsd_location
--classdef [filenameprefix]
--mapping_registry
--mapper
--module_path [Module::Path::Name]
--force
--quiet
पूर्णता के लिए के लिए, मैं के साथ मेरी कक्षा बढ़ाया निम्नलिखित (यह एक "संभावना" वर्ग है):
class Prospect
include Enumerable
def each(&block)
self.instance_variables.collect{|v| (v.gsub /@/, '').to_sym }.each(&block)
end
end
यह मुझे इसे Net::HTTP::Post
अनुरोध के शरीर के रूप में उपयोग करने दें।
एक मुफ्त to_xml
के प्रश्न के लिए: मुझे यह नहीं मिला है। रूबी ऑब्जेक्ट बॉक्स के बाहर to_yaml
और to_json
के साथ आता है, लेकिन मुझे XML में कोई आसान रूपांतरण नहीं मिला है। तो यह मेरे खुद के "to_xml" रोल में आया।
उम्मीद है कि इससे मदद मिलती है।
स्रोत
2011-03-31 17:28:13
एक तरीका है कि आप सक्रिय रेकॉर्ड क्लास-ऑब्जेक्ट्स को xml में क्रमबद्ध कर सकते हैं। लेकिन मुझे नहीं लगता कि आप उस तरह के कुछ ढूंढ रहे हैं। – Chirantan