1

我正在尝试以以下格式(消息树)解析 Web 服务响应消息:

Message
    Properties
            Properties..[]
    DFDL
            ObjectIWantUnmarshalled
                    AllItsDataIwant[]

并解组“ObjectIWantUnmarshalled”。但是,此数据采用 DFDL 格式。在我的请求中,我使用以下行将 XML 格式化为 DFDL:

Document outDocument = outMessage.createDOMDocument(MbDFDL.PARSER_NAME);

但是似乎没有办法将 DFDL 转换为 XML。我努力了:

Document outDocument = inMessage.createDOMDocument(MbXMLNSC.PARSER_NAME);

以及直接从 MbMessage 中简单地解组数据的其他尝试:

jaxbContext_COBOL.createUnmarshaller().unmarshal(inMessage.getDOMDocument())

但是我无法以这种方式或任何其他方式获取 Document 节点,它始终为空。

4

1 回答 1

2

可能为时已晚,但是您以错误的方式进行此操作。

当使用 WMB 和 IIB 时,您应该使用内置的 XML 支持 - 而不是 javax.XML.* 类库。所以不要使用 JAXB 解组器,你应该

  • 在输出消息根下创建 XMLNSC 树
  • 将输入 DFDL 消息树复制到输出 XMLNSC 消息树(一行)

...并且消息流将在需要时将树序列化(解组)为 XML - 当它遇到输出节点时,或者当您调用 outMessage.toBitstream() 时。

于 2015-11-11T20:40:05.160 回答