提高J2EE技术与.NET之间的互操作性,第3部分 - 编程入门网
nOccurs="1" name="price"
type="s:float"/>
</s:sequence>
</s:complexType>
<s:element name="ArrayOfProduct" nillable="true"
type="s0:ArrayOfProduct"/>
</s:schema>
</types>
elementFormDefault="qualified" 属性确保 targetNamespace 限定包括复杂类型 Product 在内的所有局部声明元素。假设有另一个单位使用相同的相关命名空间实现类似的 Product 类型。就像当使用 IBM® WebSphere® Studio Application Developer Integration Edition(Application Developer)BPEL 设计器从不同的伙伴链接中利用普通复杂类型将 Web 服务集成到业务流程中时使用 wsdl:import 及 xsd:import 一样,从普通模式中将这两个模式导入到 WSDL 文档中。 在本场景中,如果导入的两个模式有相同的目标命名空间,则很有可能发生命名冲突。用于在另一个平台上构建集成的工具必须确保相关 URI 是基于 RFC2396 标准文档树中的基本 URI 的。然而,在 WSDL 文档中基本 URI 并没有定义完善,默认的基本 URI 的解释取决于应用程序。最好的习惯是始终使用它自己的组织域名来确保命名空间唯一。 提高J2EE技术与.NET之间的互操作性,第3部分(2)时间:2011-03-14 IBM共享通用域名的唯一命名空间 URI 有人说命名空间污染是软件工程中最糟糕的污染。每个组织都有不同的命名习惯,所以工具通常生成的 Web 服务存根代码在另一个平台上的 WSDL 命名空间声明中或许有不同的解释。Web Services Interoperability Organization(WS-I)规范已经在消除命名空间声明中的模糊点方面有了重大改进,并且正在向统一命名空间解释方向前进,但其中仍有一些不足之处。 考虑两个假设,小型银行分部及大型银行投资分部的 .NET Web 服务。一个为客户创建校验帐户,另一个创建投资帐户: 清单 3. .NET 中的零售 AccountService
清单 4. .NET 中的投资 AccountService
上述两个帐户服务有相同的域,但有不同的分支: http://bigbank.com/retail 及 http://bigbank.com/investment。由于不同的需求,零售 AccountService 中有一个比投资 AccountService 中稍有不同的 Customer 复杂类型。两个 AccountService 类文件都命名为 AccountService.asmx。在 .NET 中这不会有问题,而实际上在 .NET 中是完全顺乎其理的,因为两个帐户服务都被限定为不同的 URL,他们都准确的反映出他们的域名及分支名。 现在,如果您准备在 Application Developer 中创建客户端项目并试图集成两个 Web 服务,情况就要有所变化。在 Java 代码中,当创建 Web 服务客户端时,包名是基于命名空间的域名的。http://bigbank.com/ |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |