140.7. IDoc の XML シリアライゼーション
概要 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
IDoc メッセージボディーは、組み込み型コンバーターを使用して XML 文字列形式にシリアライズできます。
XML namespace リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
シリアル化された各 IDoc は、以下の一般的な形式を持つ XML 名前空間に関連付けられます。
http://sap.fusesource.org/idoc/repositoryName/idocType/idocTypeExtension/systemRelease/applicationRelease
repositoryName (リモート SAP メタデータリポジトリーの名前)と idocType (IDoc ドキュメントタイプ)の両方は必須ですが、名前空間の他のコンポーネントは空白のままにすることができます。たとえば、以下のような XML 名前空間を使用できます。
http://sap.fusesource.org/idoc/MY_REPO/FLCUSTOMER_CREATEFROMDATA01///
組み込み型コンバーター リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel SAP コンポーネントには、
Document 型との間で DocumentList オブジェクトまたは String オブジェクトを変換できる組み込み型コンバーターがあります。
たとえば、
Document オブジェクトを XML 文字列にシリアライズするには、以下の行を XML DSL のルートに追加するだけです。
<convertBodyTo type="java.lang.String"/>
このアプローチを使用して、シリアライズされた XML メッセージを
Document オブジェクトにすることもできます。たとえば、現在のメッセージボディーがシリアライズされた XML 文字列である場合、以下の行を XML DSL のルートに追加して、Document オブジェクトに戻すことができます。
<convertBodyTo type="org.fusesource.camel.component.sap.model.idoc.Document"/>
XML 形式の IDoc メッセージのボディーの例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
IDoc メッセージを
String に変換すると、XML ドキュメントにシリアライズされます。ルート要素は idoc:Document (単一ドキュメント用)または idoc:DocumentList (ドキュメントのリスト用)です。例140.2「XML の IDoc メッセージボディー」 は、idoc:Document 要素にシリアライズされた単一の IDoc ドキュメントを示しています。
例140.2 XML の IDoc メッセージボディー
<?xml version="1.0" encoding="ASCII"?>
<idoc:Document
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:FLCUSTOMER_CREATEFROMDATA01---="http://sap.fusesource.org/idoc/XXX/FLCUSTOMER_CREATEFROMDATA01///"
xmlns:idoc="http://sap.fusesource.org/idoc"
creationDate="2015-01-28T12:39:13.980-0500"
creationTime="2015-01-28T12:39:13.980-0500"
iDocType="FLCUSTOMER_CREATEFROMDATA01"
iDocTypeExtension=""
messageType="FLCUSTOMER_CREATEFROMDATA"
recipientPartnerNumber="QUICKCLNT"
recipientPartnerType="LS"
senderPartnerNumber="QUICKSTART"
senderPartnerType="LS">
<rootSegment xsi:type="FLCUSTOMER_CREATEFROMDATA01---:ROOT" document="/">
<segmentChildren parent="//@rootSegment">
<E1SCU_CRE parent="//@rootSegment" document="/">
<segmentChildren parent="//@rootSegment/@segmentChildren/@E1SCU_CRE.0">
<E1BPSCUNEW parent="//@rootSegment/@segmentChildren/@E1SCU_CRE.0"
document="/"
CUSTNAME="Fred Flintstone" FORM="Mr."
STREET="123 Rubble Lane"
POSTCODE="01234"
CITY="Bedrock"
COUNTR="US"
PHONE="800-555-1212"
EMAIL="fred@bedrock.com"
CUSTTYPE="P"
DISCOUNT="005"
LANGU="E"/>
</segmentChildren>
</E1SCU_CRE>
</segmentChildren>
</rootSegment>
</idoc:Document>