首页 > 解决方案 > 在spring boot java中从数据库生成xml

问题描述

我想生成/编组通过 jpa 查询从表中获得的 java 对象的流/集合到 xml。我正在处理这些 java 对象并将它们批量转换为 xml。我想知道如果 xml 的大小将来增长,其中哪些会表现得更好并且可以更好地扩展:1. STAX 2. JAXB 3. XSTream

或者是否有任何其他 api 可以将 java 对象转换为性能更好的 xml?我尝试浏览所有这些,但只能找到将 xml 解组/转换为 java 对象的示例。

标签: javaxmlspringstax

解决方案


我喜欢使用 JAXB,我尝试过使用非常庞大的 xml,并且效果很好。

这将是一个将对象编组为字符串的示例。

namespaceMap我在类和.xsd相关对象之间进行映射的地方

private String marshallXml(Object request, Class<?> clazz) {

        try {

            JAXBContext context = JAXBContext.newInstance(clazz);
            Marshaller marshaller = null;

            if (context != null) {
                marshaller = context.createMarshaller();
                marshaller.setProperty("jaxb.noNamespaceSchemaLocation", namespacesMap.get(clazz));
                StringWriter sw = new StringWriter();
                marshaller.marshal(request, sw);
                return sw.toString();
            }

        } catch (Exception e) {
            return null;
        }

    return null;
}

的例子Map

Map<Class<?>, String> map = new HashMap<>();
map.put(MyClass.class,"http://urlWhereTheXSDisUploaded/MyClass.xsd");

推荐阅读