【问题标题】:Weblogic OSB - call function from another XQuery fileWeblogic OSB - 从另一个 XQuery 文件调用函数
【发布时间】:2014-09-11 17:54:03
【问题描述】:

在 Weblogic Service Bus 10g 中,我有一个 XQuery 文件,其中包含一个我想在另一个 XQuery 文件的函数中使用的函数。如何在 OSB 中实现这一点?

Projects/projectA/getMessageType XQuery:

declare namespace xf = "http://tempuri.org/projectA/getMessageType/";

declare function xf:getMessageType($anyType as element())
    as xs:string {

    ...
};

declare variable $anyType as element() external;

xf:getMessageType($anyType)

Projects/projectB/process XQuery:

declare namespace xf = "http://tempuri.org/projectB/process/";

declare function xf:process($data as element())
    as element() {

    // call projectA's getMessageType($data) here!!!
    ...
};

提前致谢, 下午

【问题讨论】:

    标签: weblogic xquery osb


    【解决方案1】:

    您需要将xf:getMessageType 函数从projectA 播放到库模块,而不是主模块。然后您可以导入库模块。

    考虑类似:

    Projects/projectA/getMessageType XQuery:

    import module namespace common = "http://your.site.com/common";
    
    declare namespace xf = "http://tempuri.org/projectA/getMessageType/";
    declare variable $anyType as element() external;
    
    common:getMessageType($anyType)
    

    Projects/projectB/process XQuery:

    import module namespace common = "http://your.site.com/common";
    
    declare namespace xf = "http://tempuri.org/projectB/process/";
    
    declare function xf:process($data as element())
        as element() {
    
        common:getMessageType(data)
        ...
    };
    

    项目/common/common.xqy

    module namespace common = "http://your.site.com/common";
    
    declare function common:getMessageType($anyType as element())
        as xs:string {
    
        ...
    };
    

    您可能需要在import module 语句中添加at 语句,指定公共库模块的文件位置,但我不确定在WebLogic OSB 中会是什么样子。

    【讨论】:

    • 嗨,亚当,感谢您的回答。您绝对正确,将函数放入库模块就可以了。我只是想知道是否可以直接导入另一个 XQuery 文件的功能,因为此要求是针对现在仅处于维护模式且正在逐步淘汰的系统中的小更新(因此希望不创建一个模块并更新每个流程以使用它)。
    • 别担心,XQuery 规范规定您只能从library module 导入函数,而不能从main module 导入函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2021-08-30
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多