Xquery中具有NameSpace导入的问题

问题描述 投票:0回答:1

我正在尝试导入我的名称空间,但是由于某些原因,它不会让步。香港专业教育学院尝试过这一点,以及添加路径

import schema namespace r = "http://www.w3.org/2001/XMLSchema" at "Assignment-Xquery3.xsd";

我一直收到此错误:

Error in schema http://www.w3.org/2001/XMLSchema: No valid schema was found

我也很累“实例”,但是没有运气。我运行的是Saxon EE。我试图添加我的文件路径。我不确定是怎么了,这是老师给我们提供的模板。

我的其余代码,如果需要:

import schema namespace r = "http://www.w3.org/2001/XMLSchema" at "Assignment-Xquery3.xsd";
<provider>{
    for $r in
    distinc-values(doc("instance.xml")/r:patient/r:treatment/r:provider)
    return
        <info>
        <patient>{string($r)}</patient>
            {for $rr in doc("instance.xml"/r:patient
            where $r = $rr/r:treatment}
            return
                <treatment>
                    <id>{$rr/r:id/text()}</id>
                   <diagnosis>{$rr/r:diagnosis/text()}</diagnosis>
                   <drug>{$rr/r:drug/text()}</drug>
                </treatment>

        </info>
}</provider>

This is the template my teacher provided us

xml namespaces xquery oxygenxml
1个回答
0
投票

不清楚您要实现的目标,但是很清楚您在做什么错。

写作时

import schema namespace r = "http://www.w3.org/2001/XMLSchema" at "Assignment-Xquery3.xsd";

你是

((a)试图在“ Assignment-Xquery3.xsd”位置加载模式。可能没关系;我敢说那个位置可能有一个有效的架构。

(b)断言该位置的模式的目标名称空间为“ http://www.w3.org/2001/XMLSchema”。这似乎极不可能,因为用户编写的应用程序不太可能希望访问架构文档的架构。

(c)将前缀“ r”绑定到该名称空间。再次,这似乎是难以置信的,(i)因为人们通常使用该名称空间的前缀是“ xs”或“ xsd”,并且(ii)因为您继续使用名称r:treatment,并且在此肯定没有名称本地名称为“ treatment”的名称空间。

我强烈怀疑,尽管我不能确定,但​​是您真的根本不想导入模式;您只想将前缀“ r”绑定到某个名称空间(也许是http://www.example.org/review,但我们不能确定)。如果是这样,那么您只需要

declare namespace r = "http://www.example.org/review";
© www.soinside.com 2019 - 2024. All rights reserved.