Java tutorial
//package com.java2s; /* * Copyright 2015, Supreme Court Republic of Slovenia * * Licensed under the EUPL, Version 1.1 or as soon they will be approved by the European * Commission - subsequent versions of the EUPL (the "Licence"); You may not use this work except in * compliance with the Licence. You may obtain a copy of the Licence at: * * https://joinup.ec.europa.eu/software/page/eupl * * Unless required by applicable law or agreed to in writing, software distributed under the Licence * is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the Licence for the specific language governing permissions and limitations under * the Licence. */ import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import javax.xml.bind.util.JAXBResult; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Result; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamSource; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; public class Main { /** * * @param fXMLFilePath * @param cls * @return * @throws JAXBException */ public static Object deserialize(File fXMLFilePath, Class cls) throws JAXBException { final Unmarshaller um = JAXBContext.newInstance(cls).createUnmarshaller(); return um.unmarshal(fXMLFilePath); } /** * * @param xml * @param cls * @return * @throws JAXBException */ public static Object deserialize(String xml, Class cls) throws JAXBException { final Unmarshaller um = JAXBContext.newInstance(cls).createUnmarshaller(); return um.unmarshal(new ByteArrayInputStream(xml.getBytes())); } /** * * @param io * @param cls * @return * @throws JAXBException */ public static Object deserialize(InputStream io, Class cls) throws JAXBException { final Unmarshaller um = JAXBContext.newInstance(cls).createUnmarshaller(); return um.unmarshal(io); } /** * * @param elmnt * @param cls * @return * @throws JAXBException */ public static Object deserialize(Element elmnt, Class cls) throws JAXBException { final Unmarshaller um = JAXBContext.newInstance(cls).createUnmarshaller(); return um.unmarshal(elmnt); } /** * * @param elmnt * @param xsltSource * @param cls * @return * @throws TransformerConfigurationException * @throws JAXBException * @throws TransformerException */ public static synchronized Object deserialize(Element elmnt, InputStream xsltSource, Class cls) throws TransformerConfigurationException, JAXBException, TransformerException { Object obj = null; JAXBContext jc = JAXBContext.newInstance(cls); if (xsltSource != null) { TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer; transformer = factory.newTransformer(new StreamSource(xsltSource)); JAXBResult result = new JAXBResult(jc); transformer.transform(new DOMSource(elmnt), result); obj = result.getResult(); } else { obj = jc.createUnmarshaller().unmarshal(elmnt); } return obj; } /** * * @param source * @param xsltSource * @param cls * @return * @throws TransformerConfigurationException * @throws JAXBException * @throws TransformerException */ public static synchronized Object deserialize(InputStream source, InputStream xsltSource, Class cls) throws TransformerConfigurationException, JAXBException, TransformerException { Object obj = null; JAXBContext jc = JAXBContext.newInstance(cls); if (xsltSource != null) { TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer; transformer = factory.newTransformer(new StreamSource(xsltSource)); JAXBResult result = new JAXBResult(jc); transformer.transform(new StreamSource(source), result); obj = result.getResult(); } else { obj = jc.createUnmarshaller().unmarshal(source); } return obj; } /** * * @param source * @param xsltSource * @return * @throws TransformerConfigurationException * @throws JAXBException * @throws TransformerException * @throws ParserConfigurationException * @throws SAXException * @throws IOException */ public static synchronized Document transform(Element source, InputStream xsltSource) throws TransformerConfigurationException, JAXBException, TransformerException, ParserConfigurationException, SAXException, IOException { Document obj = null; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); if (xsltSource != null) { TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer; transformer = factory.newTransformer(new StreamSource(xsltSource)); obj = dbf.newDocumentBuilder().newDocument(); Result result = new DOMResult(obj); transformer.transform(new DOMSource(source), result); } return obj; } }