[英]Problems using BaseX GUI
我正在尝试使用XPath 导航 instance
。 我在下面提供了原始 instance
的摘录:
<?xml version="1.0" encoding="US-ASCII"?>
<xbrli:xbrl xmlns:ann="http://www.anninc.com/20140201"
xmlns:dei="http://xbrl.sec.gov/dei/2013-01-31"
xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
xmlns:link="http://www.xbrl.org/2003/linkbase"
xmlns:us-gaap="http://fasb.org/us-gaap/2013-01-31"
xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
xmlns:xbrli="http://www.xbrl.org/2003/instance"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<link:schemaRef xlink:href="ann-20140201.xsd"
xlink:type="simple" />
<xbrli:context id="FD2011Q4YTD">
<xbrli:entity>
<xbrli:identifier scheme="http://www.sec.gov/CIK"
>0000874214</xbrli:identifier>
</xbrli:entity>
<xbrli:period>
<xbrli:startDate>2011-01-30</xbrli:startDate>
<xbrli:endDate>2012-01-28</xbrli:endDate>
</xbrli:period>
</xbrli:context>
<xbrli:context id="FD2011Q4YTD_ann_EarningsPerShareReconciliationAxis_ann_EarningsPerShareBasic.Member">
<xbrli:entity>
我知道root element
内部有一个namespace
。 我正在使用BaseX GUI 。 根据以前的帮助,我的root element
是{http://xbrl.org/2003/instance}xbrl
!
但是,当我在这样的XPath表达式上尝试时:
xquery doc("ann-20140201.xml")//{http://xbrl.org/2003/instance}xbrl
我点击执行查询,我得到:
Error:
Stopped at C:/Users/Μαρίνος/Desktop/ann-20140201.xml, 1/6:
[XPST0003] Processing instruction has illegal name: 'xml'.
我究竟做错了什么? 还建议我使用:
declare namespace xbrli=http://xbrl.org/2003/instance;
我从GUI输入此命令,然后在此处input
command
(是否在此处输入声明命令 ?):
但是我仍然收到与上面相同的error
消息。 我必须使用illegal name: xml
什么?
EDIT_1
wst说将Q
与Clark表示法一起使用:
xquery doc("ann-20140201.xml")//Q{http://xbrl.org/2003/instance}xbrl
->如果我点击运行,它将执行而没有错误。 但是,不是像我通过以下命令获取它那样,而是在BaseX的“ Result
窗格中获取root element
:
XQUERY doc("ann-20140201.xml")//*
我什么也没得到。 为什么? 另外我如何声明一个名称空间?
在编辑器窗口中输入以下内容,然后按“运行”:
declare namespace xbrli="http://www.xbrl.org/2003/instance";
http:send-request(
<http:request method='get'/>,
'http://www.sec.gov/Archives/edgar/data/874214/000087421414000008/ann-20140201.xml'
)[2]/xbrli:xbrl
数据库能够通过HTTP检索原始文档并从中查询根元素,而不会出现问题。
在本地,以下操作也很好(将文档导入数据库后):
declare namespace xbrli="http://www.xbrl.org/2003/instance";
doc("ann-20140201")/xbrli:xbrl
我注意到您在问题中的名称空间声明没有问号-这些很重要。
我也毫不费力地从基于QName的查询中得到结果:
doc("ann-20140201")/Q{http://www.xbrl.org/2003/instance}xbrl
我认为为了使用Clark表示法进行查询,您需要在Q
前面加上前缀:
xquery doc("ann-20140201.xml")//Q{http://xbrl.org/2003/instance}xbrl
处理器不应将XML声明( <?xml...?>
)视为处理指令。
确保声明前没有空格,包括换行符。 它必须是文件中的第一件事。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.