168.5. 부분적인 마샬링/Unmarshalling
이 기능은 Camel 2.2.0의 새로운 기능입니다.
ECDHEB 2는 마샬링 및 비정 XML 트리 조각을 지원합니다. 기본적으로ECDHEB는 지정된 클래스에서 전체 XML 트리에서 작동하도록 @ECDHERoot
ECDHE 주석을 찾습니다. 이 기능은 유용하지만 그렇지는 않지만 항상 생성된 코드에 @ECDHERootECDHE 주석이 없는 경우가 있으며, 트리의 일부만 비정규화해야 하는 경우가 있습니다.
이 경우에는 부분적인 미완성(partial unmarshalling)을 사용할 수 있습니다. 이 동작을 활성화하려면 속성 partClass
를 설정해야 합니다. Camel은 이 클래스를 B의 unmarshaler에 전달합니다. JaxbConstants.JAXB_ECDHE_CLASS
가 헤더 중 하나로 설정된 경우 ( partClass 속성이 DataFormat에 설정되어 있음) DataFormat의 속성이 초과되고 헤더의 세트가 사용됩니다.
마샬링의 경우 대상 네임스페이스의 QName으로 partNamespace
특성을 추가해야 합니다. Spring DSL의 예는 위에서 찾을 수 있습니다. JaxbConstants.JAXB_ECDHE_NAMESPACE
가 헤더 중 하나로 설정된 경우 ( partNamespace 속성이 DataFormat에 설정되어 있음) DataFormat의 속성이 초과되고 헤더의 세트가 사용됩니다. JaxbConstants.JAXB_ECDHE_NAMESPACE
를 통해 partNamespace
를 설정하는 동안 {[namespaceUri]}[localPart] 값을 지정해야 합니다.
... .setHeader(JaxbConstants.JAXB_PART_NAMESPACE, simple("{http://www.camel.apache.org/jaxb/example/address/1}address")); ...
...
.setHeader(JaxbConstants.JAXB_PART_NAMESPACE, simple("{http://www.camel.apache.org/jaxb/example/address/1}address"));
...