我必须为 Java 中的 SOAP 服务的输入构建一个 XML 文件。输入 xml 至少可以包含 1000 个标签。构建 XML 的最佳方法是什么?我有 XSD 文件,但使用 JAXB 有点复杂。XMLStreamWriter 是一个不错的选择吗?
问问题
698 次
1 回答
0
XMLStreamWriter 是用于从 Java 应用程序编写 XML 的更好的 API 之一,但它有一些怪癖(例如,它的命名空间处理有点奇怪),您可能会发现将它包装在一个方便的 API 中是值得的,该 API 知道您正在编写的文档类型,例如它使用的名称空间。
XMLStreamWriter 接口的优点之一是有很多实现可供选择。例如,Saxon 有一个实现,可以让您完全控制所有 XSLT/XQuery 序列化选项以及 Saxon 扩展(例如,您甚至可以控制属性的输出顺序!)
我在使用所有基于事件的 API 时遇到的一个问题是,您迟早会发现自己忘记编写结束标记,这可能很难调试。使用强制您在调用 endElement() 时包含元素名称的包装 API 对调试很有用;如果调试已打开,您可以保留一堆元素名称并检查 endElement() 是否正在编写正确的标签;关闭调试后,您只需放弃此检查。
当然,使用 JAXB 进行序列化是更高级别的,但缺点是它给您的控制较少。
于 2016-06-07T07:48:25.353 回答