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

前端之家收集整理的这篇文章主要介绍了使用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注入到较大的静态模板中,则可能会使用预生成的结构.我认为这是一个边缘案例或者,我从来没有见过这种情况.

猜你在找的Java相关文章