MyXmlToUser.java - Unmarshal XML File to Data Object to

Q

How to unmarshal XML files to data objects using JAXB API?

✍: FYIcenter.com

A

If you want to unmarshal xml files to data objects using JAXB API, you can follow these suggestions:

1. Create a JAXBContext instance with the package name of the data type classes generated with the JAXB XJC tool:

      JAXBContext c = JAXBContext.newInstance("com.fyicenter.demo");	  

2. Then create an Unmarshaller instance from the JAXBContext:

      Unmarshaller m = c.createUnmarshaller();

3. Finally, unmarshal the XML file to a data object with the Unmarshaller:

      User u = (User) m.unmarshal(new FileInputStream("User.xml"));

Here is the entire example program, MyXmlToUser.java:

// Copyright (c) FYIcenter.com
import com.fyicenter.demo.User;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.*;

public class MyXmlToUser {
   public static void main(String[] args) throws Exception {
      String x = "User.xml";
      if (args.length < 1) {
          System.out.println("USAGE: java MyXmlToUser xml");
          System.exit(-1);
      }
      x = args[0];

	  System.out.println("Unmarshal XML file to user object...");
      JAXBContext c = JAXBContext.newInstance("com.fyicenter.demo");	  
      Unmarshaller m = c.createUnmarshaller();
      User u = (User) m.unmarshal(new FileInputStream(x));

	  System.out.println("My user object:");
	  System.out.println("   Name: "+u.getName());
	  System.out.println("   BirthDate: "+u.getBirthDate());
	  System.out.println("   Sex: "+u.getSex());
	  System.out.println("   ID: "+u.getID());
    }
}

Compile and run MyXmlToUser.java as shown below.

\fyicenter\src>\local\jdk-1.8.0\bin\javac MyXmlToUser.java

\fyicenter\src>\local\jdk-1.8.0\bin\java MyXmlToUser UserOutput.xml
Unmarshal XML file to user object...
My user object:
   Name: Frank Y. Ivy
   BirthDate: 1970-01-01+00:01
   Sex: Male
   ID: 101

 

Examples for JAXB (Java Architecture for XML Binding)

⇒⇒FAQ for jaxb-*.jar - Java Architecture for XML Binding

2017-06-30, 649👍, 0💬