XQuery 多个xml 文件?

2023-11-24

是否可以从 xQuery 打开 2 个文档并对它们进行联接?


是的,这里是一个例子来自XQuery 规范.:

“连接将来自多个源的数据组合成一个结果,是一种非常重要的查询类型。在本节中,我们将说明如何在 XQuery 中表达几种类型的连接。我们的示例将基于以下三个文档:

  1. 一个名为parts.xml其中包含许多part元素;每个part元素又包含partno and description子元素。
  2. 一个名为suppliers.xml其中包含许多supplier元素;每个supplier元素又包含suppno and suppname子元素。
  3. 一个名为catalog.xml其中包含有关供应商和零件之间关系的信息。目录文档包含很多item元素,每个元素又包含partno, suppno, and price子元素。

传统(“内部”)联接返回来自两个或多个相关源的信息,如以下示例所示,该示例组合了来自三个文档的信息。该示例生成从目录文档派生的“描述性目录”,但包含零件描述而不是零件编号,以及供应商名称而不是供应商编号。新目录按零件描述的字母顺序排列,其次按供应商名称排列。*

<descriptive-catalog>
   { 
     for $i in fn:doc("catalog.xml")/items/item,
         $p in fn:doc("parts.xml")/parts/part[partno = $i/partno],
         $s in fn:doc("suppliers.xml")/suppliers
                  /supplier[suppno = $i/suppno]
     order by $p/description, $s/suppname
     return
        <item>
           {
           $p/description,
           $s/suppname,
           $i/price
           }
        </item>
   }
</descriptive-catalog>

上一个查询仅返回有关具有供应商的零件和具有零件的供应商的信息。一个外连接是一种连接,它保留来自一个或多个参与源的信息,包括在另一个源中没有匹配元素的元素。例如,一个左外连接供应商和零件之间可能会返回有关没有匹配零件的供应商的信息。”

请注意,XQuery 没有标准的 document() 函数(它是一个XSLT 函数),而是有doc()函数,它是“的一部分XQuery 1.0 和 XPath 2.0 函数和运算符".

克里斯的回答至少有两个错误:

  1. XQuery 区分大小写-- 符合标准的 XQuery 处理器将不允许 Chris 示例中使用的大写关键字。
  2. 不需要在标准函数前面加上前缀像 doc() 一样,我只是引用 XQuery 规范,它有前缀。否则,在我自己的代码中我会省略“fn“ 字首。
  3. 函数 document() 不是标准的 XQuery/XPath 函数. The doc()应该使用函数来代替。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XQuery 多个xml 文件? 的相关文章

