2014-04-01 88 views
2

我試圖地圖XML綁定文件(JAXB-MOXY)下面的類:MOXY JAXB:映射成員屬性

public class A{ 
    private String name; 
    private B b; 
    ..... 
} 


public class B{ 
    private String surname; 
} 

在綁定文件我有:

.... 
<java-type name="A" xml-accessor-type="NONE"> 
     <java-attributes> 
      <xml-element java-attribute="b$surname" name="surname"/> 
      <xml-element java-attribute="name" name="name"/> 
     </java-attributes> 
</java-type> 
.... 

不幸,生成的xml總是姓氏字段爲空(並且我記錄此錯誤消息:忽略類[A]上的屬性[b $姓氏],因爲沒有爲其生成屬性)。

你能幫我解開如何映射成員屬性嗎?

在此先感謝。

回答

0

如果你希望得到下面的XML文檔:

<a> 
    <surname>Doe</surname> 
    <name>Jane</name> 
</a> 

對於你已經張貼在你的問題中的類,那麼你可以使用下面的映射文件。在本文檔中,您將b字段映射到surname元素,然後將B類中的單個字段與@XmlValue映射。

<?xml version="1.0"?> 
<xml-bindings 
    xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" 
    package-name="forum22788599" 
    xml-accessor-type="FIELD"> 
    <java-types> 
     <java-type name="A"> 
      <xml-root-element/> 
      <xml-type prop-order="b name"/> 
      <java-attributes> 
       <xml-element java-attribute="b" name="surname"/> 
       <xml-element java-attribute="name"/> 
      </java-attributes> 
     </java-type> 
     <java-type name="B"> 
      <java-attributes> 
       <xml-value java-attribute="surname"/> 
      </java-attributes> 
     </java-type> 
    </java-types> 
</xml-bindings> 
使用
+1

你的[這裏的答案](http://stackoverflow.com/questions/22790094/mapping-xml-to-java-object-that-doesnt-match-xml-structure/22864292#22864292)'當Java對象不與XML結構對齊時,xml-path對於類似但更復雜的映射問題非常有用。謝謝! –