天道酬勤,学无止境

xquery

在 Java 中使用 Xquery 处理器的 OSB fn-bea 函数(OSB fn-bea functions using Xquery processor in Java)

问题 嗨,我正在尝试对 OSB 中使用的 xqueries 进行单元测试,使用 Oracle 的 Xquery 处理器 for java。 参考下面的链接 http://docs.oracle.com/database/121/ADXDK/adx_j_xqj.htm#ADXDK187 Xquery 正在使用一些 fn-bea 函数(http://docs.oracle.com/cd/E13167_01/aldsp/docs25/xquery/extensions.html) Xquery Processor 无法识别这些函数。 我们将这些函数声明为外部函数并使用它们。 然而,我们需要知道每个 bea 函数的确切类和方法名称。 有人可以告诉我这些 fn-bea 函数的类和方法名称以及 jar 名称。 回答1 fn-bea 模块不适合在独立的 XQuery Processor for Java 中使用。 您可以按如下所示导入模块,但某些功能在此上下文中不起作用。 import module namespace fn-bea = 'http://www.bea.com/xquery/xquery-functions'; fn-bea:trim(' hello ') 不保证此模块将在未来版本中可用。

2021-09-19 08:42:10    分类:技术分享    xquery   osb

如何在命令行中使用 XPath 和 Saxon-HE 解析 HTML?(How to parse HTML using XPath with Saxon-HE in command line?)

问题 我使用 saxon HE 9.6,它非常适合在解析格式良好的 XML 文件时使用 XPath 3。 但我想知道如何将 expath-http-client(或任何其他工作解决方案)与 Saxon 结合起来,以便能够解析 realLife©®™(可能已损坏)HTML。 (Java 不是我更好的技能)。 我在谷歌上搜索了很多小时,但没有任何可行的解决方案。 我试过类似的东西: xquery_file.xsl : xquery version "1.0"; declare namespace http="http://expath.org/ns/http-client"; let $url := 'http://stackoverflow.com' let $response := http:send-request( <http:request href="{$url}" method="get"/> ) return <echo-results> {$response} </echo-results> Shell 命令取自 expath-http-client-saxon-0.10.0 的 README saxon --repo /usr/share/java/expath/repo -xsl:sample/simple-get.xsl -it:main 要么 saxon -

2021-09-17 09:08:55    分类:技术分享    java   xml   xpath   xquery   saxon

如何查询 SQL Server XML 列并返回特定节点的所有值?(How can I query a SQL Server XML column and return all values for a specific node?)

