声明命名空间的 XQuery 语法:[XPST0081] 没有为 'text:p' 声明命名空间
XQuery syntax to declare a namespace: [XPST0081] No namespace declared for 'text:p'
为 Libre Office 声明命名空间的语法是什么,需要声明什么具体的命名空间?
thufir@dur:~/fods/flwor$
thufir@dur:~/fods/flwor$ basex text.xq
Stopped at /home/thufir/fods/flwor/text.xq, 3/14:
[XPST0081] No namespace declared for 'text:p'.
thufir@dur:~/fods/flwor$
thufir@dur:~/fods/flwor$ cat text.xq
for $foo in db:open("foo")
return $foo//text:p
thufir@dur:~/fods/flwor$
当然,returning $foo
本身可以很好地 return 整个文档。
我是否还需要将名称空间存储在本地文件中?或者,只是 一些 像 :
declare namespace type4="http:///de/tudarmstadt/ukp/dkpro/core/api/segmentation/type.ecore";
您在查询中使用的每个命名空间前缀也必须在查询中声明。在您的情况下,您可以添加一行
declare namespace text="urn:oasis:names:tc:opendocument:xmlns:text:1.0";
在顶部修复您的查询。
由于名称空间前缀(text
在您的情况下)只是对关联名称空间 URI 的引用,因此它不必与 XML 文档中的前缀匹配。以下查询是 100% 等效的:
declare namespace whatever="urn:oasis:names:tc:opendocument:xmlns:text:1.0";
for $foo in db:open("foo")
return $foo//whatever:p
为 Libre Office 声明命名空间的语法是什么,需要声明什么具体的命名空间?
thufir@dur:~/fods/flwor$
thufir@dur:~/fods/flwor$ basex text.xq
Stopped at /home/thufir/fods/flwor/text.xq, 3/14:
[XPST0081] No namespace declared for 'text:p'.
thufir@dur:~/fods/flwor$
thufir@dur:~/fods/flwor$ cat text.xq
for $foo in db:open("foo")
return $foo//text:p
thufir@dur:~/fods/flwor$
当然,returning $foo
本身可以很好地 return 整个文档。
我是否还需要将名称空间存储在本地文件中?或者,只是
declare namespace type4="http:///de/tudarmstadt/ukp/dkpro/core/api/segmentation/type.ecore";
您在查询中使用的每个命名空间前缀也必须在查询中声明。在您的情况下,您可以添加一行
declare namespace text="urn:oasis:names:tc:opendocument:xmlns:text:1.0";
在顶部修复您的查询。
由于名称空间前缀(text
在您的情况下)只是对关联名称空间 URI 的引用,因此它不必与 XML 文档中的前缀匹配。以下查询是 100% 等效的:
declare namespace whatever="urn:oasis:names:tc:opendocument:xmlns:text:1.0";
for $foo in db:open("foo")
return $foo//whatever:p