繁体   English   中英

使用BaseX GUI的问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM