解决XBRL链接库中的禁止和覆盖问题

时间:2012-05-01 15:45:44

标签: xml xsd xbrl

我为XBRL开发了一个解析器。我对我最近解析的分类法中的禁止和覆盖规则有疑问:

我在实现解析器时提到了XBRL 2.1规范。现在,我遗漏了一些标签,不知道分类法或我的代码是否无效。

以下是在两个文件中分隔的一些标签弧的示例代码:

File 1: <labelArc xlink:from="de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
            xlink:to="extlabel_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
            priority="1"
            use="prohibited"
            xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label"
            xlink:type="arc"/>
<labelArc xlink:from="de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
                xlink:to="label_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
                xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label"
                xlink:type="arc"/>
<label xlink:label="label_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
             id="label_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
             xlink:role="http://www.xbrl.org/2003/role/label"
             xlink:type="resource"
             xml:lang="de">Übrige / nicht zuordenbare Miete und Pacht für unbewegliche Wirtschaftsgüter</label>## Heading ##
File 2: <labelArc xlink:from="de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
                xlink:to="label_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
                priority="0"
                use="optional"
                xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label"
                xlink:type="arc"/>
<label xlink:label="label_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
             id="label_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
             xlink:role="http://www.xbrl.org/2003/role/label"
             xlink:type="resource"
             xml:lang="de">Übrige Miete und Pacht für unbewegliche Wirtschaftsgüter</label>

我的解析器说概念de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other没有标签,因为:

  • 有3个弧对应于该标签
  • 两个弧引入优先级为0的实际标签,并具有属性use="optional" set
  • 第一个弧是禁止弧,因为它隐藏属性use="prohibited" set
  • 禁止弧的优先级为1,因此所有优先级低于1的弧都会从网络中排除,这就是其他两个标签被踢出的原因

这是我的问题:第一个acr的XBRL定位器指向最后一个标签。这意味着href属性为file#label_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other。我开发了如下解析器:如果ID或from / to值相同,则覆盖和禁止的规则适用。因此,我不知道定位器是否将两个标签ID更改为相等的值,或者如果这两个文件位于不同的文件中,我必须将它们区分开来......?

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

(文件1:labelArc 1)和(文件2:labelArc 1)确实是Equivalent relationships,因为它们指向的XML片段是相同的(不是因为“xlink:to”属性的值是等于)。

(文件1:labelArc 2)不等同于上面提到的2 labelArcs,因为它指向不同的XML片段(to-attribute的值不是x-equal,因此labelArcs不是{{ 3}}这意味着它们不等同)。因此,不禁止以下标签,并应显示:

<label xlink:label="label_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
         id="label_de-gaap-ci_is.netIncome.regular.operatingTC.otherCost.leaseFix.other"
         xlink:role="http://www.xbrl.org/2003/role/label"
         xlink:type="resource"
         xml:lang="de">Übrige / nicht zuordenbare Miete und Pacht für unbewegliche Wirtschaftsgüter</label>

x-equal意味着不是比较字符串值,而是他们指向的XML片段的标识。

我希望这个答案不会太混乱?