第四十五章 在 SOAP 消息中使用数据集 - 以 XML 形式查看数据集和架构

文章目录

  • [第四十五章 在 SOAP 消息中使用数据集 - 以 XML 形式查看数据集和架构](#第四十五章 在 SOAP 消息中使用数据集 - 以 XML 形式查看数据集和架构)
  • [以 XML 形式查看数据集和架构](#以 XML 形式查看数据集和架构)
  • [对 `WSDL` 的影响](#对 WSDL 的影响)

第四十五章 在 SOAP 消息中使用数据集 - 以 XML 形式查看数据集和架构

以 XML 形式查看数据集和架构

扩展 %XML.DataSet 的数据集在具有可用于生成 XML 的实用方法。所有这些方法都会写入当前设备:

  • WriteXML() 将数据集写入 XML,可选择在 XML 架构前加上前缀。此方法具有可选参数,用于控制顶级元素的名称、命名空间的使用、空值处理等。默认情况下,此方法会考虑数据集的格式,如上一节中的设置所指定。您可以通过提供可选参数的值来覆盖该结果,这些参数控制输出是否为 DiffGram 格式等。有关详细信息,请参阅 %XML.DataSet 的类文档。
  • XMLExport() 为数据集写入 XML 模式,然后将数据集作为 XML 格式。
  • WriteSchema() 仅为数据集写入 XML 模式。
  • XMLSchema() 写入其数据集类的 Microsoft 专有 XML 表示形式。

WSDL 的影响

如果 Web 服务在使用 %XML.DataSet作为 Web 方法的输入或输出,则会影响 WSDL,从而导致 IRIS.NET 以外的客户端难以使用 WSDL

对于类型化数据集,WSDL 包括以下元素(在 <types> 部分内):

xml 复制代码
<s:element name="GetDataSetByNameResponse">
   <s:complexType>
      <s:sequence>
        <s:element name="GetDataSetByNameResult" type="s0:ByNameDataSet" /> 
      </s:sequence>
   </s:complexType>
</s:element>
<s:complexType name="ByNameDataSet">
   <s:sequence>
     <s:any namespace="https://tempuri.org/ByNameDataSet" /> 
   </s:sequence>
</s:complexType>

对于非类型化数据集,WSDL 包括以下内容:

xml 复制代码
<s:element name="GetByNameResponse">
   <s:complexType>
      <s:sequence>
         <s:element name="GetByNameResult" type="s0:DataSet" /> 
      </s:sequence>
   </s:complexType>
</s:element>
<s:complexType name="DataSet">
   <s:sequence>
      <s:element ref="s:schema" /> 
   <s:any /> 
   </s:sequence>
</s:complexType>

在后一种情况下,如果尝试在 IRIS.NET 以外的工具中生成 Web 客户端,则会发生错误,因为该工具的信息不足。对于 Metro,可以在尝试使用 WSDL 之前加载其他架构信息。为此,可以使用名为 wsimport 的命令行工具。此技术可以提供足够的信息来生成客户端。

然而,在所有情况下,都需要进行大量工作来编写代码,以便客户端可以解释或生成适当形式的消息。

相关推荐
怒放吧德德4 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆6 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌8 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊9 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang10 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
Ray Liang11 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解11 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
SimonKing15 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean15 小时前
Jackson View Extension Spring Boot Starter
java·后端
Seven9717 小时前
剑指offer-79、最⻓不含重复字符的⼦字符串
java