Конвертировать DFDL в XML

1

Я пытаюсь разобрать ответное сообщение веб-службы в следующем формате (дерево сообщений):

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 таким образом или любым другим способом, он всегда равен нулю.

Теги:
jaxb
messagebroker
dfdl

1 ответ

1

Наверное, слишком поздно, но вы делали это неправильно.

При использовании WMB и IIB вы должны использовать встроенную поддержку XML, а не библиотеку классов javax.XML. *. Поэтому вместо использования JMXB unmarshaller вы должны

  • создать дерево XMLNSC под корнем выходного сообщения
  • скопируйте входное дерево сообщений DFDL в выходное дерево сообщений XMLNSC (одна строка)

... и поток сообщений будет сериализовать (unmarshall) дерево как XML всякий раз, когда это необходимо - когда он встречает выходной узел или когда вы вызываете outMessage.toBitstream().

  • 0
    Я уверен, что это поможет кому-то еще, хотя! Спасибо за ответы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню