我从未使用过XML和SOAP信封。我正在尝试编写通用算法来读取平面文件并将详细信息写入类似SOAP的XML文件中。我正在考虑以下方法,但想知道是否有更好的方法来做到这一点。
我可以通过javax.xml.soap.MessageFactory编写xml文件,但这会使映射变得复杂,并且可能需要更多时间来执行。
有关正确方法的任何建议吗?
答案 0 :(得分:0)
正确的方法是使用可用/标准框架(即JAXB或其他)。取决于您的SOAP XML的目的是什么:
如果要在WebService中使用 - 创建一个WSDL(由Web服务框架使用,如CXF)
然后创建相应的Java类。 您有两种选择:
Up-down(更简单的方法):为您的XML创建XSD架构,然后使用JAXB生成Java类,它是xjc编译器和一堆工具或maven插件来运行它。像wsdl2java,wsimport等等......(如果正在使用WSDL)或JAXB maven插件从XSD中生成Java类
down-up:创建Java类并使用适当的JAXB注释注释它们
那就是它。您将在Java类中设置适当的属性。
同样,如果它是关于webservice webservice实现(即CXF)将完成剩下的工作以获得实际的SOAP。如果只需要一个XML(如文件),那么可以通过JAXBContext将Java类编组为XML。
这可能听起来很长,但从代码角度看它并不复杂。最重要的一点是使Java类正确(并且采用自上而下的方法,只需要制作正确的XSD(如果需要,还可以使用WSDL)。