XSD查询一堆不同的文件
XSD query a bunch of different files
我得到了三个 XML 文件。第一个称为 plans.xml,包括 "plan" 个元素的列表,这些元素引用各个文件。
plans.xml:
<plans>
<plan XSD-version="2.0" release="R1801.1" plan-file="./plan-2.0.xml"/>
<plan XSD-version="3.0" release="R1801.2" plan-file="./plan-3.0.xml"/>
</plans>
第二个文件,名为"plan-2.0.xml"(和第三个文件类似,只是有其他版本号和名称"plan-3.0.xml"):
计划-2-0.xml:
<Services>
<service name="x" version="2.0"/>
<service name="y" version="2.0"/>
<service name="z" version="2.0"/>
</Services>
我想要实现的是一个 xquery (3.0),它接受一个输入参数 (I1801.2) 并生成一个带有 Header:
的简单 html 列表
<h1>I1801.2</h1>
<ul>
<li>x with version 2.0
<li>y with version 2.0
<li>z with version 2.0
</ul>
我在具体概念上苦苦挣扎 - 我使用 xquery 已经十多年了。
我的脚本开头如下:
xquery version "3.0";
let $j := doc("plans.xml")
但是,我被困在这里了。有什么帮助吗?
更准确地说,如何循环遍历不同的文件,将元素和属性收集到变量中,然后输出?
我正在使用 Oxygen XML 作为编辑器。
不太明白 XSD 是从哪里来的?
尝试:
for $p in $j//plan
return (
<h1>{string($p/@release)}</h1>,
<ul>{for $s in doc($p/@plan-file//service
return <li>{string($s/@name} with version {string($s/@version)}</li>
</ul>)
我得到了三个 XML 文件。第一个称为 plans.xml,包括 "plan" 个元素的列表,这些元素引用各个文件。
plans.xml:
<plans>
<plan XSD-version="2.0" release="R1801.1" plan-file="./plan-2.0.xml"/>
<plan XSD-version="3.0" release="R1801.2" plan-file="./plan-3.0.xml"/>
</plans>
第二个文件,名为"plan-2.0.xml"(和第三个文件类似,只是有其他版本号和名称"plan-3.0.xml"):
计划-2-0.xml:
<Services>
<service name="x" version="2.0"/>
<service name="y" version="2.0"/>
<service name="z" version="2.0"/>
</Services>
我想要实现的是一个 xquery (3.0),它接受一个输入参数 (I1801.2) 并生成一个带有 Header:
的简单 html 列表<h1>I1801.2</h1>
<ul>
<li>x with version 2.0
<li>y with version 2.0
<li>z with version 2.0
</ul>
我在具体概念上苦苦挣扎 - 我使用 xquery 已经十多年了。
我的脚本开头如下:
xquery version "3.0";
let $j := doc("plans.xml")
但是,我被困在这里了。有什么帮助吗?
更准确地说,如何循环遍历不同的文件,将元素和属性收集到变量中,然后输出? 我正在使用 Oxygen XML 作为编辑器。
不太明白 XSD 是从哪里来的?
尝试:
for $p in $j//plan
return (
<h1>{string($p/@release)}</h1>,
<ul>{for $s in doc($p/@plan-file//service
return <li>{string($s/@name} with version {string($s/@version)}</li>
</ul>)