2013-12-18 2 views
4

XML 파일을 바이너리 64 인코딩하고 다른 XML에 배치해야하는 프로젝트가 있습니다. 이것을 작동 시키려면 먼저 xml을 dp:serialize으로 직렬화 한 다음 dp:binary-encode을 resultning 변수에 사용하십시오. 이것은 모든 스칸디나비아 문자가 이스케이프 처리되는 것을 제외하고는 정상적으로 작동합니다. 결과를 디코드하면 åäöåäö이됩니다.dp : ibm datapower에서 직렬화 및 이스케이프 처리

아이디어가 있으십니까? 출력 태그 (xsl:output 태그가 dp:serialize에 영향을 줍니까?)와 다른 여러 옵션에 dp:escaping="minimum"을 시도했습니다. 바이너리 64 인코딩 전에 직렬화 된 결과를 인쇄하면 dp:serialize이 호출 될 때 이스케이프 처리가 추가되는 것을 보았습니다.

데이터 전원을 사용하지 않고 직렬화 할 수 있습니까?

답변

2

탈출하지 않고 직렬화 할 수 있다고 생각하지 않습니다. DataPower가 이탈합니다 (예 : "disable-output-escaping"은 "인라인"XML이 아닌 OUTPUT 컨텍스트에만 영향을 미칩니다 ...

이진 데이터로 처리해야하고/object/message/node에서 "손길이 닿지 않은"XML 파일을 가져와야합니다.().

이진 노드가 아니기 때문에 "XML은"당신은 똑바로를 인코딩 할 수 있습니다 :

<xsl:variable name="xmlInBase64" select="dp:binary-encode(/object/message/node())"/>