随机推荐

  • WPF Converter 转换导致 Visual Studio 设计器异常

    如下所示的转换器将导致 2008 Visual Studio 设计器不显示 xaml 并错误显示 指定的转换无效 例外 public class ItemsVisibilityToGridColumnWidthConverter IMult
  • 无法手动关闭 matplotlib 绘图窗口

    我在 Mac OS X Yosemite 上运行 Python v2 7 和 matplotlib v1 5 0 直到最近 我能够在交互式解释器中运行脚本 显示绘图 然后手动终止窗口 例如 import numpy as np x np a
  • 如何安装libpython2.7.so

    我已经安装了Python 2 6 6 17 50 21 email protected which python usr local bin python 还有 Python 2 7 6 位于 17 51 12 email protecte
  • 享元模式中描述的内在状态和外在状态有什么区别?

    从本章开始FlyWeight内部图案四人帮FlyWeight模式适用当大多数对象状态可以成为外在的时候 什么是extrinsic state意思是 我感觉这个模式是用来共享对象的 如果要共享对象 那么该对象怎么可能有任何状态呢 让我们以文字
  • 如何更改角度材料排序图标

    我需要将默认箭头图标从角度材质 matSort 更改为自定义箭头 当前代码
  • C#:对象变量应该分配为 null 吗?

    在C 中 是否需要将一个对象变量赋值给null如果您已经使用完它 即使它超出了范围 不 这实际上可能是危险的并且容易出现错误 考虑一下有人可能稍后尝试使用它 但没有意识到它已被设置为空的可能性 仅当有合理理由将某些内容设置为 null 时
  • MS Access VBA 替换密码加密/解密

    谁能建议我如何实现替代密码风格 VBA中的加密和解密函数 我很欣赏散列被认为是更好的方法 但我需要可逆加密 非常感谢 您可以使用Blowfish 有一个可在 Access 中运行的 Visual Basic 6 版本 可在此处获取 http
  • 是否有函数可以获取区域设置字符串格式的 UTC 日期?

    我想在 JavaScript 中获取当前 UTC 日期 但以本地日期格式显示它 例如Date toLocaleDateString does 我首先尝试获取当前 UTC 日期Date toUTCString 但这实际上并没有以本地格式打印出
  • 奇怪的函数语法

    我看到一个奇怪的函数 看起来像这样 const x a gt b gt a b console log x 1 2 输出是 3 我知道它是一个返回函数的函数 并且 a 和 b 都在同一范围内 但我的问题是 这怎么能用在现实生活中呢 不使用带
  • 初学者如何使用常量内存(Cuda C)

    我有 3 个常数值 A B C 我想将其保存在常量内存中 我通过输入以下代码行找到了一种方法 CUDA global constants constant int A constant int B constant int C int ma
  • 当基类被淘汰时,单元测试会如何变化?

    这在一定程度上是后续行动这个问题 我不确定问这个问题的最佳方式 所以我会尝试一个小故事来设置场景 曾几何时 有一个类 A 它有一个单元测试类 ATests 负责通过公共接口测试其行为 他们幸福地在一起生活了一段时间 然后发生了变化 出现了
  • AutoFixture IEnumerable 与 CreateMany() 的行为

    看帖子的时候here 看起来我应该能够使用创建多个对象CreateMany 使用迭代它们foreach 然后将它们作为数组返回 我看到的是 每次迭代似乎每次都会创建新对象 这是预期的行为吗 要创建的实体 public class TestE
  • 如何使用 Dart 从不同的 URL 提供静态文件?

    有了 Dart 我就得到了awesome html 但我希望它是 awesome 这纯粹是一个 htaccess 我正在使用 Apache 或者有没有办法通过 Dart 或 现代 Web 开发 方式来解决这个问题 This htaccess
  • 将链接插入 MatSnackBar

    是否可以在 Angular Material 2 中插入链接MatSnackBarModule 我尝试在文本中执行此操作 但它将 html 显示为文本 const text a login a this snackBar open text
  • Google adsense 响应服务器响应状态为 400 ()

    我第一次在我的网站上实施 google adsensemyPleaks 在这里我面临下面提到的错误 Failed to load resource the server responded with a status of 400 谁能帮我
  • OpenCV:如何在图像上应用彩虹渐变图?

    假设我们有一个通过 openCV 以某种方式修改的图像 现在我们很乐意申请它渐变贴图 就像我们可以通过 Photoshop 应用的那样 所以我想知道如何通过 openCV 应用渐变图 彩虹色 这是一种使用 Python 创建假 伪彩色图像的
  • 从文本区域执行 javascript

    我不完全确定这是否可能 但我正在尝试在浏览器中创建一个在页面上运行 javascript 的迷你人造编辑器 这就是我理论上一直在尝试做的事情 HTML
  • 使用 Protractor 从 chromedriver 获取 HTTP 请求(性能日志)

    我正在使用量角器进行 Angular 的 e2e 测试 并且我正在拼命地尝试获取带有标头和正文的 HTTP 请求日志 我已经像这样配置了量角器 useAllAngular2AppRoots true ignoreUncaughtExcept
  • 在 NSString 中将 NSData 显示为二进制

    我在资源文件夹中有一个二进制文件 file bin 我想读取它并将其显示为二进制文件 这个想法是将二进制信息放入数组中 但是首先 我尝试在 UILabel 中显示它 如下所示 NSData databuffer NSString 字符串数据
  • XQuery 多个xml 文件?

    是否可以从 xQuery 打开 2 个文档并对它们进行联接 是的 这里是一个例子来自XQuery 规范 连接将来自多个源的数据组合成一个结果 是一种非常重要的查询类型 在本节中 我们将说明如何在 XQuery 中表达几种类型的连接 我们的示