微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Java编写XML的最佳做法和设计指南?

已经有几次我遇到了一个需要生产 XML(比较小的)的任务.每次我徘徊:

关于易于编码,可读性和可维护性的代码,性能和良好的设计实践,动态创建XML文档的最佳做法是什么?

例如:

连接字符串是否更好?或者创建一个DOM树并进行填充?
>(“程序上”)是否更好地卷起构建XML的线,或者有很多方法处理其文档的部分?
>最好是通过工具(哪个?)或每次从头开始生成XML的骨干网?

我会欣赏,如果你可以分享一些参考,有一个关于这个问题的知名话题吗?

解决方法

is it better to concatenate strings,or create a DOM tree and populate it?

XML比它看起来更棘手.不要通过连接字符串来构建它.在运行文档时应使用StAX javax.xml.stream.XMLStreamWriter.在内存使用方面,即使是大型文档也是非常合理的.

对于较小的文档,创建一个DOM树是可行的,但实际上更喜欢XMLStreamWriter.

对于较小的文档,您还可以使用XML绑定框架,例如JAXB,它与构建DOM树有效地相同,但允许您根据业务域而不是XML的方式编写代码.作为一个奖励,您可以使用与泽西相同的JAXB注释来生成JSON输出以及XML.

is it better to (‘procedurally’) consequently roll up the lines building the XML or have numerous methods handling their portion of the document?

这是上下文的您的目标应该是最大限度地提高源代码的可读性.在XML结构中重复部分往往会获得自己的方法. XML的长而扁平的部分往往会使用长时间的Java程序.

一些不寻常的缩进可能会使代码更易读:

private void write(XMLStreamWriter w) {
    //...
    w.writeStartElement("parentTag");
        w.writeStartElement("nestedTag"); 
        w.writeCharacters("body 1");
        w.writeEndElement(); 
    w.writeEndElement();
}

…但是这是边框真的很接近你应该提取一个帮助方法的点.

is it better to have the backbone of the XML generated via tool (which?) or every time start from a scratch?

使用XMLStreamWriter方法,或者使用JAXB等绑定框架,我看不到需要使用模板系统或类似的东西.这些框架完全有能力编写<?xml version =“1.0”?>前言.

如果您必须将一小部分生成的XML注入到较大的静态模板中,则可能会使用预生成的结构.我认为这是一个边缘案例或者,我从来没有见过这种情况.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