290.12. RFC에 대한 XML 직렬화
290.12.1. 개요
SAP 요청 및 응답 개체는 이러한 개체를 XML 문서로 직렬화할 수 있도록 하는 XML 직렬화 형식을 지원합니다.
290.12.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 자체의 이름입니다.
290.12.3. 요청 및 응답 XML 문서
SAP 요청 개체는 Request라는 문서의 루트 요소를 사용하여 XML 문서로 직렬화되고 요청의 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>
290.12.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>
이 차이점은 290.14.3절. “예 3: SAP에서 요청을 처리” 에서 볼 수 있는 것처럼 구조를 마샬링하고 unmarshal으로 지정하는 경우 중요합니다.
290.12.5. 테이블 필드
매개변수 목록 또는 중첩된 구조의 테이블 필드는 요소로 직렬화됩니다. 직렬화된 구조의 요소 이름은 포함된 매개변수 목록, 구조 또는 테이블 행 항목 내에 있는 테이블의 필드 이름에 해당합니다. table 요소에는 테이블의 행 항목의 직렬화된 값을 보유하는 일련의 행 요소가 포함되어 있습니다.
<BOOK_FLIGHT:CONNINFO xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT"> <row ... > ... </row> ... <row ... > ... </row> </BOOK_FLIGHT:CONNINFO>
RFC 네임 스페이스에 있는 테이블 요소의 유형 이름은 _
Cryostat가 접미사로 지정된 테이블의 행 구조를 정의하는 레코드 메타데이터 오브젝트의 이름에 해당합니다. 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>
이 차이점은 290.14.3절. “예 3: SAP에서 요청을 처리” 에서 볼 수 있는 것처럼 구조를 마샬링하고 unmarshal으로 지정하는 경우 중요합니다.
290.12.6. 기본 필드
매개변수 목록 또는 중첩된 구조의 기본 필드는 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"/>
290.12.7. 날짜 및 시간 형식
날짜 및 시간 필드는 다음 형식을 사용하여 속성 값으로 직렬화됩니다.
yyyy-MM-dd'T'HH:mm:ss.SSSZ
날짜 필드는 연도, 월, 일 및 시간대 구성 요소 세트로 직렬화됩니다.
DEPDATE="2014-03-19T00:00:00.000-0400"
시간 필드는 hour, minute, second, millisecond 및 timezone 구성 요소 세트로만 직렬화됩니다.
DEPTIME="1970-01-01T16:00:00.000-0500"