xml
XBRL(可擴充商業報告語言,eXtensible Business Reporting Language),是 XML(可延伸標記語言 (XML),eXtensible Markup Language)技術於財務報告資訊交換的一種應用。
XBRL 是由 XBRL 國際指導委員會倡導並推動其發展。目前世界各國共有 250 多個機構參加了該組織。XBRL 國際指導委員會由美國註冊會計師協會,德勤、安永和畢馬威國際會計公司,微軟、IBM、J.D.Edwards、SAP 以及其它技術與金融公司資助。自從 1998 年 XBRL 誕生時起,XBRL 就獲得了迅速的發展,尤其作為財務資訊處理的最新標準和技術,XBRL 增加了公司財務報告披露的透明度,同時極大的提高了財務報告資訊處理的效率和能力。以金融行業為例,目前國際上許多證券交易所、會計師事務所和金融服務與資訊供應商等機構已採用或準備採用該項標準和技術,如東京證券交易所的 TD net 系統採用了 XBRL 技術報送財務資料,澳洲證券交易所正在研究並準備使用 XBRL,德國德意志銀行將 XBRL 用於處理貸款資訊並使其信用分析過程更加流暢。在中國 XBRL 也開始得到應用。上海證券證券交易所和深圳證券證券交易所都開始了 XBRL 技術的研究和實驗。目前已有幾十家上市公司參加了使用 XBRL 技術提交公司年報摘要的試驗工作。當然以國內目前的現狀來說,XBRL 的應用還處於起步階段,還有很多的問題。以下就 XBRL 語言,進行介紹。
XBRL 基礎
XBRL 源於 XML,所以要理解 XBRL 技術,首先需要瞭解 XML。對於 XML,這裡不再做更多的介紹,有需要的讀者請自行參考相關的資料。最新的標準是 XBRL 國際指導委員會前不久通過的 XBRL Specification 2.1。XBRL 資訊模型主要是由兩部分組成的,XBRL 執行個體(XBRL instance)及 XBRL 分類集(XBRL Taxonomy)。XBRL 執行個體包含了報表中的具體事實(concrete facts),而分類集則是對具體事實的定義,包括它的文法,它的形式以及屬性。
在 XBRL 技術中使用了 XML Schema 和 XLink。
XBRL執行個體
XBRL 執行個體中封裝了具體的商業事實。其中最基本的單位是事實(facts)。例如,最近一個季度的銷售額("sales in the most recent quarter")就是一個事實。沒有複雜資訊結構的簡單事實叫條目(item)。為了表達較複雜的資訊單元,可以把一組相關聯的事實放到一起,用相對複雜的結構比如元組(tuple)等來表示。元組中既可以包含條目,也可以包含其他的元組。條目對應於商業概念,而這些商業概念的具體業務含義和定義描述則是由分類集(taxonomy set)完成的。
具體的執行個體可以參考微軟公司的部分XBRL財務報表,其內容可以從微軟公司的首頁上下載。
XBRL 分類集
對於報表中的具體事實,是由執行個體來表現的。但是這些具體事實應該遵守怎樣的語言規範,他們的形式以及屬性如何,則是由分類集來定義的。
不同的國家,不同的行業都使用不同的帳戶規則。作為一個國際通行的標準,XBRL 要適應各種不同的情況,其中的關鍵就是建立符合各國帳戶規則的具體的分類集。這一工作由各國的 XBRL 組織負責建立符合本國帳戶規則的 XBRL 分類集。分類集首先要定義財務報表中將要使用的各項財務報表元素,同時還要附加上相關的其他資訊,比如各個元素之間的關聯性,以及各個元素在報表中的名稱,位置,還要反映出製作財務報表所依據的帳戶規則。
XBRL 分類集通過 XML 模式(schema)定義詞彙條目(term of vocabulary)的文法來描述詞彙(vocabulary);用 Xlink 描述中繼資料,這些中繼資料可以用來刻畫條目(item)以及條目之間的關係。每個XBRL執行個體通過引用一個模式(schema)來關聯到對應的分類(taxonomy)上去;而每一個模式又可以引用其他的模式。為驗證一個XBRL執行個體的文法需要的所有模式(schema)構成的集合(collection)組成該執行個體的可發現分類集(Discoverable Taxonomy Set(DTS))的一部分。通過引用Xlink連結集(linkbases),XBRL執行個體還可以表達商業概念更多的資訊。XBRL採用Xlink作為定義商業概念與相應中繼資料之間關係的機制。除XBRL執行個體之外,DTS中的模式(schema)還可以包含對連結集(linkbases)的引用。所有這些schemas和linkbases合起來構成所謂的DTS,這樣我們便能夠描述整個報表中的商業概念。
XBRL分類集由多個檔案組成。主要檔案包括一個Taxonomy Schema(.xsd檔案),和計算、定義、標籤、展示、引用這五個linkbase檔案。對於XBRL執行個體中的所有元組、條目和事實都要在分類集中定義"名稱(name)"和"資料類型(type)"。Taxonomy中主要使用的資料類型有表示日期的xbrli:dateTimeItemType、表示字串的xbrli:stringItemType、表示金額的xbrli:moneytaryItemType,還有decimalItemType、shareItemType、uriItemType等等。原則上,所有的元素都應該包括在xbrli:item或者xbrli:tuple這兩個可替代組(substitutionGroup)中,換句話說,這兩個組中所沒有的元素原則上都不能寫進執行個體文檔(Instance Documents)。
如果是從頭為某行業或組織機構定義一個特定的分類集的話,應該針對該行業或機構的商業概念定義包含了條目和元組(items and tuples)的模式(schema)。然而更多的情形是所需的業界分類已經存在,只需要對它稍作改動以適應使用者的需要,比如再添加一些商業概念,然後把它們和標準概念聯絡起來等等。這時,可以先把業界分類集模式(industry taxonomy schema)引進(import)來,然後添加一些新的模式組件(schema components)以反映使用者的商業概念。
在Taxonomy Schema(.xsd檔案)中還定義了連結元素,即link:linkbaseRef,其屬性分別定義了各linkbase的作用和串連的檔案。除了type屬性外,還包括了arcrole屬性、actuate屬性、role屬性、href屬性等等。
標籤連結(label links)和引用連結(reference links)把商業概念(business concepts)和中繼資料(metadata)聯絡起來。舉例來說:我們知道一個文本串(text strings)可以用來標記(label)或文檔化(document)一個報表中的概念,而標籤連結(label links)則可以把這個文本串和相應的概念關係起來,比如,可以用標籤連結把文本串"最近一季度總收入"( Revenues in most recent quarter")和分類中定義的"revenueMRQ"條目聯絡起來。單個兒的商業概念可以用多個標籤多種語言來標記。具體XBRL執行個體的建立者(author)來決定該執行個體各個標籤的取捨。
圖1中闡明了定義一個關聯連結(label link)關聯一個商業概念和標籤所要做的三件事:用label element標記商業概念,用loc element 為該概念定義一個定位器(locator),用一個labelArc element 定義一個'弧'(arc)把此商業概念聯到指定的label上。引用連結也是通過類似的方式把引用連結到商業領域(domain)的權威文獻上去,所使用的機制類似於標籤連結:定義一個引用連結和一個定位商業概念及相關文檔引用的定位器,最後再建一個referenceArc element 將前面定義的定位器和引用關聯起來。
標籤型連結和引用型連結是用來關聯商業概念和中繼資料的。其他三種類型的連結恰恰與之相反,是用來建立不同商業概念之間的關聯的。例如:計算連結就是用來定義相關商業概念的計算關係的。舉個例子:"稅後利潤"("profitAfterTax")的概念和以由"稅前利潤"("profitBeforeTax")的概念減去"所得稅"("taxPaid")概念得到。
profitAfterTax = weight(1) * profitBeforeTax + weight(-1)*taxPaid
圖2是樣本怎樣將這三個商業概念聯絡起來。
定義連結描述了幾種商業概念間的關係,如泛型和具化關係(generalization-specialization relationships),如:"postalCode"是"zipCode"的泛化等。展示連結(presentation links),正如名字的含義一樣,從展示的角度(presentation perspective)定義不同商業概念之間的關係,例如:在展示報表中,父子關係應該顯示為"銷售"sales和"印表機銷售"printerSales。
XBRL的處理器
XBRL處理器(XBRL processors)不僅要按分類模式(taxonomy schemas)來校正執行個體文檔(instance documents)的文法,也要按分類連結集(taxonomy linkbases)來驗證執行個體的語義。當對執行個體文檔進行處理時,處理器要能根據執行個體的分類提取出應用所需的中繼資料。這個過程和XML模式(Schema)驗證(validate)以產生PSVI類似。XBRL驗證應當拿分類(taxonomy)來驗證執行個體並將驗證過程所得的中繼資料(metadata)送給應用(application),比如處理器應能在報表執行個體中檢測到一個條目(item)的中繼資料label。除了驗證之外,XBRL工具(XBRL tools)還包括:分類編輯器(taxonomy editors)、 XBRL執行個體產生(XBRL instance creation),XBRL儲備器(XBRL repositories)及查詢報告引擎(query and reporting engines)等等。
XBRL的應用
XBRL為我們提供了商業報表架構。商業報表涵蓋範圍很廣,從事業單位的正常化(regulatory compliance)到企業的智能化(business intelligence)都有應用。如圖4所示,在報告鏈中的不同環節,XBRL都能創造價值。報告鏈上商業資訊流程的標準化為許多應用提供了機會。封裝好(canned)的應用可以用來編寫(composition)、分析(analysis)、展示(presentation)資訊。
總結
當前國際上有多種基於XML技術的報表語言,而XBRL越來越成為商業報表語言的主流。通過XML技術,XBRL提供了真正可擴充的架構(framework),企業可以用之報告重要的商業資訊。在商業報錶鏈中,從資訊的準備(preparation)、 分析(analysis), 直到應用(consumption),XBRL為每個環節都提供了優勢。經過兩輪的修訂――公眾審核(public review)和實施者反饋資訊(implementer feedback)後,現在XBRL已經日益成熟並開始得到了廣泛的應用。