2016-08-02 21 views
0

Ich bin neu in Jaxb Verwendung, ich bin in der Lage, eine Java-Klasse mit XML-Annotationen zu .xml zu marshallen aber nicht in der Lage Daten während der Unmarshalling abrufen. Wenn ich einen Sysout für meine unmararshaled Daten mache, drucke es die Adresse des Kontextes anstatt die tatsächlichen Werte. Ich bin mir nicht sicher, wo ich falsch liege.JAXB unmarshalling im Detail

<collections> 
    <collectionclass="testclass"> 
     <group> 
      <header code="T123" type="toys"/> 
      <obj1 location="1" shelf="4" /> 
      <obj2 location="7" shelf="2" count="3"/> 
       <associations> 
        <association type="String" associatedName="train" associatedFieldSize="0"/> 
        <association type="DataLength" associatedName="ship" associatedFieldSize="0"/> 
       </associations> 
      </obj2> 
     </group> 
      <collectionclass="testclass"> 
    </collections> 

Auch würde Ich mag mehr über Begriffe wie „jaxb Kontext“ wissen und „Java-Modelle/java Modellklassen“ erzeugt auf unmarshalling ein XML-Dokument und wie es in Bild kommt.

Vielen Dank im Voraus!

Antwort

0

Versuchen Sie wie folgt.

try {

File file = new File("C:\\file.xml"); 
    JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class); 

    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 
    Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file); 
    System.out.println(customer); 

    } catch (JAXBException e) { 
    e.printStackTrace(); 
    } 
+0

Ich habe versucht, so etwas wie dieses, JAXBContext jaxbContext = JAXBContext.newInstance (Collections.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); Sammlungen collectionContext = (Sammlungen) jaxbUnmarshaller.unmarshal (neue Datei ("TestXml.xml")); System.out.println (sammlungskontext); OUTPUT: [email protected] – yellow

+0

Sieht aus, als ob Sie versuchen, das Objekt zu drucken. Sie sollten die Eigenschaften in diesem Objekt drucken, dann können nur Sie die Werte sehen. System.out.println (Kundenname); – spm