在Oracle Service Bus xquery转换中,我尝试使用replace函数将两个反斜杠替换为一个反斜杠:
让$str:=replace($srcStr,“\\\\”,“\\”),其中$srcStr包含值“^\\d{1,4}$”
但由于某些原因,这不起作用。结果仍然是“^\\d{1,4}$”
当我在Altova XmlSpy中调用同一个函数时,这很好:replace(“^\\d{1,4}$”,“\\\”,“\\”)结果是^\d{1,4}
有人知道为什么OSB与源字符串中的反斜杠不匹配
是否有方法在应用程序范围中声明变量。这个变量应该留在内存中,为所有请求提供服务,而不需要为每个请求创建它。类似于会话,但它与特定用户无关
我要找的是类似于php APC缓存的东西。因为这被标记为“marklogic”,我将提供marklogic非标准答案。
基于标准的答案是“否”或“问题超出范围”,因为XQuery没有定义“应用程序范围”(超出顶层模块语句的执行范围——在某些上下文中可以称为“应用程序范围”)
在MarkLogic中,有一个受支持的功能叫做“会话”;
用于响应通常称为“会话”的w
我有一个包含构造函数的函数:
declare function local:Construct ($id)
{
<tag id="{$id}"/>
}
这很有效
现在我想连接两个这样的结构
for $val in ...
...
return local:Construct(data($val/id1)) + local:Construct(data($val/id2))
加号当然是错的。我应该使用什么来代替?我假设您希望为每个$val返回两个节点,在这种情况下,您希望使用,
标签: Xquery
exist-dbbasexxquery-update
我正在尝试构建简单的XML数据库(在BaseX或eXist db中),但我无法确定如何修改文档中的值:
测试内容如下:
<p>
<pl>
<id>6></id>
</pl>
</p>
然后我得到错误:[XUST0001]如果表达式:不允许更新表达式
当我尝试声明更新函数时,即使它报告错误:
declare namespace testa='test';
declare updatin
当我试图在Java中执行下面的代码时,我遇到了“not in scope error”错误中的“Variable”
String xq = "declare variable $per1 as document-node(element(*, xs:untyped)) := " +
"fn:parse-xml($per);" +
"declare variable $job1 as document-node(element(*, xs:untyped)) := fn:parse
如何在xquery中标记特殊字符,如“&”和“?”。当我试图标记这些特殊字符时,我无法做到这一点。你能建议我澄清这个问题吗?在XML中,你必须避开符号
tokenize($string, "&")
或者,您也可以使用其unicode代码点:
tokenize($string, codepoints-to-string(38))
在XML中这样做时,必须避开符号
tokenize($string, "&")
或者,您也可以使用其unicode代码点:
toke
我使用的是MarkLogic4,我有大约15000个文档(每个文档大约10KB)。我想将整个内容作为文档加载(并将全部文档转换为单个csv文件,并输出到HTTP输出流以供下载)。当我以这种方式加载文档时:
let $uri := cts:uri-match('products/documents/*.xml')
let $doc := fn:doc ($uri)
xpath有大约15000个XML。因此fn:doc抛出一个错误XDMP-EXPNTREECACHEFULL
有什么解决办法吗?我无
我需要将Marklogic数据库内容(5000万xml文档)从一个数据库主机复制到另一个数据库主机。我们可以通过备份/恢复来实现这一点。但我需要将两个森林(每个森林2500万)中的可用数据复制到20个森林(每个森林250万)中,并将它们均匀分布。这可以使用xqsync或任何其他实用程序来完成吗?正如wst所指出的,默认情况下,对于新数据库,Marklogic 7将自动为您完成这项工作。对于从早期版本升级的数据库,需要从管理界面手动启用重新平衡。您可以在底部附近的“数据库配置”选项卡上找到该设置
我有一个返回特定值的Web服务
<BasicPersons>
<id>4</id>
<firstName>Patricia</firstName>
<middleName>A</middleName>
<lastName>Cluss</lastName>
</BasicPerson
目前,我正在开发一项服务,其中消费者可以在请求中发送250个元素,我需要使用xquery转换为所有入站元素进行映射
有人能告诉我是否有任何最佳方法或工具可以一次性测试250个元素的映射吗?
提前谢谢。这是我用的
我将jar放入maven repo(以及各种OSB/weblogic jar),然后编写JUnit测试用例。甚至不需要运行OSB服务器
我有给定的XML文件(),正在尝试执行以下操作:
返回没有讲师作为讲师的课程数(计数)
我试过了
let $course := doc("courses.xml")//Course
return count($course/Instructors/not(Lecturer))
但不是返回数字10,而是返回13。因为它基本上给了我一个数字
假假假真真真真真真真
我需要做额外的检查来限制真实值吗?您的测试需要在一个测试环境中进行
试试这个:
let $course := doc("courses.
以上是我的xml响应:
我想验证每一行的状态是否为打开状态
打开
声明名称空间ns1='https://************/token';
对于//ns1:Response[1]/ns1:rows[1]中的$x
返回数据($x/ns1:e[1]/ns1:e[10]/text())
但它并没有返回值。。它只是给出了预期结果中的以下内容
declare namespace ns1='https://**********/token';
<Result>
for $x in //
是否有人知道任何类型的插件或工具,通过这些插件或工具,我们可以将TFS与MarkLogic集成,从而帮助我们直接从TFS部署到MarkLogic模块数据库。否,没有可用的工具/功能。您需要TFS客户端首先从TFS获取文件,然后将模块加载到MarkLogic中
这与任何版本控制系统(如Git或SVN)的过程相同。您需要从版本控制存储库获取模块,然后部署它们
例如,对于CI环境,您可以将Jenkins项目配置为使用轮询和查找更改或按计划定期生成,然后使用生成/部署脚本,例如生成以部署到具有适当目标的
标签: Xquery
xslt-2.0exist-dbxquery-3.0
环境:eXistDB4.2.1、XQuery 3.1、XSLT2.0
我试图用XSLT2.0样式表转换XML文档,由eXist DB/Query 3.1触发。我收到以下错误
err:XPDY0002 Undefined context sequence for 'child::{}xinclude-path'
[at line 271, column 48, source: /db/apps/deheresi/modules/document.xql]
此错误指向document.xqm模块
我在某个目录中有一个XML,我想在目标位置处理和写入一个新文件,但它显示的查询返回了一个空序列
XML:
xquery:
xquery version "1.0-ml";
let $input := xdmp:document-get("C:/Users/AmrendraG/Downloads/aaapp.xml")
return
xdmp:document-insert("C:/Users/AmrendraG/Downloads/aaapp-out.xml", <root
在我的网站(eXistDB,Xquery 3.1)上,用户可以下载动态生成的文档。我已经成功地为.pdf、.xml和.zip文件实现了此功能
现在我正在尝试将.csv输出序列化,但失败了
我得到以下错误:
检查功能参数1
参数1的实际基数与函数签名中声明的基数不匹配:。
期望基数:0或1,得到2
该错误在函数local:download()行let$binarysult:=util:string to binary($result,'UTF-8')中触发。
我认为我可以将一系列字符串传递给序列化
我觉得我一定错过了什么,但我就是不知道如何使用XQuery在MarkLogic中创建UTC时间戳。fn:current dateTime函数使用操作系统指定的时区偏移量创建时间戳
使用服务器端JavaScript很简单:
newdate().toISOString()
//2020-02-07T14:43:32.588Z
谢谢大家! 您可以使用适当的fn功能调整时区,如下所示:
fn:adjust-dateTime-to-timezone(fn:current-dateTime(), xs:d
有没有更简单的方法
<Elements>
{
for $i in ("a", "b", "c")
return <Element name="{$i}"/>
}
</Elements>
{
“a”、“b”、“c”中的$i
返回
}
在xquery中?我不太理解你的问题。你说的更容易是什么意思
那么:
<Elements>
<Element name="a" />
<Element name="b" /
标签: Xquery
xquery-sqlosbxquery-updatexquery-3.0
我正在使用XQuery查询OSB项目中的数据库。考虑一下
下表:
userId Name Category
------ ------- --------
1 Dheepan Student
2 Raju Student
还有XQuery
let $userName:=fn-bea:execute-sql(
$dataSourceJndiName,
xs:string("NAME"),
xs
我想通过区域名称获得区域名称、产品数量和最小库存订单的产品名称
我几乎得到了所有的东西,除了面额什么也没印
我的代码:
for $zone in distinct-values(/productos/produc/cod_zona)
let $numero := count(/productos/produc[cod_zona = $zone]/cod_prod)
let $nomzona:=/zonas/zona[cod_zona = $zone]/nombre
let $minimo :=m
标签: Xquery
basexxquery-3.0xquery-update
我正在BaseX7.9上执行以下XQuery代码,并且能够在结果窗口中看到插入。我甚至在关闭并重新打开集合后看到新节点。但是,当我转到文件目录时,我看到它没有被修改。那么,如何使插入也反映在文件上呢?BaseX如何处理插入命令,使其在数据库上下文中保持不变,而不是在文件上下文中保持不变
let $up := <Employee Name="Joe">
<Personal>
<SSN>666-66-1234</SSN>
&
下面是XML文件-
<A>
<B>
<Data>John is a good</Data>
<Data>James loves cricket</Data>
<Data>John loves Hockey</Data>
</B>
<B>
<Data>Stuart loves cricket</Data>
在JBoss中部署模块时,会出现以下错误:
无法评估库模块
函数“hello”位于保留命名空间中
没有为“m:hello”声明命名空间
我的src/main/resources中已经有了Helloworld2.xq文件。它不能识别或显示为重复的命名空间。有人能帮我吗?除非您是域“basex.org”的所有者,否则您可能应该为编写的函数使用不同的名称空间。在URI空间的一部分中创建一个名称空间,您实际上对其拥有一些命名权限。这至少可以清除第二个错误
使用什么相对URI来查找模块似乎经常引起混淆;如
标签: Xquery
xml-namespacesbasex
对于我执行的所有XQuery查询,我定义了一个默认元素名称空间,如下所示:
declare default element namespace 'http://example.com';
(: rest of the query :)
但是硬编码这个名称空间有点麻烦。我可以从外部变量动态定义默认名称空间吗
它试图:
declare default element namespace $namespace;
(: error: Expecting quote, found '$'. :)
。。
我使用“调度器任务”在ML8.0.6上通过Xquery查询计划了数据提取
我的Xquery查询(如果我在ML web控制台中复制/粘贴该查询,并在AWS S3上获得可用文件,则该查询有效):
我的计划任务:
已启用任务:是
任务路径:/home/bob/extraction.xqy
任务根目录:/
任务类型:每小时
任务期限:1
任务开始时间:小时后8点
任务数据库:mydatabase
任务模块:文件系统
任务用户:管理员
任务主机:XX
任务优先级:更高
不幸的是,我的脚本没有执行,因为
我有一个项目的XML清单
清单列出了我有多少ID为1的if项目,有多少ID为2的项目,等等(假设每个项目ID代表一个产品)。
然而,根据特定类型的项目数量的不同,列表会被细分,这些项目上有特定的标记。
因此,我让我们说:
Item ID Marked? Qty
1 (no) 500
1 ABC 100
1 (no) 50
1 FFFF 333
2 (no) 10000
该ir以如下
在我的一个项目中,MarkLogic顾问建议我在cts:search中使用集合,在另一个项目中,ML顾问建议在cts:search中使用根元素。在这两个项目中,我们拥有相同数量的文档。哪一个性能更好
假设我们有一个文档,我拿一个小文档来解释这个场景。它有一个名为demo的集合:
<root>
<child1>ABC</child1>
<child2>DEF</child2>
<child3>GHI</child3>
我有下面两个文档,范围索引是分别在数据类型string、string、string和integer的元素Id、名称、键和值上创建的
<Root Id='1'>
<Name>ABC</Name>
<Child>
<Key>1</Key>
<Value>10</Value>
</Child>
<Child>
<Key>2</Key>
在我的Xquery 3.1模块中,我通过模块导入导入了“全局变量”,其中一个($globalvar:MSGS)包含一个XML文档,通过引用该变量访问该文档通常没有问题。比如这个
$globalvar:MSGS//vocab[@xml:id="warning"]
会回来的
<vocab xml:id="warning">
<span lang="en">Warning! Your changes (OBJECTID) could not be s
我想从本地(10.120.50.100)Marklogic数据库中摄取文档或文件,以测试VLan(10.125.1.77),它是使用Marklogic的不同VLan,因此-是否有可能通过任何方式实现这一点?从一个Marklogic实例读取的文档可以写入另一个Marklogic实例
一种方法是从命令行运行mlcp,从一台主机读取数据,然后向另一台主机写入数据。看
希望有帮助
标签: Xquery
xsd-validationperformancepointshred
我编写了几个XQuery语句来分解现有的KPI和仪表板元数据,但我希望通过查看相应的Xml模式或DTD(如果存在)来验证我的查询。我在网上搜索,但找不到我要找的东西
元数据存储在Performance Point的后端Sql Server数据库中的dbo.FCObjects表的SerializedXml列中。如果有可用的示例XML源,可以使用以下方法之一通过该参考文档生成验证器:
PPS创作服务公开了一个WSDL,您可以根据该WSDL验证XML
您可以从以下位置的开放规范文档中获取此WS
我有一个XML文件:
$xml := <xml>
<element>
<text>blahblah</text>
</element>
<element>
</element>
<element>
<text>blahblah</
字符串联接将包含空格,但构造函数可能已根据的有效设置删除了空格
您看到的结果对于strip设置是正确的,在strip设置中,您实际上是在构造一个没有任何边界空白的节点,即:
let $text :=
<a>
<b>f</b>
<b>a</b>
<b> </b>
<b>l</b>
</a>
return
string-join($text/b,"")
字
我使用xquery处理关系数据库。我在考虑实现某种SAXSource、DOMSource或StreamSource,将其连接到关系数据库作为数据输入。运行xquery并让saxon将结果xml作为输出流返回。xml的关系数据库将是非常简单的xml结构,表示输入到saxon的数据。以前有人这样做过,或者有我可以查看的示例代码吗?只需要看看如何从关系数据库构建输入流,以及如何调用Saxon将其用作输入流。主要问题是性能。Saxon将数据库简单地视为一个要加载到内存中的大XML文件,它不会将XQuer
我目前有这个查询,但它只返回一个布尔值TRUE
let $expression1 := (0, 11, 22, 34, 36, 57)
let $expression2 := (16, 17, 57, 18)
for $item in ($sequence1 = $sequence2)
return $item
此查询当前返回布尔值TRUE。
如何返回两个值的序列:第一个表达式的值和第二个表达式的值
任何帮助都将不胜感激。
谢谢 您得到的是布尔结果,因为($sequence1=$sequen
我是xquery新手。请建议xquery获取以下输出xml
输入xml:
<elem count="4" name="ABC">
<elem count="3" name="VAl_1">
<elem count="1" name="VAl_2">
</elem>
<elem count="5" name="PQR">
<elem count="2" name="VAl_1">
<elem co
我想返回“field”中包含“databases”属性的所有书籍的结果
.xml文件的示例:
<?xml version="1.0" encoding="UTF-?>
<testbook>
<book>
<author> AuthorGuy </author>
<title> theBook</title>
<field> databases </field>
</book>
我需要在XML中插入元素,因此我尝试使用XQuery创建一些XML格式,但它不起作用
Query :
let $a := 'test'
return
<p name="uri" value= $a />
Expected output :
<p name="uri" value= "test" />
查询:
让$a:=“测试”
返回
预期产出:
我正在windows上运行exist db,希望执行外部windows程序
这在普通windows外壳内工作:
C:\path\to\webGLRtiMaker.exe C:\path\to\ImageFile.rti -q 90
我想从我的xquery脚本中执行相同的程序(我已经根据指定的路径将所有需要的文件上传到我的exist db):
xquery版本“3.1”;
导入模块命名空间进程=”http://exist-db.org/xquery/process在“java:org.exist
我试图提取html页面中大量链接的标记内的链接(href)和文本
我只想要特定的链接,我用一个子串匹配
我的html示例:
<a href="/this/dir/1234/">This should be 1234</a> some other html
<a href="/this/dir/1236/">This should be 1236</a> some other html
<a href="/about_us/">Not i
我想要一个全局变量,可以在不同的.xqy页面中使用。我可以在Marklogic Server的xquery中声明这样的变量吗?您可以在任何模块中声明变量。例如,它是config.xqy
declare variable $PRECISION as xs:integer := 4;
要使用此变量,您需要在工作模块中导入此模块
import module namespace config = "http://your-namespace" at "config.xqy";
并参考此变量:
$co
我试图使用XQuery函数fn:deep equal来比较XML文档的各个部分,但我得到了意想不到的行为。当比较XPath值和字符串文字时,函数返回false
例如,下面的代码
let $doc :=
<root>
<child><message>Hello</message></child>
</root>
let $message := <message>Hello</message&
我在XMLSPY中有以下代码片段,可以正常运行:
xquery version "1.0";
<query2>
{
for $r in /reviews/review
return $r/reviewer
}
</query2>
xquery版本“1.0”;
{
在/reviews/review中花费$r
返回$r/审阅者
}
如何在xpath中包含xml文件名,例如abc.xml/reviews/review???我可以自己解决这个问题:
<query2>
我写这段代码是为了根据专辑的年份列出专辑,并给出id和与每个标题相关的属性,但我得到的id是空的
<Production_by_years>
{
for $i in distinct-values(//Album/Year/text())
return element {"Year"}
{
element {"year"}{$i},
for $o in //Album/Year[text() eq $i]
ret
标签: Xquery
osboracle-service-bus
我使用的是Oracle Service Bus 11g版本1(11.1.1.3),它的XPath实现存在问题
XQuery资源包含一个简单的XPath轴位置路径:
preceding::SomeElement
甲骨文表示,它应该能够:
Oracle Service Bus XQuery引擎完全支持万维网(W3C)XQuery规范中描述的所有语言功能,只有一个例外:模块。有关XQuery 1.0和XPath 2.0函数和运算符>(W3C工作草案2004年7月23日)的更多信息,请参阅以下URL:
我的xquery将搜索40000多个文件,并检查是否存在特定请求
示例:
声明选项xhive:忽略索引“资源类型索引”;
{
对于文档中的$doc('/repository/content')[以(xhive:metadata(,'docato uri'),'/cards')和xhive:metadata(,'docato type')='XML\u RESOURCE\u type'和(exists(xhive:metadata(,'change-request'))开头]
返回
对于xhive
这是在我们将MarkLogic从7升级到8之后开始的。
我们有各种各样的rest端点工作得很好
然后在升级之后,我们开始间歇性地在各种GET请求中获取此信息:
<error-response xmlns='http://marklogic.com/xdmp/error'>
<status-code>405</status-code>
<status>Method Not Allowed</status>
<messag
我有几个在多个文件中使用的模块名称空间xquery文件。我希望将名称空间放在一个公共xquery文件中,并将该文件导入到我想要使用的任何地方
比如说,
我有process lib.xqy,util lib.xqy和query lib.xqy。
我曾经在多个文件中导入这些文件,如下所示
import module namespace util = "util" at "util-lib.xqy";
import module namespace process = "process" at "pr
我有一个运行xquery的框架,它包括一个XML配置文件,该文件将我可以在查询中使用的参数定义为变量,如下所示:
<text name="myVar" label="My Var"/>
(上述方法显然不起作用)
怎么可能呢?嗯,变量名(如$myVar)只能静态定义,因此这是不可能的,除非您从配置文件中找到的内容以编程方式生成查询的源代码
我想我在这里要做的是将参数作为映射传递:
declare variable $params as map(xs:string, item()*);
我们有一个URI列表,需要按照传递的顺序读取它
示例1
doc(("/doc1", "/doc2", "/doc3"))
上面的函数应该先返回“/doc1”的内容,然后返回“/doc2”,然后返回“/doc3”,但没有返回
下面的查询也发生了同样的情况
示例2
cts:search(doc(), cts:document-query((("/doc1"),("/doc2"),("/do
上一页 1 2 ...
4 5 6 7 8 9 10 ...
下一页 最后一页 共 30 页