Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml soap响应的返回序列类型_Xml_Soap_Xquery - Fatal编程技术网

Xml soap响应的返回序列类型

Xml soap响应的返回序列类型,xml,soap,xquery,Xml,Soap,Xquery,关于 我理解根节点与文档节点相同,根元素与文档元素相同。我理解正确吗 您能在我的示例soap响应中确认这一点吗 S:Envelope是根节点和文档节点 S:Envelope也是根元素和文档元素 document-node()是否将是此soap响应的返回序列类型,我应该在给出此soap响应的soap请求的XQuery声明函数签名中使用它 或者它应该是类似于节点()*、项()*或元素()* 非常感谢 阿帕 我有这样一个soap响应: <?xml version="1.0" encoding=

关于

我理解根节点与文档节点相同,根元素与文档元素相同。我理解正确吗

您能在我的示例soap响应中确认这一点吗

  • S:Envelope是根节点和文档节点
  • S:Envelope也是根元素和文档元素
  • document-node()是否将是此soap响应的返回序列类型,我应该在给出此soap响应的soap请求的XQuery声明函数签名中使用它
  • 或者它应该是类似于节点()*、项()*或元素()*
  • 非常感谢
    阿帕

    我有这样一个soap响应:

    <?xml version="1.0" encoding="UTF-8"?>
    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
      <S:Body>
        <ns2:searchResponse xmlns:ns2="ws.s.b.d.com">
          <return>
            ... snipped ...
            <businessName>GREEN NATURE WATER REFILLING STATION</businessName>
            <province>PROVINCE AA</province>
            <referenceNumber>12345678</referenceNumber>
            ... snipped ...
            <status>Registered</status>
          </return>
          ... snipped a lot of <return> ... </return> ...
          <return>
            ... snipped ...
            <businessName>129 GREEN AVENUE STORE</businessName>
            <province>PROVINCE BB</province>
            <referenceNumber>12345670</referenceNumber>
            ... snipped ...
            <status>Registered</status>
          </return>
        </ns2:searchResponse>
      </S:Body>
    </S:Envelope>
    
    
    ... 剪断。。。
    绿色天然补水站
    AA省
    12345678
    ... 剪断。。。
    登记
    ... 剪了很多。。。
    ... 剪断。。。
    绿色大道129号店
    省BB
    12345670
    ... 剪断。。。
    登记
    
    这是一个非常好的问题,经常会引起混淆

    在中,文档节点与元素节点不同:

    • 文档节点封装了整个XML文档,在语法中不可见

    • 元素节点在语法中是可见的,由尖括号包围。因此,信封是一个元素节点

    如果使用doc()函数或parse-xml()解析文档,则返回的是文档节点(typedocument-node()),元素S:Envelope(typeelement()元素(S:Envelope))将是此文档节点的子节点。我认为,对于用户定义的函数,最好也遵循这种约定

    (注意:其他函数可能会为您提供一个没有顶级文档节点的树,在这种情况下,树被称为片段而不是文档。)

    对于作为文档节点子节点的元素节点的限定,存在许多不同的措辞。在中,S:envelope将被称为文档元素,因为它是文档信息项正下方的顶级元素信息项。但是根本身就是文档,而不是文档元素

    关于根节点是文档节点,根元素是文档元素的说法,这需要谨慎。如果树是一个片段,则根节点将不是一个文档节点(请参阅XDM规范的部分),而是一个元素节点。根元素在这两种数据模型中都不是官方术语

    简言之,要解决要点:

  • S:Envelope是根节点,文档节点:如果树是文档(例如,通过doc()获取),则为否;如果树是片段,则为是和否
  • S:Envelope也是根元素和文档元素:如果树是文档,则为“否”和“是”;如果树是片段,则为“是”和“否”
  • document-node()是这个soap响应的返回序列类型吗?我应该在xquery声明函数签名中为给出这个soap响应的soap请求使用它:这取决于这个函数返回的是S:Envelope本身还是包装它的文档节点