问题 我在 SQL Server 的 XML 列中有以下 XML。 <qualifiers> <qualifier> <key>111</key> <message>a match was not found</message> </qualifier> <qualifier> <key>222</key> <message>a match was found</message> </qualifier> <qualifier> <key>333</key> <message>error</message> </qualifier> </qualifiers> 如何编写 TSQL 以逗号分隔的字符串返回限定符/限定符/消息中的所有值? 我的目标是让查询在每一行的单个列中返回 XML 中的值。 结果应如下所示: "a match was not found, a match was found, error" 回答1 SQLFiddle 相同:根据@xQbert 建议的解决方案 create table Temp (col1 xml) go insert into Temp (col1) values('<qualifiers> <qualifier> <key>111</key> <message>a match was not found</message> <

2021-09-16 19:27:25    分类:技术分享    sql   sql-server   xml   xquery   sqlxml

如何使用 xquery 查找节点并向其添加子项?(How to use xquery to find node and addChild to it?)

问题 是否可以使用 xpath/xquery 查询特定的 xml 节点,然后向其中导入/添加子节点? 示例(取自 http://codepad.org/gJ1Y2LjM 的代码,在类似问题中提出,但不一样): 1.我想添加一个数组 $book = array('isbn'=>123456789099, 'title' => 'Harry Potter 3', 'author' => 'J K. Rowling', 'edition' => '2007'); 2. 到现有的 XML。 $doc = new DOMDocument(); $doc->loadXML('<?xml version="1.0"?> <books> <book> <isbn>123456789098</isbn> <title>Harry Potter</title> <author>J K. Rowling</author> <edition>2005</edition> </book> <book> <placeItHere></placeItHere> <isbn>1</isbn> <title>stuffs</title> <author>DA</author> <edition>2014</edition> </book> </books>'); 3. 为此,使用以下片段。 $fragment =

2021-09-16 11:20:22    分类:技术分享    php   xml   xpath   xquery

如何在marklogic中列出目录中所有文档的所有URI(How to list all the URI of all documents in a directory in marklogic)

问题 嗨,我如何检索目录中所有文档的 URI。 我创建了下面的 xquery 来实现这一点,但这没有帮助。 for $i in xdmp:directory("/Test/performance/results/","infinity") let $k := document-uri(fn:doc($i)) return <li>{$k}</li> 回答1 为了提高效率,您应该使用 URI 词典。 cts:uris((), (), cts:directory-query("/Test/performance/results/","infinity")) 有关文档,请参阅 https://docs.marklogic.com/cts:uris。 回答2 怎么样: xdmp:directory("/Test/performance/results/","infinity") ! <li>{fn:document-uri(.)}</li> 回答3 海报 XQuery 是不正确的,因为 $i 已经是一个文档而不是一个 URI,所以运行 fn:doc($i) 是行不通的。 Adam 的解决方案将起作用(无限深度),但可能非常慢,因为它需要获取每个文档。 在大型数据库上,速度非常慢。 如果您启用 URI Lexicon,那么您可以做得更好。 这是 xmlsh marklogic "ls"

2021-09-14 11:18:27    分类:技术分享    xquery   marklogic

删除 SQL Server 中不同级别的空 XML 标记(Remove Varying levels of empty XML tags in SQL Server)

问题 我使用 FOR XML EXPLICIT 来联合将一些 SQL 表信息转换为 XML 文件。 一切正常,但我在结果中有很多不同级别的空标签。 我想删除所有空标签,但保留每个组的顶级。 这是我的意思的例子: 使用这个无意义的 XML 示例,我可以使用 .modify xquery 删除底层空节点: DECLARE @XML XML = '<Whatever> <GlassesTypes> <GlassesType /> </GlassesTypes> <ExpressionOfJoy> <FellOver>Y</FellOver> </ExpressionOfJoy> <Flights> <Flight> <Bookings> <Booking> <Segments> <Segment /> </Segments> </Booking> </Bookings> </Flight> </Flights> </Whatever>' SELECT @XML as Before SET @Xml.modify('delete //*[not(node())]'); SELECT @XML AS After 这完全符合我对“GlassesTypes”的要求,但“Flights”中仍然存在空节点级别。 我可以对每个级别一遍又一遍地重复相同的修改命令,直到只显示“航班”,但这样做会删除

2021-09-14 00:04:15    分类:技术分享    sql   sql-server   xml   xquery   xml.modify

如何获取具有不同命名空间的元素(How to get an element with varying namespace)

问题 我希望获得以下 xml 的元素名称。 我的请求中的问题是我想获取 Payload 元素。 为此,我使用了这个表达式 name(//env:Payload) 所以我得到这个结果env:Payload <env:requeset xmlns:env="http://eai.ssss.xxx/Envelope" xmlns:ggg="http://fai.dgn.sss/ggg"> <env:clientbody> <env:Payload> <ggg:Service> <ggg:Request> <a>name</a> <b>age</b> <c>address</c> </ggg:Request> </ggg:Service> </env:Payload> </env:clientbody> </env:requeset> 但有时我的客户发送具有不同元素的请求,有时也没有命名空间。 那么我将如何获得以下请求 <requeset xmlns:="http://eai.ssss.xxx/Envelope" xmlns:ggg="http://fai.dgn.sss/ggg"> <clientbody> <Payload> <ggg:Service> <ggg:Request> <a>name</a> <b>age</b> <c>address</c> </ggg:Request>

2021-09-13 22:22:03    分类:技术分享    xml   xpath   xquery

MarkLogic sem:MarkLogic Java API 中的函数组(MarkLogic sem: function group in MarkLogic Java API)

问题 我正在寻找有关 MarkLogic Java API 的信息,正是我试图找到与sem: xquery函数组等效的 Java。 我无法在文档中找到任何内容,所以我认为你们可能有更好的主意。 我需要做的是将rdf/turtle转换为ML triples ,我知道XQuery是理想的选择,但由于要求我不能使用它,我再一次知道它不太聪明,但我可以改变它。 任何帮助将不胜感激。 我在文档中找到的所有内容都围绕着三种加载三元组的方式(https://docs.marklogic.com/guide/semantics/loading#id_81259): 使用 mlcp 加载三元组, 使用 XQuery 加载三元组, 使用 REST API 加载三元组。 回答1 还有一个建议。 一些 REST API 的端点支持图形存储协议和 SPARQL 协议。 您可以使用任何 HTTP 客户端将海龟发送到图形存储协议……这是它的 curl: curl -Hcontent-type:text/turtle \ -d@'nameofturtlefile.ttl' \ -X PUT URLFORHOST/v1/graphs?graph=nameofgraph. 该端点负责转换为 sem:triple 元素; 您永远不必看到三元组的 XML 表示。 将 curl 调用转换为 Apache HTTP 客户端

2021-09-13 11:41:23    分类:技术分享    java   xquery   semantics   marklogic

如何在 eXist-db 中使用 XQuery 和/或 XSLT 从我的 XML 在 SVG 中创建条形图(How do I create bar-charts in SVG from my XML using XQuery and/or XSLT in eXist-db)

问题 我找不到任何现有的解决方案,因为我认为还没有其他人使用 eXist-db 来做到这一点。 有人知道如何使用 eXist-db 中的 SVG 绘制条形图吗? 首先日期: DTD: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT akweny (akwen+)> <!ELEMENT akwen (nazwa, typ, powierzchnia, akweny?)> <!ELEMENT nazwa (#PCDATA)> <!ELEMENT typ (#PCDATA)> <!ELEMENT powierzchnia (#PCDATA)> 和 XML 例如: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE akweny SYSTEM "akweny.dtd"> <akweny> <akwen> <nazwa>Atlantycki</nazwa> <typ>ocean</typ> <powierzchnia>106450</powierzchnia> <akweny> <akwen> <nazwa>Północne</nazwa> <typ>morze</typ> <powierzchnia>750</powierzchnia> </akwen> <akwen> <nazwa

2021-09-13 10:52:15    分类:技术分享    xpath   svg   xquery   exist-db

MarkLogic 中的默认架构值(Default Schema Values in MarkLogic)

问题 我试图在调用之前通过xdmp:document-insert()插入一个文档我正在通过validate strict { $xml }并在插入调用中使用该输出根据它的各自架构验证文档。 但是, validate调用的输出不包括架构中指定的默认值。 简化架构: <xs:schema> <xs:complexType name="fields-type" abstract="false" mixed="false"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element default="Faulkner" maxOccurs="1" minOccurs="0" name="an_author" nillable="false" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="document-type" abstract="false" mixed="false"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="fields" type="fields-type" minOccurs="1" maxOccurs="1" nillable="false"/

2021-09-11 13:32:31    分类:技术分享    xml   xsd   xquery   marklogic