1
<!-- Mapping from Excel to XBRL -->
<xbrl xmlns="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ifrs="http://xbrl.ifrs.org/taxonomy/2013-03-28/ifrs">
<link:schemaRef xlink:type="simple" xlink:href="IFRS\ifrs-cor_2013-03-28.xsd"/>
<!-- Contexts -->
<context id="D-2063">
    <entity>
        <identifier scheme="http://www.cro.gov.np">CRO</identifier>
    </entity>
    <period>
        <startDate>2063-04-01</startDate>
        <endDate>2064-03-31</endDate>
    </period>
</context>
<context id="I-2063">
    <entity>
        <identifier scheme="http://www.cro.gov.np">CRO</identifier>
    </entity>
    <period>
        <instant>2064-03-31</instant>
    </period>
</context>
<!-- Units -->
<unit id="U-Monetary">
    <measure>iso4217:NPR</measure>
 </unit>  
<!-- Fact values -->  
<ifrs:Assets contextRef="I-2063" unitRef="U-Monetary" decimals="0">7954664475</ifrs:Assets>
</xbrl>  

上記は、XML に基づく XBRL ファイルの例です。ifrs:AssetsのFactValueからcontextRefの属性値を選択したい。ご覧のとおり、名前空間が定義されているため、単純な xpath を使用した通常の xquery は機能しません。だから、私は使っていた

  xquery version "3.0";
  let $x:=doc("/db/Siddhartha/2061.xml")
  return $x/*[local-name()="xbrl"]/*[local-name()="Assets"][@contextRef]

しかし、I-2063 の期待値は出ませんでした。上記のファイルから属性 contextRef の値を取得するにはどうすればよいですか?

4

1 に答える 1

2

属性の値を返したい場合は、 を使用します$x/*[local-name()="xbrl"]/*[local-name()="Assets"]/@contextRef/string()

もちろん、XQuery では名前空間を扱うこともできるので、local-name()「ハック」は必要ありません。

xquery version "3.0";
declare default element namespace "http://www.xbrl.org/2003/instance";
declare namespace ifrs = "http://xbrl.ifrs.org/taxonomy/2013-03-28/ifrs";
let $x:=doc("/db/Siddhartha/2061.xml")
return $x/xbrl/ifrs:Assets/@contextRef/string()
于 2013-07-30T15:19:49.987 に答える