269.8. RFC の XML シリアライゼーション
概要 リンクのコピーリンクがクリップボードにコピーされました!
SAP リクエストおよび応答オブジェクトは XML シリアライゼーション形式をサポートします。
XML 名前空間 リンクのコピーリンクがクリップボードにコピーされました!
リポジトリーの各 RFC は、要求および応答オブジェクトのシリアライズ形式を構成する要素の特定の XML ネームスペースを定義します。この名前空間 URL の形式は以下のとおりです。
http://sap.fusesource.org/rfc/<Repository Name>/<RFC Name>
http://sap.fusesource.org/rfc/<Repository Name>/<RFC Name>
RFC 名前空間 URL には、一般的な http://sap.fusesource.org/rfc
プレフィックスがあり、その後に RFC のメタデータが定義されているリポジトリーの名前が続きます。URL の最後のコンポーネントは RFC 自体の名前です。
リクエストおよび応答 XML ドキュメント リンクのコピーリンクがクリップボードにコピーされました!
SAP リクエストオブジェクトは、Request という名前のドキュメントのルート要素で XML ドキュメントにシリアライズされ、リクエストの RFC の namespace によってスコープされます。
<?xml version="1.0" encoding="ASCII"?> <BOOK_FLIGHT:Request xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT"> ... </BOOK_FLIGHT:Request>
<?xml version="1.0" encoding="ASCII"?>
<BOOK_FLIGHT:Request
xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
...
</BOOK_FLIGHT:Request>
SAP 応答オブジェクトは、response という名前のドキュメントのルート要素で XML ドキュメントにシリアライズされ、応答の RFC の namespace によってスコープされます。
<?xml version="1.0" encoding="ASCII"?> <BOOK_FLIGHT:Response xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT"> ... </BOOK_FLIGHT:Response>
<?xml version="1.0" encoding="ASCII"?>
<BOOK_FLIGHT:Response
xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
...
</BOOK_FLIGHT:Response>
構造フィールド リンクのコピーリンクがクリップボードにコピーされました!
パラメーターリストまたはネストされた構造の構造フィールドは、要素としてシリアライズされます。シリアライズされた構造の要素名は、エンクロージングパラメーターリスト、構造、またはテーブル行エントリー内の構造のフィールド名に対応します。
<BOOK_FLIGHT:FLTINFO xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT"> ... </BOOK_FLIGHT:FLTINFO>
<BOOK_FLIGHT:FLTINFO
xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
...
</BOOK_FLIGHT:FLTINFO>
RFC namespace の structure 要素のタイプ名は、以下の例のように構造を定義するレコードメタデータデータオブジェクトの名前に対応することに注意してください。
この区別は、「例 3: SAP からのリクエストの処理」 にあるように、構造をマーシャリングおよびアンマーシャリングする JAXB Bean を指定する場合に重要です。
テーブルフィールド リンクのコピーリンクがクリップボードにコピーされました!
パラメーターリストまたはネストされた構造の表フィールドは、要素としてシリアライズされます。シリアライズされた構造の要素名は、エンクロージングパラメーターリスト、構造、またはテーブル行エントリー内のテーブルのフィールド名に対応します。table 要素には、テーブルの行エントリーのシリアライズされた値を保持する一連の行要素が含まれます。
RFC namespace のテーブル要素のタイプ名は、_TABLE
が付けられたテーブルの行構造を定義するレコードメタデータオブジェクトの名前に対応することに注意してください。RFC 名のテーブル行要素のタイプ名は、以下の例のように、テーブルの行構造を定義するレコードメタデータオブジェクトの名前に対応します。
この区別は、「例 3: SAP からのリクエストの処理」 にあるように、構造をマーシャリングおよびアンマーシャリングする JAXB Bean を指定する場合に重要です。
要素フィールド リンクのコピーリンクがクリップボードにコピーされました!
パラメーターリストまたはネストされた構造の要素フィールドは、エンクロージングパラメーターリストまたは構造の要素の属性としてシリアライズされます。シリアライズされたフィールドの属性名は、以下の例のように、エンクロージングパラメーターリスト、構造、またはテーブル行エントリー内のフィールドのフィールド名に対応します。
日付と時刻の形式 リンクのコピーリンクがクリップボードにコピーされました!
日付および時間フィールドは、以下の形式で属性値にシリアライズされます。
yyyy-MM-dd'T'HH:mm:ss.SSSZ
yyyy-MM-dd'T'HH:mm:ss.SSSZ
日付フィールドは、年、月、日、タイムゾーンコンポーネントのみが設定された状態でシリアライズされます。
DEPDATE="2014-03-19T00:00:00.000-0400"
DEPDATE="2014-03-19T00:00:00.000-0400"
時間フィールドは、時間、分、秒、およびタイムゾーンコンポーネントのみで設定されたシリアライズされます。
DEPTIME="1970-01-01T16:00:00.000-0500"
DEPTIME="1970-01-01T16:00:00.000-0500"