검색

8장. 첨부 파일과 함께 Cryostat를 사용하여 바이너리 데이터 전송

download PDF

초록

Cryostat 첨부 파일은 바이너리 데이터를 Cryostat 메시지의 일부로 전송하기 위한 메커니즘을 제공합니다. 첨부 파일과 함께 Cryostat 메시지를 MIME 다중 파트 메시지로 정의해야 합니다.

8.1. 개요

Cryostat 메시지는 일반적으로 바이너리 데이터를 전송하지 않습니다. 그러나 W3C Cryostat 1.1 사양을 사용하면 MIME 다중 파트/관련 메시지를 사용하여 Cryostat 메시지에서 바이너리 데이터를 보낼 수 있습니다. 이 기술은 첨부 파일과 함께 Cryostat를 사용하는 것을 호출합니다. Cryostat 첨부 파일은 첨부 파일이 있는 W3C의 Cryostat 메시지에 정의되어 있습니다.

8.2. 네임스페이스

MIME 다중 파트/관련 메시지를 정의하는 데 사용되는 WSDL 확장은 http://schemas.xmlsoap.org/wsdl/mime/ 네임스페이스에 정의됩니다.

다음 토론에서는 이 네임스페이스 앞에 mime 이 붙은 것으로 가정합니다. 이를 설정하는 WSDL 정의 요소의 항목은 예 8.1. “계약의 MIME 네임스페이스 사양” 에 표시됩니다.

예 8.1. 계약의 MIME 네임스페이스 사양

xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

8.3. 메시지 바인딩 변경

기본 Cryostat 바인딩에서 입력,출력fault 요소의 첫 번째 자식 요소는 데이터를 나타내는 Cryostat 메시지의 본문을 설명하는 soap:body 요소입니다. 첨부 파일과 함께 Cryostat를 사용할 때 soap:body 요소는 mime:multipartRelated 요소로 교체됩니다.

참고

WSDL은 오류 메시지에 대해 mime:multipartRelated 사용을 지원하지 않습니다.

mime:multipartRelated 요소는 Apache CXF에 메시지 본문이 바이너리 데이터를 포함하는 다중 파트 메시지임을 알립니다. 요소의 내용은 메시지 및 해당 콘텐츠의 부분을 정의합니다. MIME:multipartRelated 요소에는 메시지의 개별 부분을 설명하는 하나 이상의 mime:part 요소가 포함됩니다.

첫 번째 mime:part 요소에는 일반적으로 기본 Cryostat 바인딩에 표시되는 soap:body 요소가 포함되어야 합니다. 나머지 mime:part 요소는 메시지에 전송되는 첨부 파일을 정의합니다.

8.4. MIME multipart 메시지 설명

MIME multipart 메시지는 여러 mime:part 요소를 포함하는 mime:multipartRelated 요소를 사용하여 설명됩니다. MIME multipart 메시지를 완전히 설명하려면 다음을 수행해야 합니다.

  1. MIME multipart 메시지로 보내는 입력 또는 출력 메시지 내부에서 mime:mulipartRelated 요소를 enclosing 메시지의 첫 번째 자식 요소로 추가합니다.
  2. mime:part 하위 요소를 mime:multipartRelated 요소에 추가하고 name 속성을 고유한 문자열로 설정합니다.
  3. soap:body 요소를 mime:part 요소의 자식으로 추가하고 해당 특성을 적절하게 설정합니다.

    참고

    계약에 기본 Cryostat 바인딩이 있는 경우 기본 바인딩에서 MIME multipart 메시지로 soap:body 요소를 해당 메시지에서 복사할 수 있습니다.

  4. mime:part 하위 요소를 mime:multipartReleated 요소에 추가하고 name 속성을 고유한 문자열로 설정합니다.
  5. mime:content 하위 요소를 mime:part 요소에 추가하여 메시지의 이 부분의 내용을 설명합니다.

    MIME 메시지 부분의 내용을 완전히 설명하려면 mime:content 요소에는 다음과 같은 속성이 있습니다.

    표 8.1. MIME:content 속성
    속성설명 +

    부분

    부모 메시지 정의에서 알로어에 배치되는 MIME multi part 메시지의 콘텐츠로 사용되는 WSDL 메시지 부분의 이름을 지정합니다.

    +

    type

    이 메시지 부분에 있는 데이터의 MIME 유형입니다. MIME 유형은 유형 및 구문 유형/하위 유형을 사용하여 하위 유형으로 정의됩니다.

    +

    image/jpegtext/plain 과 같은 다양한 MIME 유형이 있습니다. MIME 유형은 INA(Internet Assigned Numbers Authority)에 의해 유지 관리되며, MIME(Multipurpose Internet Mail Extensions) 파트 1: Format of Internet Message Bodies and Multipurpose Internet Mail Extensions (MIME) part 2 에 자세히 설명되어 있습니다.

    +

  6. 추가 MIME 부분에 대해 [i303819][i303821] 단계를 반복합니다.

8.5. 예

예 8.2. “Attachments와 함께 Cryostat를 사용한 계약” X-ray를 JPEG 형식으로 저장하는 서비스를 정의하는 WSDL 조각이 표시됩니다. 이미지 데이터인 x Cryostat는 xsd:base64binary 로 저장되며 MIME multipart 메시지의 두 번째 부분인 imageData 에 패키징되어 있습니다. 입력 메시지의 나머지 두 부분인 patientNamepatientNumber 는 MIME 다중 파트 이미지의 첫 번째 부분에서 192.0.2. 본문의 일부로 전송됩니다.

예 8.2. Attachments와 함께 Cryostat를 사용한 계약

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="XrayStorage"
    targetNamespace="http://mediStor.org/x-rays"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://mediStor.org/x-rays"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <message name="storRequest">
    <part name="patientName" type="xsd:string"/>
    <part name="patientNumber" type="xsd:int"/>
    <part name="xRay" type="xsd:base64Binary"/>
  </message>
  <message name="storResponse">
    <part name="success" type="xsd:boolean"/>
  </message>

  <portType name="xRayStorage">
    <operation name="store">
      <input message="tns:storRequest" name="storRequest"/>
      <output message="tns:storResponse" name="storResponse"/>
    </operation>
  </portType>

  <binding name="xRayStorageBinding" type="tns:xRayStorage">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="store">
      <soap:operation soapAction="" style="document"/>
      <input name="storRequest">
        <mime:multipartRelated>
          <mime:part name="bodyPart">
            <soap:body use="literal"/>
          </mime:part>
          <mime:part name="imageData">
            <mime:content part="xRay" type="image/jpeg"/>
          </mime:part>
        </mime:multipartRelated>
      </input>
      <output name="storResponse">
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>

  <service name="xRayStorageService">
    <port binding="tns:xRayStorageBinding" name="xRayStoragePort">
      <soap:address location="http://localhost:9000"/>
    </port>
  </service>
</definitions>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

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

Red Hat 소개

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

© 2024 Red Hat, Inc.