Xquery 中的 NameSpace 导入问题

Issues with NameSpace import in Xquery

我正在尝试导入我的命名空间,但由于某种原因它不会让步。 我试过这个以及添加路径

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

我也厌倦了“-Instance”,但没有运气。我是 运行 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>

不太清楚你想达到什么目的,但很清楚你做错了什么。

写的时候

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";