第四十五章 在 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 的命令行工具。此技术可以提供足够的信息来生成客户端。

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

相关推荐
小灰灰搞电子5 分钟前
Qt 重写QRadioButton实现动态radioButton源码分享
开发语言·qt·命令模式
by__csdn11 分钟前
Vue3 setup()函数终极攻略:从入门到精通
开发语言·前端·javascript·vue.js·性能优化·typescript·ecmascript
喵了meme20 分钟前
C语言实战5
c语言·开发语言
盖世英雄酱5813635 分钟前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端
济南壹软网络科技有限公司41 分钟前
企业级盲盒系统:Java高并发架构在多元化抽奖电商中的设计与实践
java·架构·开源源码·盲盒源码·盲盒h5·盲盒app
廋到被风吹走1 小时前
【Java】常用设计模式及应用场景详解
java·开发语言·设计模式
一条可有可无的咸鱼1 小时前
企业招聘信息,企业资讯进行公示
java·vue.js·spring boot·uni-app
Sammyyyyy1 小时前
DeepSeek v3.2 正式发布,对标 GPT-5
开发语言·人工智能·gpt·算法·servbay
Luna-player1 小时前
在前端中,<a> 标签的 href=“javascript:;“ 这个是什么意思
开发语言·前端·javascript
小草cys1 小时前
项目7-七彩天气app任务7.4.2“关于”弹窗
开发语言·前端·javascript