import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.StringReader;

public class UnmarshalTest {

	private static final String xml =
			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
					"<message type=\"response\" service=\"foo\" version=\"1.0.0\">\n" +
					"    <result xmlns=\"com.naver.com\">\n" +
					"        <id>foo</id>\n" +
					"    </result>\n" +
					"</message>";

	public static void main(String args[]) throws JAXBException {
		// given
		JAXBContext jaxbContext = JAXBContext.newInstance(Message.class);
		Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();

		// when
		Message message = (Message) jaxbUnmarshaller.unmarshal(new StringReader(xml));

		// then
		System.out.println("result: " + message.result);
	}

	@XmlRootElement
	public static class Message {

		public Result result;

		public static class Result {
			public String id;
		}

	}


}
