平面文件到SOAP XML

时间:2017-12-05 17:45:59

标签: java xml soap

我从未使用过XML和SOAP信封。我正在尝试编写通用算法来读取平面文件并将详细信息写入类似SOAP的XML文件中。我正在考虑以下方法,但想知道是否有更好的方法来做到这一点。

  1. 使用变量而不是实际值
  2. 创建包含示例XML信封的文件
  3. 创建一个属性文件,其中包含变量与平面文件中列的索引(包含此变量的值)之间的映射。
  4. 在Java Code中逐行阅读Flat文件。根据行
  5. 中的列将行转换为ArrayList
  6. 对于每一行,我阅读了上面步骤1中定义的示例XML信封。我用基于关联变量索引的arraylist中的值替换XML字符串中的变量。
  7. 将XML写入文件。
  8. 我可以通过javax.xml.soap.MessageFactory编写xml文件,但这会使映射变得复杂,并且可能需要更多时间来执行。

    有关正确方法的任何建议吗?

1 个答案:

答案 0 :(得分:0)

正确的方法是使用可用/标准框架(即JAXB或其他)。取决于您的SOAP XML的目的是什么:

  • 如果要在WebService中使用 - 创建一个WSDL(由Web服务框架使用,如CXF)

  • 然后创建相应的Java类。 您有两种选择:

    1. Up-down(更简单的方法):为您的XML创建XSD架构,然后使用JAXB生成Java类,它是xjc编译器和一堆工具或maven插件来运行它。像wsdl2java,wsimport等等......(如果正在使用WSDL)或JAXB maven插件从XSD中生成Java类

    2. down-up:创建Java类并使用适当的JAXB注释注释它们

那就是它。您将在Java类中设置适当的属性。

同样,如果它是关于webservice webservice实现(即CXF)将完成剩下的工作以获得实际的SOAP。如果只需要一个XML(如文件),那么可以通过JAXBContext将Java类编组为XML。

这可能听起来很长,但从代码角度看它并不复杂。最重要的一点是使Java类正确(并且采用自上而下的方法,只需要制作正确的XSD(如果需要,还可以使用WSDL)。