Я создаю обертку вокруг внешней службы docusign. Я пытаюсь использовать бульдозер для сопоставления объектов службы обертки для объектов docusign. Я пытаюсь сделать глубокую копию.отображение мыльного запроса от источника к цели с использованием бульдозера
В большинстве случаев я старался сохранить как исходные, так и целевые имена, но бульдозер не копирует за пределы первого уровня. В приведенном ниже примере у меня есть - после преобразования, я вижу, что узел compositeTemplates никогда не копировался из источника в цель. Может быть, потому что у него есть список внутри ?! я не знаю.
Мое отображение бульдозер:
<mapping map-null="false"> <class-a>com.foo.wrapper.CreateEnvelopeFromTemplatesAndForms</class-a> <class-b>com.foo.docusign.CreateEnvelopeFromTemplatesAndForms</class-b> </mapping>
Затем я попытался указать имя поля в файле отображения - но я получаю исключения нулевого указателя. Любые указатели на это оцениваются.
<mapping map-null="false"> <class-a>com.foo.wrapper.CreateEnvelopeFromTemplatesAndForms</class-a> <class-b>com.foo.docusign.CreateEnvelopeFromTemplatesAndForms</class-b> <field> <a>ArrayOfCompositeTemplate</a> <b>CompositeTemplate</b> </field>
Источник:
<doc:initiateESign> <InitiateEsignProcessRequest> <doc:createEnvelopeFromTemplatesAndForms> <doc:envelopeInformation> <doc:subject></doc:subject> </doc:envelopeInformation> <doc:compositeTemplates> <!--Zero or more repetitions:--> <doc:ArrayOfCompositeTemplate> <doc:inlineTemplates> <!--Zero or more repetitions:--> <doc:inlineTemplate> <doc:envelope> <doc:transactionID></doc:transactionID> <doc:asynchronous></doc:asynchronous> <doc:recipients> <!--Zero or more repetitions:--> <doc:recipient> <doc:id></doc:id> </doc:recipient> </doc:recipients> </doc:envelope> </doc:inlineTemplate> </doc:inlineTemplates> <doc:document> <doc:name></doc:name> </doc:document> </doc:ArrayOfCompositeTemplate> </doc:compositeTemplates> <doc:activateEnvelope></doc:activateEnvelope> </doc:createEnvelopeFromTemplatesAndForms> </InitiateEsignProcessRequest> </doc:initiateESign>
Цель:
<ns:CreateEnvelopeFromTemplatesAndForms> <ns:EnvelopeInformation> <ns:Subject></ns:Subject> </ns:EnvelopeInformation> <ns:CompositeTemplates> <!--Zero or more repetitions:--> <ns:CompositeTemplate> <ns:InlineTemplates> <!--Zero or more repetitions:--> <ns:InlineTemplate> <ns:Envelope> <ns:TransactionID></ns:TransactionID> <ns:Recipients> <!--Zero or more repetitions:--> <ns:Recipient> <ns:ID></ns:ID> </ns:Recipient> </ns:Recipients> </ns:Envelope> </ns:InlineTemplate> </ns:InlineTemplates> <ns:Document> <ns:Name></ns:Name> </ns:Document> </ns:CompositeTemplate> </ns:CompositeTemplates> <ns:ActivateEnvelope></ns:ActivateEnvelope> </ns:CreateEnvelopeFromTemplatesAndForms>
Любой указатель на то, как сопоставить эти два через бульдозер, будет очень полезен.