2012-03-21 23 views
7

Bir java sınıfını XStream ile XML'e serileştirmek istedim.XStream çift altı çizili işleme (Java)

Tek alt çizgi (canal_operateur) içeren bir XML öğesi oluşturmam gerekiyordu, ancak XStream, xml öğesi adında ikinci bir alt çizgi ekliyor.

Peki, yalnızca bir alt çizgi nasıl tutulur? Bu sınıf için varsayılan yapılandırma ile

:

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

cevap

7

göre here için:

XStream haritalar Java sınıfı adları ve alan adları

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 alt çizgiyi iki katına XML etiketlerine veya özniteliklerine. Ne yazık ki bu eşleme, 1: 1 olamaz, çünkü Java'daki tanımlayıcılar için kullanılan bazı karakterleri XML adlarında geçersizdir. Bu nedenle XStream, bu karakterlerini yerine koymak üzere bir XmlFriendlyNameCoder kullanır. Varsayılan olarak, bu NameCoder bir çıkış karakteri olarak bir alt çizgi kullanır ve bu nedenle altkümenin kendisinden de kaçmak zorundadır. İsim kodlamasını engellemek için XmlFriendlyNameCoder öğesinin farklı yapılandırılmış örneğini veya NoNameCoder benzeri tam bir uygulama sağlayabilirsiniz. Ancak, sonuçta ortaya çıkan adlarının XML için geçerli olmasını sağlamak sizin sorumluluğunuzdadır.

+0

thans çok! NoNameCoder doz çalışması! – codeisee

İlgili konular