2012-03-21 17 views
7

मैं Xstream साथ एक्सएमएल करने के लिए एक जावा वर्ग को क्रमानुसार करना चाहता था।Xstream डबल रेखांकन से निपटने (जावा)

मैं करने के लिए आवश्यक एक रेखांकन (canal_operateur) के साथ एक XML तत्व उत्पन्न, लेकिन Xstream एक्सएमएल तत्व नाम पर एक दूसरे रेखांकन कहते हैं।

तो केवल एक ही रेखांकन रखने के लिए?

इस वर्ग के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ:

<document> 
    <canal__operateur>canal</canal__operateur> 
    <commentaire>commentaire</commentaire> 
    <metadonnees/> 
</document> 

उत्तर

7

अनुसार here लिए:

Xstream नक्शे जावा वर्ग के नाम और फ़ील्ड नाम

public class Document implements Serializable { 
    private String typedoc; 
    private Fichier fichier; 
    private String canalOperateur; 
    //xstream.aliasField("canal_operateur", Document.class, "canalOperateur"); 
    /* 
    ** setter and getter 
    */ 
} 

Xstream रेखांकन दोगुना हो जाता है एक्सएमएल टैग या विशेषताओं के लिए। दुर्भाग्य से यह मैपिंग 1: 1 नहीं हो सकता है, क्योंकि जावा में पहचानकर्ताओं के लिए उपयोग किए गए कुछ वर्ण XML नामों में अमान्य हैं। इसलिए एक्सस्ट्रीम इन वर्णों को प्रतिस्थापन के साथ बदलने के लिए XmlFriendlyNameCoder का उपयोग करता है। डिफ़ॉल्ट रूप से यह नामकोडर अंडरस्कोर से बचने वाले चरित्र के रूप में उपयोग करता है और इसलिए अंडरस्कोर से भी बचने के लिए है। आप XmlFriendlyNameCoder या एक पूरा अलग कार्यान्वयन NoNameCoder की तरह बिल्कुल भी नाम कोडिंग को रोकने के लिए की एक अलग से कॉन्फ़िगर किया गया उदाहरण प्रदान कर सकता है। हालांकि यह सुनिश्चित करने के लिए आपकी ज़िम्मेदारी है कि परिणामस्वरूप नाम XML के लिए मान्य हैं।

एक बहुत thans
+0

! NoNameCoder खुराक काम! – codeisee

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