第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用簡(jiǎn)單XML構(gòu)建XBRL,如何實(shí)現(xiàn)命名空間

使用簡(jiǎn)單XML構(gòu)建XBRL,如何實(shí)現(xiàn)命名空間

PHP
慕勒3428872 2022-09-12 12:56:40
我正在使用簡(jiǎn)單XML來構(gòu)造要用作XBRL的XML。問題:如何使用 SimpleXML 作為基礎(chǔ),以正確的方式在子元素上實(shí)現(xiàn)命名空間?觀察:缺少命名空間(因此沒有 [xbrli:xbrl], [se-cd-base:公司名稱]。缺少編碼字符串。我的代碼:<?php$test_array = [  'TheCompany' => 'CompanyName'];$xml = new SimpleXMLElement('<xbrli/>');array_walk_recursive($test_array, array ($xml, 'addChild'));print $xml->asXML();結(jié)果<?xml version="1.0"?><xbrli>  <CompanyName>    TheCompany  </CompanyName></xbrli>通緝結(jié)果 (X巴西雷亞爾)<?xml version="1.0" encoding="UTF-8"?>  <xbrli:xbrl xmlns:link = "http://www.xbrl.org/2003/linkbase">  <link:schemaRef    xlink:type="simple"    xlink:href="http://xbrl.taxonomier.se/se/fr/gaap/k2/risbs/2017-09-30/se-k2-risbs-2017-09-30.xsd"/    >  <se-cd-base:CompanyName    contextRef="period0">    TheCompany  </se-cd-base:CompanyName></xbrli:xbrl>
查看完整描述

1 回答

?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊

在 XML 文檔中使用命名空間時(shí),需要考慮三件事:

  • 命名空間 URI。這是工具將識(shí)別為同一命名空間的全局唯一標(biāo)識(shí)符(URI不必指向任何地方,它只是一種組織誰(shuí)“擁有”標(biāo)識(shí)符的方式)。

  • 本地前綴。這是一個(gè)任意字符串,特定文檔,甚至是文檔的一部分,與特定的命名空間URI相關(guān)聯(lián),基本上只是為了保持更緊湊。這是 標(biāo)記(如 ) 中的 前面部分。對(duì)于沒有前綴的元素,文檔的每個(gè)部分都有一個(gè)默認(rèn)命名空間。:<xbrli:xbrl>

  • 該命名空間中的元素或?qū)傩悦Q。這是 在 標(biāo)記(如 ) 之后的部分。:<xbrli:xbrl>

我提到所有這些是為了理解為什么你提供的示例XML是無效的,因?yàn)樗雌饋硐衲阆胧褂盟膫€(gè)命名空間:

  1. 已為其指定本地前綴的命名空間http://www.xbrl.org/2003/linkbaselink

  2. 您為其指定了本地前綴的未知命名空間;我稱之為xbrlihttp://example.org/xbrli

  3. 您為其指定了本地前綴的未知命名空間;我稱之為se-cd-basehttp://example.org/se-cd-base

  4. 您為其指定了本地前綴的未知命名空間;我會(huì)稱之為(除非這是一個(gè)錯(cuò)別字,應(yīng)該是另一個(gè)參考?xlinkhttp://example.org/xlinkhttp://www.xbrl.org/2003/linkbase

現(xiàn)在,讓我們嘗試使用簡(jiǎn)單 XML 構(gòu)造 XML 的有效版本...

首先,我們需要?jiǎng)?chuàng)建根元素,它位于命名空間中;SimpleXML沒有辦法創(chuàng)建沒有任何節(jié)點(diǎn)的文檔,因此我們必須手動(dòng)編寫第一個(gè)節(jié)點(diǎn)并解析它:http://example.org/xbrli

// Using xbrli as prefix for http://example.org/xbrli

$xml = new SimpleXMLElement('<xbrli xmlns="http://example.org/xbrli"/>');

// Or using http://example.org/xbrli as the default namespace for the document

$xml = new SimpleXMLElement('<xbrli xmlns="http://example.org/xbrli"/>');

接下來,我們需要命名空間中的子元素。為此,我們將命名空間作為 addChild 的第三個(gè)參數(shù)傳遞,如果需要,請(qǐng)?jiān)谠孛Q中包含前綴:schemaRefhttp://www.xbrl.org/2003/linkbase


// Using link as the prefix for http://www.xbrl.org/2003/linkbase

$schemaRef = $xml->addChild('link:schemaRef', null, 'http://www.xbrl.org/2003/linkbase');

// Or making http://www.xbrl.org/2003/linkbase the default namespace for this section

$schemaRef = $xml->addChild('schemaRef', null, 'http://www.xbrl.org/2003/linkbase');

接下來,我們要在命名空間中添加屬性。添加屬性的參數(shù)與上述參數(shù)類似,但前綴是必需的:http://example.org/xlink


$schemaRef->addAttribute('xlink:type', 'simple', 'http://example.org/xlink');

$schemaRef->addAttribute('xlink:href', 'http://xbrl.taxonomier.se/se/fr/gaap/k2/risbs/2017-09-30/se-k2-risbs-2017-09-30.xsd', 'http://example.org/xlink');

現(xiàn)在對(duì) 元素重復(fù);請(qǐng)注意,無前綴屬性在命名空間規(guī)范中有一個(gè)相當(dāng)奇怪的定義,但我們將按照您的示例保留它:CompanyName


$CompanyName = $xml->addChild('se-cd-base:CompanyName', 'The Company', 'http://example.org/se-cd-base');

// Again, we can declare a default namespace rather than a prefix:

$CompanyName = $xml->addChild('CompanyName', 'The Company', 'http://example.org/se-cd-base');

// Attribute with no namespace

$CompanyName->addAttribute('contextRef', 'period0');

現(xiàn)在把它們放在一起,檢查一下,我們得到這樣的東西(手動(dòng)添加空格):echo $xml->asXML();


<?xml version="1.0"?>

<xbrli xmlns="http://example.org/xbrli">

    <link:schemaRef

        xmlns:link="http://www.xbrl.org/2003/linkbase" 

        xmlns:xlink="http://example.org/xlink"

        xlink:type="simple"

        xlink:href="http://xbrl.taxonomier.se/se/fr/gaap/k2/risbs/2017-09-30/se-k2-risbs-2017-09-30.xsd"

    />

    <se-cd-base:CompanyName 

        xmlns:se-cd-base="http://example.org/se-cd-base" 

        contextRef="period0"

    >The Company

    </se-cd-base:CompanyName>

</xbrli>

或者使用默認(rèn)命名空間而不是前綴的等效文檔:


<?xml version="1.0"?>

<xbrli xmlns="http://example.org/xbrli">

    <schemaRef 

        xmlns="http://www.xbrl.org/2003/linkbase"

        xmlns:xlink="http://example.org/xlink"

        xlink:type="simple"

        xlink:href="http://xbrl.taxonomier.se/se/fr/gaap/k2/risbs/2017-09-30/se-k2-risbs-2017-09-30.xsd"

    />

    <CompanyName

        xmlns="http://example.org/se-cd-base"

        contextRef="period0"

    >

    The Company

    </CompanyName>

</xbrli>


查看完整回答
反對(duì) 回復(fù) 2022-09-12
  • 1 回答
  • 0 關(guān)注
  • 172 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)