【发布时间】:2014-06-03 15:28:21
【问题描述】:
使用 Oracle ESB 11g,我需要转换 Web 服务的结构,但我的 xml 类型有问题,源 Web 服务的类型为 base64binary 但我的模型是字符串类型。
来源类型
<xsd:element
name="MyDocument"
maxOccurs="1"
minOccurs="0"
type="xsd:base64Binary"
></xsd:element>
目的地类型
<xs:element name="myBase64file" type="xs:string" minOccurs="0"/>
为什么目的地是字符串?因为我在 Java 中的模型返回一个字符串
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("doc3.pdf");
byte[] bytes = IOUtils.toByteArray(stream);
byte[] bytes64 = Base64.encodeBase64(bytes);
myBase64file = new String(bytes64);
但现在真正的服务返回 base64binary :(
在 XQuery Mapper 中使用 oepe(Oracle OSB 的 Eclipse 更多插件),我尝试进行这样的硬转换
{
for $MyDocument in $MyData/ns2:MyDocument
return <myBase64file>{ data($MyDocument) }</myBase64file>
}
这是正确的方法吗?
【问题讨论】: