जावा में, हम JAXB2 के साथ बहुत काम करते हैं। वस्तु < -> एक्सएमएल मैपिंग जावा वर्गों में टिप्पणी के रूप में परिभाषित कर रहे हैं:क्या XML बाध्यकारी के लिए एक जावास्क्रिप्ट एपीआई है - जावा के लिए जेएक्सबी के अनुरूप?
@XmlRootElement(name="usertask", namespace="urn:test")
public class UserTask
{
@XmlElement(namespace="urn:test")
public String getAssignee() { ... }
public void setAssignee(String assignee) { ... }
}
JAXB क्रम इन टिप्पणियों को पढ़ने के लिए और unmarshaller बना सकते हैं एक वस्तु उदाहरण या XML में मार्शल एक वस्तु में XML को पार्स करने।
जेएक्सबी एक स्कीमा कंपाइलर (एक्सजेसी) जहाज करता है जो एक्सएमएल स्कीमा से एनोटेटेड कक्षाएं उत्पन्न कर सकता है, जो एक और शानदार विशेषता है।
हाल ही में हम क्लाइंट-साइड जावास्क्रिप्ट के साथ बहुत कुछ कर रहे हैं। हमें वहां एक्सएमएल प्रोसेसिंग की भी आवश्यकता है। उदाहरण के लिए, हमें this one जैसे डब्ल्यूपीएस दस्तावेज़ों को पार्स करने की आवश्यकता है। ये दस्तावेज नमूना एक्सएमएल के लिए different XML schemas (यहां the WPS 1.0.0 schema का पालन करते हैं) का पालन करते हैं। XML के बजाय जावास्क्रिप्ट ऑब्जेक्ट्स के साथ काम करना बहुत अच्छा होगा, इससे वास्तव में बहुत अधिक प्रयास बचाए जाते हैं। कुछ मामलों में हम JSON- आधारित समाधानों का उपयोग कर सकते हैं जैसे DWR, लेकिन कई मामलों में हमें क्लाइंट-साइड पर XML को संसाधित करना होगा।
मेरा प्रश्न है:
वहाँ जावास्क्रिप्ट के लिए JAXB के कुछ अनुरूप है?
कुछ उपकरण जो एक्सएमएल स्कीमा को कुछ एक्सएमएल < -> ऑब्जेक्ट मैपिंग में संकलित करेंगे और एक्सएमएल और जावास्क्रिप्ट ऑब्जेक्ट्स के बीच कनवर्ट करने के लिए रनटाइम प्रदान करेंगे?
मैं आसानी से कुछ ऐसे स्वरूप में उत्पन्न मैपिंग कल्पना कर सकता:
UserTask = new JSXML.XmlRootElement({
name: "usertask",
namespace: "urn:test",
properties: [
{
assignee: new JSXML.XmlElement({
name: "assignee",
namespace: "urn:test",
type: new JSXML.XSD.String()
})
}
]
});
और यह बहुत unmarshaller या marshaller निर्माण करने के लिए पर्याप्त होना चाहिए।
जेएक्सबी के लिए JSON समर्थन बिल्कुल वही है जो मुझे चाहिए। लेकिन शुद्ध जावास्क्रिप्ट में, क्लाइंट-साइड पर। जर्सी और कं सर्वर पक्ष पर इस्तेमाल किया जा सकता है। अभी हमारे पास एक डीडब्लूआर-आधारित सर्वर साइड समाधान है जो ठीक काम करता है। लेकिन मुझे क्लाइंट-केवल समाधान की आवश्यकता है (सर्वर-साइड प्रॉक्सी अभी भी ठीक है)। – lexicore