View Javadoc
1   package civitas.common;
2   
3   import java.io.StringReader;
4   
5   import org.springframework.stereotype.Controller;
6   
7   import jakarta.xml.bind.JAXBContext;
8   import jakarta.xml.bind.JAXBException;
9   import jakarta.xml.bind.Unmarshaller;
10  import jakarta.xml.bind.annotation.adapters.NormalizedStringAdapter;
11  
12  @Controller
13  public class ConvertFromXml {
14  
15  	public <T> T apply(final String xmlString, final Class<T> klass) throws JAXBException {
16  		JAXBContext context = JAXBContext.newInstance(klass);
17  		Unmarshaller unmarshaller = context.createUnmarshaller();
18  		unmarshaller.setAdapter(new NormalizedStringAdapter());
19  
20  		try (var reader = new StringReader(xmlString)) {
21  			Object o = unmarshaller.unmarshal(reader);
22  			return klass.cast(o);
23  		}
24  	}
25  }