2009-09-30 5 views
14

मैं एक वर्ग है कि इस तरह दिखता है परिवर्तित करने के लिए देख रहा हूँ ...टेक्स्ट नोड मान के जैक्सब समतुल्य क्या है?

public class Amenity { 
    public String id; 
    public String value; 
} 
निम्नलिखित एक्सएमएल में

का उपयोग कर JAXB एनोटेशन:

<amenity id="id-string-here">value-string-here</amenity> 

किसी को क्या एनोटेशन value सदस्य चर पर उपयोग करने के लिए पता है यह प्राप्त करने के? निकटतम मैं अब तक मिल गया है है:

@XmlRootElement 
public class Amenity { 
    @XmlAttribute 
    public String id; 
    @XmlElement 
    public String value; 
} 

दुर्भाग्य से इस दृष्टिकोण मुझे निर्दिष्ट करने के लिए कि value सदस्य चर का अपना टैग <value></value> के रूप में प्रदान नहीं किया जाना चाहिए की अनुमति नहीं है।

+0

के रूप में कई उल्लेख किया गया है, इस प्रश्न का शीर्षक भ्रामक था क्योंकि यह सीडीएटीए ब्लॉक को प्रस्तुत करने के लिए पूछता है लेकिन ऊपर दिया गया उदाहरण स्पष्ट रूप से इसका वर्णन नहीं करता है। जब मैंने पोस्ट किया था तो मुझे सीडीएटीए ब्लॉक की आवश्यकता नहीं थी, लेकिन आपको @XmlValue एनोटेशन के बारे में जानने की आवश्यकता थी। यही कारण है कि मैंने जर्नबोजो का जवाब दिया। उस समय से, मुझे वास्तव में सीडीएटीए ब्लॉक का उत्पादन करने के बारे में जानकारी चाहिए; तो बाद के उत्तरों भी बहुत उपयोगी थे। मैंने प्रत्येक को वोट दिया है। सभी की मदद के लिए धन्यवाद! – ra9r

उत्तर

21

मुझे इस बारे में 100% निश्चित नहीं है, लेकिन @XmlElement के बजाय @XmlValue एनोटेशन का उपयोग करने का प्रयास करें।

+3

+1 जो बिल्कुल सही है – skaffman

0

जेएक्सबी सीडीएटीए एक्सएमएल प्रकारों से/से मार्शलिंग/मार्शलिंग का समर्थन नहीं करता है।

+1

जेएक्सबी स्पेक सीडीएटीए को कवर नहीं करता है, हालांकि एक्सेलिपलिंक जेएक्सबी (MOXy) जैसे जेएक्सबी कार्यान्वयन में सीडीएटीए को संभालने के लिए एक्सटेंशन होते हैं, http://bdoughan.blogspot.com/2010/07/cdata-cdata- रन-रन-डेटा-रन.html –

4

यह सवाल की तरह लग रहा पाठ नोड्स के लिए नहीं CDATA नोड्स जिक्र कर रहे थे, लेकिन यहाँ पर कैसे EclipseLink JAXB (MOXY) संभालती CDATA का लिंक है:

+2

यह सुनिश्चित नहीं है कि इस उत्तर को एक कम वोट क्यों मिला। यह उन लोगों के लाभ के लिए छोड़ा गया था जिन्होंने इस शीर्षक के आधार पर मुद्दा पाया था। इसके लायक होने के लिए, मैंने अपना खुद का छोड़ने से पहले जर्नबोजो के @ एक्सएमएलवेल्यू जवाब को वोट दिया। –

+0

संदर्भ के लिए धन्यवाद। यह आश्चर्यजनक है कि सीडीएटीए को मौजूदा स्पेक के हिस्से के रूप में नहीं माना जाता था, लेकिन मुझे लगता है कि जब तक स्ट्रिंग राइटर्स सही मार्कअप को सही ढंग से एन्कोड करते हैं, वहां इसकी आवश्यकता नहीं होनी चाहिए। – ra9r

1

This documentation लिखते हैं:

प्रश्न। मैं मार्शलर को सीडीएटीए ब्लॉक कैसे उत्पन्न कर सकता हूं?

ए। यह कार्यक्षमता सीधे जेएक्सबी से उपलब्ध नहीं है, लेकिन आप सीडीएटीए ब्लॉक बनाने के लिए अपाचे Xerces-J XMLSerializer को कॉन्फ़िगर कर सकते हैं। अधिक जानकारी के लिए कृपया JaxbCDATASample.java नमूना ऐप की समीक्षा करें।

(btw, यह अपने विशेष सवाल का जवाब नहीं है, लेकिन जब से सवाल शीर्षक भ्रामक है, और इस jaxb CDATA के लिए पहले गूगल परिणाम है, मैं थोड़ा अलग सवाल का जवाब कर रहा हूँ)

संबंधित मुद्दे