xq之wsdl导入问题

导入分析:

(1)首先,解析wsdl时生成的每个schema中的import语句的location是无效的

(2)加载一个schema时如果有引用外部的类型,那么要先加载外部类型所在的schema,否则报错,WSSynQualificationFacade.wsdl导入出错就是这种情形

 

解决问题的办法:

(1)让wsdl中schema的定义符合某种规律使加载时不用导入也能成功加载全部xsd文件

试着修改代码:

File f = new File("...");
        	FileInputStream fileInputStream_a15b = new FileInputStream(f);
        	types.addAll(scope.getXSDHelper().define(fileInputStream_a15b, f.toURI().toString()));

 

 

(2)正确解析import语句location: 要使用相对路径,不能用绝对路径

 

其他问题:

(1)WSSupplierPurInFacade.wsdl虽然能成功导入,但是Wsbean类型有两个?

(2)加载schema时的顺序是怎样安排的,前缀生成的顺序根import依赖的顺序有关吗?

 

以下是测试代码:

public static void main(String args[]){
    	try{
    		//FileInputStream fileInputStream_d019 = new FileInputStream(new File("C:\\Users\\bleastsun\\AppData\\Local\\Temp\\7bbe1949-841d-4db8-a4b4-6187afab5ad1\\d0194ab1-0348-4d0e-953a-d96f708d1b30.xsd"));
    		FileInputStream fileInputStream_4eaa = new FileInputStream(new File("C:\\Users\\bleastsun\\AppData\\Local\\Temp\\7bbe1949-841d-4db8-a4b4-6187afab5ad1\\4eaaa0bc-0a4c-40b0-9d2e-37203b154a6e.xsd"));
    		FileInputStream fileInputStream_a15b = new FileInputStream(new File("C:\\Users\\bleastsun\\AppData\\Local\\Temp\\7bbe1949-841d-4db8-a4b4-6187afab5ad1\\a15bf271-16c9-4278-9602-07c9ac058a69.xsd"));
        	List<Type> types = new ArrayList<Type>();
        	HelperContext scope = new SDOHelperContext();
        	//types.addAll(scope.getXSDHelper().define(fileInputStream_d019, null));
        	//types.addAll(scope.getXSDHelper().define(fileInputStream_4eaa, null));
        	File f = new File("C:\\Users\\bleastsun\\AppData\\Local\\Temp\\7bbe1949-841d-4db8-a4b4-6187afab5ad1");
        	
        	types.addAll(scope.getXSDHelper().define(fileInputStream_a15b, f.toURI().toString()));
        	for(Type t : types){
        		System.out.println(t.getName());
        	}
            //IOUtil.close(fileInputStream_d019);
            IOUtil.close(fileInputStream_a15b);
    	}catch(Exception e){
    		e.printStackTrace();
    	}
    	
    }

 

 public static void main(String args[]){
        try{
            //FileInputStream fileInputStream_d019 = new FileInputStream(new File("C:\\Users\\bleastsun\\AppData\\Local\\Temp\\7bbe1949-841d-4db8-a4b4-6187afab5ad1\\d0194ab1-0348-4d0e-953a-d96f708d1b30.xsd"));
            //FileInputStream fileInputStream_4eaa = new FileInputStream(new File("C:\\Users\\bleastsun\\AppData\\Local\\Temp\\7bbe1949-841d-4db8-a4b4-6187afab5ad1\\4eaaa0bc-0a4c-40b0-9d2e-37203b154a6e.xsd"));
            FileInputStream fileInputStream_a15b = new FileInputStream(new File("C:\\Documents and Settings\\Administrator\\Local Settings\\Temp\\678ebf70-fafb-480d-b5a6-5ca99a138f73\\0ff89869-86d1-4124-b583-b40648dfe872.xsd"));
            List<Type> types = new ArrayList<Type>();
            HelperContext scope = new SDOHelperContext();
            //types.addAll(scope.getXSDHelper().define(fileInputStream_d019, null));
            //types.addAll(scope.getXSDHelper().define(fileInputStream_4eaa, null));
            File f = new File("C:\\Documents and Settings\\Administrator\\Local Settings\\Temp\\678ebf70-fafb-480d-b5a6-5ca99a138f73\\0ff89869-86d1-4124-b583-b40648dfe872.xsd");
            
            types.addAll(scope.getXSDHelper().define(fileInputStream_a15b, f.toURI().toString()));
            for(Type t : types){
                System.out.println(t.getName());
            }
            //IOUtil.close(fileInputStream_d019);
            IOUtil.close(fileInputStream_a15b);
        }catch(Exception e){
            e.printStackTrace();
        }
        
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值