我正在尝试以以下格式(消息树)解析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节点,它始终为null。

最佳答案

可能为时已晚,但是您使用的是错误的方式。

使用WMB和IIB时,应使用内置的XML支持-而不是javax.XML。*类库。因此,应该使用JAXB解组器,而不是


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


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

09-11 03:37