検索

269.8. RFC の XML シリアライゼーション

download PDF

概要

SAP リクエストおよび応答オブジェクトは XML シリアライゼーション形式をサポートします。

XML 名前空間

リポジトリーの各 RFC は、要求および応答オブジェクトのシリアライズ形式を構成する要素の特定の XML ネームスペースを定義します。この名前空間 URL の形式は以下のとおりです。

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>

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>

構造フィールド

パラメーターリストまたはネストされた構造の構造フィールドは、要素としてシリアライズされます。シリアライズされた構造の要素名は、エンクロージングパラメーターリスト、構造、またはテーブル行エントリー内の構造のフィールド名に対応します。

<BOOK_FLIGHT:FLTINFO
     xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
    ...
</BOOK_FLIGHT:FLTINFO>

RFC namespace の structure 要素のタイプ名は、以下の例のように構造を定義するレコードメタデータデータオブジェクトの名前に対応することに注意してください。

<xs:schema
     targetNamespace="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
     xmlns:xs="http://www.w3.org/2001/XMLSchema">
    ...
    <xs:complexType name="FLTINFO_STRUCTURE”>
    ...
    </xs:complexType>
    ...
</xs:schema>

この区別は、「例 3: SAP からのリクエストの処理」 にあるように、構造をマーシャリングおよびアンマーシャリングする JAXB Bean を指定する場合に重要です。

テーブルフィールド

パラメーターリストまたはネストされた構造の表フィールドは、要素としてシリアライズされます。シリアライズされた構造の要素名は、エンクロージングパラメーターリスト、構造、またはテーブル行エントリー内のテーブルのフィールド名に対応します。table 要素には、テーブルの行エントリーのシリアライズされた値を保持する一連の行要素が含まれます。

<BOOK_FLIGHT:CONNINFO
     xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
    <row ... > ... </row>
    ...
    <row ... > ... </row>
</BOOK_FLIGHT:CONNINFO>

RFC namespace のテーブル要素のタイプ名は、_TABLE が付けられたテーブルの行構造を定義するレコードメタデータオブジェクトの名前に対応することに注意してください。RFC 名のテーブル行要素のタイプ名は、以下の例のように、テーブルの行構造を定義するレコードメタデータオブジェクトの名前に対応します。

<xs:schema
     targetNamespace="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT"
     xmlns:xs="http://www.w3.org/2001/XMLSchema">
    ...
    <xs:complextType name="CONNECTION_INFO_STRUCTURE_TABLE”>
        <xs:sequence>
            <xs:element
                name="row”
                minOccures="0”
                maxOccurs="unbounded”
                type="CONNECTION_INFO_STRUCTURE”/>
            ...
            <xs:sequence>
        </xs:sequence>
    </xs:complexType>

    <xs:complextType name="CONNECTION_INFO_STRUCTURE”>
            ...
    </xs:complexType>
    ...
</xs:schema>

この区別は、「例 3: SAP からのリクエストの処理」 にあるように、構造をマーシャリングおよびアンマーシャリングする JAXB Bean を指定する場合に重要です。

要素フィールド

パラメーターリストまたはネストされた構造の要素フィールドは、エンクロージングパラメーターリストまたは構造の要素の属性としてシリアライズされます。シリアライズされたフィールドの属性名は、以下の例のように、エンクロージングパラメーターリスト、構造、またはテーブル行エントリー内のフィールドのフィールド名に対応します。

<?xml version="1.0" encoding="ASCII"?>
<BOOK_FLIGHT:Request
     xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT"
     CUSTNAME="James Legrand"
    PASSFORM="Mr"
    PASSNAME="Travelin Joe"
    PASSBIRTH="1990-03-17T00:00:00.000-0500"
    FLIGHTDATE="2014-03-19T00:00:00.000-0400"
    TRAVELAGENCYNUMBER="00000110"
    DESTINATION_FROM="SFO"
    DESTINATION_TO="FRA"/>

日付と時刻の形式

日付および時間フィールドは、以下の形式で属性値にシリアライズされます。

yyyy-MM-dd'T'HH:mm:ss.SSSZ

日付フィールドは、年、月、日、タイムゾーンコンポーネントのみが設定された状態でシリアライズされます。

DEPDATE="2014-03-19T00:00:00.000-0400"

時間フィールドは、時間、分、秒、およびタイムゾーンコンポーネントのみで設定されたシリアライズされます。

DEPTIME="1970-01-01T16:00:00.000-0500"
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.