第四十四章 在 SOAP 消息中使用数据集 - 控制数据集格式

2024-06-30  本文已影响0人  Cache技术分享

第四十四章 在 SOAP 消息中使用数据集 - 控制数据集格式

控制数据集格式

默认情况下,数据集以 Microsoft DiffGram 格式编写,并在其前面加上 XML 架构。以下显示了一个示例:

<SOAP-ENV:Body>
  <Get0Response xmlns="https://www.myapp.org">
    <Get0Result>
    <s:schema id="DefaultDataSet" xmlns="" 
    attributeFormDefault="qualified" 
    elementFormDefault="qualified"
    xmlns:s="https://www.w3.org/2001/XMLSchema" 
    xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <s:element name="DefaultDataSet" msdata:IsDataSet="true">
        <s:complexType>
          <s:choice maxOccurs="unbounded">
            <s:element name="GetPeople">
              <s:complexType>
                <s:sequence>
                  <s:element name="Name" type="s:string" minOccurs="0" />
                  <s:element name="DOB" type="s:date" minOccurs="0" />
                </s:sequence>
              </s:complexType>
            </s:element>
          </s:choice>
        </s:complexType>
      </s:element>
    </s:schema>

    <diffgr:diffgram 
    xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" 
    xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
      <DefaultDataSet xmlns="">
        <GetPeople diffgr:id="GetPeople1" msdata:rowOrder="0">
          <Name>Quine,Howard Z.</Name>
          <DOB>1965-11-29</DOB>
        </GetPeople>
...
      </DefaultDataSet>
    </diffgr:diffgram>
   </Get0Result>
 </Get0Response>  
</SOAP-ENV:Body>

%XML.DataSet 类提供以下选项来控制此格式:

<SOAP-ENV:Body>
  <Get0Response xmlns="https://www.myapp.org">
    <Get0Result>
      <GetPeople xmlns="">
        <Name>Quine,Howard Z.</Name>
        <DOB>1965-11-29</DOB>
      </GetPeople>
      <GetPeople xmlns="">
...
    </Get0Result>
  </Get0Response>  
</SOAP-ENV:Body>

DiffGram 格式相比,请注意默认情况下不输出架构,并且输出不包含 <diffgram> 元素。

...
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" 
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
   <DefaultDataSet xmlns="">
   </DefaultDataSet>
</diffgr:diffgram>
...

相反,如果 WriteEmptyDiffgram 等于1,则 <diffgram> 元素不包含任何内容:

...
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" 
</diffgr:diffgram>
...

如果没有使用 DiffGram 格式,则此属性无效。

%XML.DataSet 还提供了 CaseSensitive 属性,该属性与同名的 Microsoft 数据集属性相对应。出于兼容性原因,默认值为 false

上一篇 下一篇

猜你喜欢

热点阅读