289.8. RFC를 위한 XML 직렬화


289.8.1. 개요

SAP 요청 및 응답 개체는 XML 문서의 이러한 개체를 직렬화할 수 있도록 하는 XML 직렬화 형식을 지원합니다.

289.8.2. XML 네임스페이스

리포지토리의 각 RFC는 직렬화된 Request 및 Response 오브젝트의 양식을 구성하는 요소에 대한 특정 XML 이름 공간을 정의합니다. 이 네임스페이스 URL의 형식은 다음과 같습니다.

http://sap.fusesource.org/rfc/<Repository Name>/<RFC Name>

RFC 네임스페이스 URL에는 공통 http://sap.fusesource.org/rfc 접두사가 있으며 그 뒤에 RFC의 메타데이터가 정의된 리포지토리의 이름이 옵니다. URL의 최종 구성 요소는 RFC 자체의 이름입니다.

289.8.3. XML 문서를 요청 및 응답

SAP 요청 오브젝트는 Request라는 해당 문서의 루트 요소를 사용하여 요청의 RFC 네임스페이스로 직렬화됩니다.

<?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의 네임스페이스로 범위가 지정됩니다.

<?xml version="1.0" encoding="ASCII"?>
<BOOK_FLIGHT:Response
     xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
    ...
</BOOK_FLIGHT:Response>

289.8.4. 구조 필드

매개 변수 목록 또는 중첩된 구조의 구조 필드는 요소로 직렬화됩니다. 직렬화된 구조의 요소 이름은 포함된 매개 변수 목록, 구조 또는 테이블 행 항목 내의 구조의 필드 이름에 해당합니다.

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

RFC 네임스페이스의 구조 요소 유형 이름은 다음 예제와 같이 구조를 정의하는 레코드 메타 데이터 오브젝트의 이름에 해당합니다.

<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>

이러한 차이점은 289.12절. “예 3: SAP에서 요청 처리” 에서 볼 수 있듯이 구조를 마샬링하고 해체하기 위해 JAXB 빈을 지정할 때 중요합니다.

289.8.5. 테이블 필드

매개 변수 목록 또는 중첩된 구조의 테이블 필드는 요소로 직렬화됩니다. serialize된 구조의 요소 이름은 포함된 매개 변수 목록, 구조 또는 테이블 행 항목 내의 테이블 이름에 해당합니다.The element name of the serialized structure will correspond to the field name of the table within the enclosing parameter list, structure, or table row entry it resides. 테이블 요소에는 테이블의 행 항목의 직렬화된 값을 보유하는 일련의 행 요소가 포함됩니다.The table element will contain a series of row elements to hold the serialized values of the table's row entries.

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

RFC 네임스페이스에 있는 table 요소의 유형 이름은 _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>

이러한 차이점은 289.12절. “예 3: SAP에서 요청 처리” 에서 볼 수 있듯이 구조를 마샬링하고 해체하기 위해 JAXB 빈을 지정할 때 중요합니다.

289.8.6. elementary 필드

매개 변수 목록 또는 중첩된 구조는 enclosing 매개 변수 목록 또는 구조의 요소에 대한 속성으로 직렬화됩니다. 직렬화된 필드의 특성 이름은 다음 예제와 같이 enclosing 매개 변수 목록, 구조 또는 테이블 행 항목 내의 필드 이름에 해당합니다.

<?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"/>

289.8.7. 날짜 및 시간 형식

날짜 및 시간 필드는 다음 형식을 사용하여 특성 값으로 직렬화됩니다.

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

날짜 필드는 연도, 월, 일 및 시간대 구성 요소 집합을 사용하여 직렬화됩니다.Date fields will be serialized with only the year, month, day, and timezone components set:

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은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.