이 주제에서는 WSDL 정의를 들여올 때 생성되는 오브젝트와 인지해야 하는 일부 제한을 설명합니다.
SOAP 1.2 인스턴스 문서를 구문 분석해야 하는 경우 SOAP 1.1 정의를 수동으로 제거하고 메시지 정의 파일 마법사를 통해 SOAP 1.2 정의를 들여오며 IBM 제공 메시지를 선택해야 합니다.
메시지 세트에 TDS 또는 CWF 계층이 있는 경우 들여온 SOAP 정의에 대해 여러 경고가 표시됨을 알 수 있습니다. 이 가운데 대부분을 무시할 수는 있지만 Boolean 속성에 대해 허용되는 값을 고려해야 합니다. SOAP 1.1의 Boolean 값이 1 또는 0인 반면 SOAP 1.2의 값은 참 및 거짓입니다. 메시지 세트에 대한 Boolean 값의 XML 표시가 XML 물리적 형식의 물리적 등록 정보에 지정되어 있으며 이에 따라 설정해야 합니다.
메시지의 xsi:type 출력 정책이 "수행하지 않음"으로 설정됩니다.
입력 메시지 | 출력 메시지 | |
---|---|---|
도출 대상 | WSDL 조작의 wsdl:input 하위(있는 경우)와 이에 따라 식별되는 WSDL 메시지 및 부분 | WSDL 조작의 wsdl:output 하위(있는 경우)와 이에 따라 식별되는 WSDL 메시지 및 부분 |
요소 이름 | WSDL 조작 요소의 이름 속성 값 | "Response"가 접미부로 사용된 WSDL 조작 요소의 이름 속성 값 |
요소 네임스페이스 | 해당 soap:body 요소의 네임스페이스 속성 값 | 해당 soap:body 요소의 네임스페이스 속성 값 |
각 메시지는 로컬 복합 유형으로, 일련의 요소입니다. 각 요소 이름은 각각 입력 또는 출력 요소에 의해 식별된 메시지의 WSDL 부분에서 이름 속성 값이 됩니다. 이 요소는 네임스페이스가 없으며(근본적인 스키마 표현의 형식="규정되지 않음") 이름이 충돌되지 않도록 로컬로 범위가 지정됩니다. 이 로컬 요소의 유형은 해당 부분 요소의 유형 속성에 의해 참조되는 XML 스키마 유형입니다. (유형이 WSDL 스키마에서 전역이 됩니다.)
soap:body가 WSDL 정의에서 사용="인코딩됨"으로 정의된 경우 SOAP-ENV 네임스페이스의 속성 그룹 encodingStyle에 대한 참조가 메시지 정의에 포함되며 메시지의 xsi:type 출력 정책이 "SOAP 인코딩 규칙 준수"로 설정됩니다. 그렇지 않으면 메시지의 xsi:type 출력 정책이 "수행하지 않음"으로 설정됩니다.
<xsd:complexType name="t"> <xsd:complexContent> <xsd:restriction base="SOAP-ENC:Array"> <xsd:sequence> <xsd:element name="item" type="string" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType>
SOAP 배열 구문의 일부 사용이 완전하게 지원되지 않습니다. 구문 분석 중 유용한 트리가 작성되지만(및 기록 시 직렬화가 가능) 다음에 유의하십시오.
예를 들어, offset[2]로 지정된 배열의 첫 번째 요소가 ESQL에서 InputRoot.MRM.array.item[3]이 아닌 InputRoot.MRM.array.item[1]로 액세스됩니다.
<SOAP-ENC:Array SOAP-ENC:arrayType="xsd:string[3]"> <item xsi:type="xsd:string">A general text string</item> <item xsi:type="xsd:token">A restriction of the string type</item> <item xsi:type="xsd:Name">ARestrictionOfTheTokenType</item> </SOAP-ENC:Array>
브로커 모델이 이를 예상대로 핸들링하지만 SOAP 인코딩에서는 SOAP 인코딩 네임스페이스로부터 유형 요소를 사용하는 데 배열 요소도 허용됩니다. 이는 동일한 WSDL 정의를 사용하는 응용프로그램이 다음 형식의 인스턴스 문서를 작성할 수 있다는 것을 의미합니다.
<SOAP-ENC:Array SOAP-ENC:arrayType="xsd:string[3]"> <SOAP-ENC:string>A general text string</SOAP-ENC:string> <SOAP-ENC:token>A restriction of the string type</SOAP-ENC:token> <SOAP-ENC:Name>ARestrictionOfTheTokenType</ SOAP-ENC:Name> </SOAP-ENC:Array>
구문 분석기가 자체 정의 요소로 처리할 수 없는 경우 이를 핸들링할 수 있도록 WSDL 들여오기를 통해 작성된 브로커 모델을 수동으로 편집해야 합니다.