복합 유형 사용
WSIF는 Java™ 클래스로의 복합 유형 맵핑을 통해 사용자 정의 복합 유형을 지원합니다. 이 맵핑을 수동 또는 자동으로 지정할 수 있습니다.
이 태스크 정보
수동 맵핑에 사용되는 WSIFService mapType 및 mapPackage 메소드에 대한 호출은 자동으로 생성되는 동일한 맵핑 정보를 대체합니다. 이러한 대체는 하위 버전과의 호환성을 유지하는 데 도움을 주며 표준 이하의 맵핑을 허용합니다.
프로시저
- 복합 유형을 수동으로 맵핑하십시오.
이러한 맵핑을 수동으로 작성하는 데 사용하는 메소드는 제공자에 따라 다릅니다. Java 및 EJB 제공자의 경우 맵핑은 WSDL(Web Services Description Language) 파일의 바인딩 요소에서 지정됩니다. 다음 예제는 맵핑을 지정하기 위한 구문을 제공합니다.
<binding .... > <ejb:binding|java:binding/> <format:typeMapping style="Java" encoding="Java"/>? <format:typeMap typeName="qname" formatType="nmtoken"/>* </format:typeMapping> ... </binding>
이 예제에서:- 물음표("?")는 "선택사항"을 의미하고 별표("*")는 "0 이상"을 의미합니다.
- format:typeMap typeName 속성은 조작 중 하나로 사용되는 복합 유형 또는 단순 유형의 규정된 이름입니다.
- format:typeMap formatType 속성은 typeName으로 지정된 요소가 맵핑되는 Java 클래스의 완전한 클래스 이름입니다.
Apache SOAP 제공자를 사용할 경우, 복합 유형의 맵핑을 org.apache.wsif.WSIFService 인터페이스에서 두 메소드를 통해 클라이언트 코드에 있는 Java 클래스로 지정합니다.
public void mapType(QName elementType, Class javaType)
및
public void mapPackage(String namespaceURI, String packageName)
mapType 메소드를 사용하여 XML 스키마 요소 및 Java 클래스 간의 맵핑을 지정합니다. 메소드는 복합 유형이나 단순 유형 및 메소드가 맵핑하는 대상인 해당 Java 클래스를 표현하는 QName을 사용합니다.
사용자는 mapPackage 메소드를 사용하여 네임스페이스와 Java 패키지 간의 보다 일반적인 맵핑을 지정할 수 있습니다. 해당 네임 스페이스가 맵핑의 네임스페이스와 일치하는 모든 사용자 정의 복합 또는 단순 유형은 대응되는 패키지의 Java 클래스에 맵핑됩니다. 클래스 이름은 Java 이름 지정 규칙에 대한 표준 XML을 사용하는 복합 유형의 이름에서 파생됩니다.
- 복합 유형을 자동으로 맵핑하십시오.
생성된 Bean이 Java에서 이 유형을 나타내기 위해 사용되는 WSDL에 정의된 복합 유형의 경우, WSIF(Web Services Invocation Framework) 프로그래밍 모델은 WSIFService.mapType() 메소드를 호출하도록 요청합니다. 이 호출은 QName으로 식별된 XML 스키마 유형을 나타내는 Bean의 패키지 및 클래스 이름을 WSIF에 알립니다. 더 용이하게 하기 위해 WSIFService.mapPackage() 메소드는 지정된 패키지 내의 클래스가 QName의 네임스페이스로 맵핑되는 와일드 카드 버전을 지정하는 메커니즘을 제공합니다. 이것은 XML 스키마 유형을 Java 클래스로 수동 맵핑하고 다시 되돌리는 메커니즘입니다. (하나의 맵핑 항목은 양방향 맵핑을 제공합니다.)
XML 스키마 유형 이름을 Java 패키지 이름 및 클래스로 나타내는 QName을 변환하는 여러 방식이 있습니다. 자동 유형 맵핑을 사용하려면, WSIF_FEATURE_AUTO_MAP_TYPES 기능을 WSIFServiceFactory 인스턴스에 설정하십시오.
WSIFServiceFactory factory = WSIFServiceFactory.newInstance(); factory.setFeature(WSIFConstants.WSIF_FEATURE_AUTO_MAP_TYPES, new Boolean(true));
WSIF는 XML 스키마 유형 QName의 URI 파트를 패키지 이름으로 변환하고 로컬 파트를 클래스 이름으로 변환하여 유형을 맵핑합니다. WSIF는 WSIFUtils 메소드 getPackageNameFromNamespaceURI 및 getJavaClassNameFromXMLName을 사용하여 이 맵핑을 수행합니다.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twsf_comt
파일 이름:twsf_comt.html