1

我正在尝试将 SAP idoc XML 字符串解析为 Java 对象。我尝试在我的 maven 项目中使用 com.sap.conn.idoc.sapidoc3 工件。我相信这确实具有解析 XML 文件的所有正确工具,但这也希望我在代码中添加存储库/目标。我还需要在我的类路径中添加我想避免的东西。idocs 将在不使用任何 SAP 连接的情况下发送给我,因此我实际上只需要 IDocXMLParser。

仅仅创建 IDocXMLParser 实现是行不通的,因为对存储库的检查不为空,并且每个构造函数都受到保护。

有没有办法只解析/解组收到的 XML 字符串而不必自己编写所有逻辑?

4

1 回答 1

0

您能否在这里看看我的答案:
Parsing an IDoc in XML format using SAP Java IDoc Class Library

我认为这也应该在这里回答您的问题。如果您的软件没有与 SAP 应用服务器的任何 RFC 连接,我只能劝阻您使用SAP JCo和 Java IDoc 类库插件。在这种情况下,它们不会提供任何好处。

为解析而进行的 IDoc-XML 解析没有意义,因此这取决于您使用此解析的目标。如果您只想确保 XML 有效且格式正确,则可以为此使用任何标准 XML 解析器。任何其他 XML 解析器也会创建一些 Java 对象——至少是java.lang.String对象。但是,如果您想要获取 Java 类型的对象,com.sap.conn.idoc.IDocDocument因为您打算在之后使用它提供的方便的导航、访问器或修饰符方法,那么 IDoc-XML 解析器需要访问额外的 IDoc 元数据(IDoc-XML本身不提供)用于创建这些类型的对象。

如果您的意图不仅是检查 IDoc-XML 的 XML 有效性和格式是否正确,而且还符合 SAP 的 IDoc-XML 规范,恐怕 SAP Java IDoc 类库IDocXMLProcessor和 IDocXMLParser 不能用于此类一个单独的任务,在这种情况下你真的必须编写自己的解析器。

顺便说一句,您还可以查看SAP Business Connector,它提供了用于处理 IDoc 和 IDoc-XML 的适当 API。当然,这是一个在各个系统之间交换业务数据的集成平台,没有开发库可以包含在自己的Java应用项目中。但我认为,人们可以在那里轻松地开发工作流程,这将涵盖您问题中所需的功能。我不知道它是否适合您的一般项目要求,所以这只是另一种想法,采用不同的路径。

于 2018-11-08T13:38:09.500 回答