Java XML JAXB Serialize deserializeXmlToJava(String valueType, Serializable value)

Here you can find the source of deserializeXmlToJava(String valueType, Serializable value)

Description

deserialize Xml To Java

License

Open Source License

Declaration

public static Serializable deserializeXmlToJava(String valueType, Serializable value) throws Exception 

Method Source Code


//package com.java2s;
/*/* w  w w .  j a va  2s.  com*/
 * CDDL HEADER START
 * The contents of this file are subject to the terms
 * of the Common Development and Distribution License
 * (the License). You may not use this file except in
 * compliance with the License.
 *
 * You can obtain a copy of the License at
 * http://www.sun.com/cddl/cddl.html and legal/CDDLv1.0.txt
 * See the License for the specific language governing
 * permission and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL
 * Header Notice in each file and include the License file
 * at legal/CDDLv1.0.txt.
 * If applicable, add the following below the CDDL Header,
 * with the fields enclosed by brackets [] replaced by
 * your own identifying information:
 * "Portions Copyrighted [year] [name of copyright owner]"
 *
 * [Name of File] [ver.__] [Date]
 *
 * Copyright 2009 Sun Microsystems Inc. All Rights Reserved
 * CDDL HEADER END
 */

import java.io.Serializable;
import java.io.StringReader;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;

import javax.xml.bind.Unmarshaller;

import javax.xml.stream.XMLInputFactory;

import javax.xml.stream.XMLStreamReader;

public class Main {
    public static Serializable deserializeXmlToJava(String valueType, Serializable value) throws Exception {
        Serializable deserializedValue = null;
        if (value != null) {
            XMLStreamReader xml = null;
            if (value instanceof String) {
                xml = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader((String) value));
            }

            if (xml != null) {
                ClassLoader loader = Thread.currentThread().getContextClassLoader();
                Class<? extends Serializable> clazz = loader.loadClass(valueType).asSubclass(Serializable.class);
                JAXBContext jaxbContext = JAXBContext.newInstance(clazz);
                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
                JAXBElement result = unmarshaller.unmarshal(xml, clazz);
                deserializedValue = (Serializable) result.getValue();
            }
        }
        return deserializedValue;
    }
}

Related

  1. deserialize(final Class clazz, final String json)
  2. deserialize(Path input, Class clazz)
  3. deserialize(String data, String className)
  4. deserializeFile(String path, Class clazz)
  5. deserializeFromXmlFile(T defaultObject, String fileName)
  6. save(Class confClass, Object confObj, File xmlFile)
  7. save(File file, T obj, Class... clazz)
  8. saveDataToFile(File file, T data)
  9. saveModel(JAXBElement model, String packageName)