使用Visual Studio生成EnhancedAirBook3.9 Sabre代理时遇问题
我之前也踩过这个Sabre WSDL生成代理的坑,给你几个亲测有效的解决思路:
手动补全依赖的Schema文件
Sabre的WSDL通常依赖多个关联的XSD文件,单独下载单个WSDL会遗漏像STL_Payload_v02_01.xsd这类核心依赖。你需要从Sabre支持网站找到对应版本的STL_Payload_v02_01.xsd,把它和EnhancedAirBook的WSDL放在同一目录,然后修改WSDL里的Schema引用路径,将远程URL替换成本地相对路径(比如./STL_Payload_v02_01.xsd),再重新执行wsdl命令。用wsdl命令一次性指定所有依赖文件
如果不想修改WSDL内容,可以把所有需要的XSD和WSDL文件都下载到本地目录,然后用wsdl命令一次性列出所有文件,让工具自动处理依赖:wsdl EnhancedAirBook3.9.0RQ.wsdl STL_Payload_v02_01.xsd [其他关联XSD文件]改用Visual Studio的「添加服务引用」功能
命令行的wsdl工具对复杂的多Schema依赖支持不如IDE集成工具稳定。打开你的Visual Studio项目,右键项目 → 「添加」→「服务引用」,输入WSDL的本地路径(或远程URL),IDE会自动解析并下载所有关联的Schema文件,生成代理类。如果还是报错,可以在「高级」设置里关闭部分严格验证选项。确认WSDL包的完整性
有时候从官网下载的单个WSDL文件可能不完整,或者版本不匹配。去Sabre开发者平台重新下载EnhancedAirBook V3.9的完整WSDL包,里面应该包含所有必需的关联XSD文件,避免遗漏依赖。
内容的提问来源于stack exchange,提问作者Harrison

