DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> Thinking XML: 使用 XBRL 分析財務報告
Thinking XML: 使用 XBRL 分析財務報告
編輯:XML詳解     

關注華爾街新聞和全球市場的人都會遇到這樣的情景:公司發布利潤或虧損報告,分析師和交易人員以此為依據買進或賣出該公司的股票。對任何公司來說,最關鍵的時期就是發布這些財務報告之前的准備時間和發布之後的一段時間。公司管理人員發出新聞稿,與分析師和媒體展開電話會議,並且常常公布有關的活動。然而,所有這些活動的關鍵是正式的報告,即遞交給政府相關部門的財政決算(對於美國來說,這些報告遞交給證券交易管理委員會)。這些報告擁有自己的技術語言和市場語義,因此必須謹慎設計以符合標准需求和約定。

  常用縮寫詞

  Html:超文本標記語言(Hypertext Markup Language)

  SGML:標准通用標記語言(Standard Generalized Markup Language)

  W3C:萬維網聯盟(World Wide Web Consortium)

  XML:可擴展標記語言(Extensible Markup Language)

  在正式的商業報告中,您可以找到有關商業活動和走勢的寶貴信息,並且財務服務行業得到了快速發展,可以利用 XML 以可擴展業務報告語言(Extensible Business Reporting Language,XBRL)的形式標准化用於交換這類財務信息的格式。XBRL 是用於表達商業報告和相關語義的開放的、免版稅的標准,當前的成熟版本為 2.1(2005 年 4 月發布),但是目前由 XBRL International, Inc. 管理,這是一個由 450 家大型公司、政府機構和非政府組織(NGO)組成的非營利性的國際聯合組織。該組織這樣表述 XBRL(摘自 XBRL 主頁):

  XBRL 是一種用於以電子方式交換商業和財務數據的語言,它改變了全球的商業報告方式。它為商業信息的准備、分析和交換提供了巨大的優勢。它為提供或使用財務數據的所有參與者節省了成本、提高了效率並改善了准確性和可靠性。XBRL 的原理非常簡單。它並沒有把財務信息看作一個簡單的文本塊(比如一個標准的網頁或打印好的文檔),而是為每個單獨的數據項提供一個識別標記。這種標記是可以供計算機讀取的。比如,公司淨利潤使用自己獨有的標記。

  無疑,XBRL 借助法律的力量獲得了牽引力。截至 2008 年 12 月,SEC 要求大型公司使用 XBRL 歸檔財政決算,特別是每年 10-K 以及每季度 10-Q 的財務報告。到 2009 年底,這一要求將延伸到財富 1500 強公司中的絕大多數公司,而到 2010 年底,它將涵蓋所有上市公司。

  我曾在本專欄的早期文章 “A glimpse into XML in the financial services industry”中談及 XBRL。從那時起,該規范就得到了人們的重視,主要體現在企業報告透明性及其與財務服務的關系。在本文中,我將仔細查看 XBRL 格式並向開發人員介紹它的關鍵結構。

  XBRL 簡介

  XBRL 的使用需要注意幾個方面。XBRL 文檔的基礎是一些使用 XLink 組織的各種類別的語義,或其他元數據語義。這些類別是 XBRL 形成語義透明性的機制,可以引用行業和全球財務報告標准,包括由 XII 本身維護的標准 — Global Ledger Framework。報告就是合並了這些語義、使用經過嚴格控制的上下文表達財務信息(用 XBRL 的說法就是業務事實)的一些實例文檔。比如,上下文用於明確地指稱某個業務事實所屬的公司或個人、相關的計量單位、日期和時間、任何相關的事實、對類別定義的引用,以及其他可以清晰地區分 XBRL 實例所報告的事實的元數據。

  我決定使用一個真實的報告,而不是一個虛構的示例。我將使用 IBM® 向 SEC 遞交的 2008 年第三季度財務 10-Q 報告的一部分。上傳到 EDGAR 系統的完整 SEC 報告是一個公開密匙基礎設施(PKI)簽名塊,包含一個 SGML 文檔,後者同時包含報告的 Html 和 XBRL 版本,如 圖 1 所示。


圖 1. SEC 報告的結構
Thinking XML: 使用 XBRL 分析財務報告

  在這個報告中,共有 7 個文本區段,其中包括一個 Html 區段和 6 個 XBRL 區段。每個區段有一個文件名,該文件名在 FILENAME 元素中指定。實際上,這是一個壓縮文件格式,與未進行壓縮的 UNIX™ TAR 或 ZIP 沒有什麼不同。表 1 展示了這些內嵌文檔的一個摘要。


表 1. IBM Q3 10-Q 報告的內嵌區段

文件名 內容 作用 a08-28338_18k.htm Html 10-Q 報告表單的文本 ibm-20081028.XML XBRL 實例 報告的主要業務事實 ibm-20081028.xsd 包含內嵌 XLink 的 W3C XML 模式 包含特定於 IBM 的結構的 XBRL 定義 ibm-20081028_cal.XML XLink 鏈接庫 與值計算有關的細節分類 ibm-20081028_def.XML XLink 鏈接庫 提供基本業務事實定義的分類鏈接 ibm-20081028_lab.XML XLink 鏈接庫 提供業務事實的 XLink 標簽的分類鏈接,支持帶外(out-of-band)鏈接 ibm-20081028_pre.XML XLink 鏈接庫 提供與呈現業務事實有關的額外提示的分類鏈接

  XML 概況

  清單 1 顯示了 ibm-20081028.xml 的部分摘要,ibm-20081028.XML 是其中一個內嵌 XBRL 文件,構成了主要的報告。


清單 1. IBM 10-Q 報告的主要業務事實 XBRL

<?XML version="1.0" encoding="UTF-8" standalone="no"?> 
<xbrli:xbrl 
 XMLns:xbrli="http://www.xbrl.org/2003/instance" 
 XMLns:dei="http://xbrl.us/dei/2008-03-31" 
 XMLns:link="http://www.xbrl.org/2003/linkbase" 
 XMLns:us-gaap="http://xbrl.us/us-gaap/2008-03-31" 
 XMLns:xlink="http://www.w3.org/1999/xlink" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xbrl.org/2006/xbrldi http://www.xbrl.org/2006/xbrldi-2006.xsd"> 
 <link:schemaRef xlink:href="ibm-20081028.xsd" xlink:type="simple"/> 
 <xbrli:context id="D-20073Q"> 
  <xbrli:entity> 
   <xbrli:identifier scheme="http://www.sec.gov/CIK">0000051143</xbrli:identifIEr> 
  </xbrli:entity> 
  <xbrli:period> 
   <xbrli:startDate>2007-07-01</xbrli:startDate> 
   <xbrli:endDate>2007-09-30</xbrli:endDate> 
  </xbrli:period> 
 </xbrli:context> 
 <xbrli:context id="D-20083Q"> 
  <xbrli:entity> 
   <xbrli:identifier scheme="http://www.sec.gov/CIK">0000051143</xbrli:identifIEr> 
  </xbrli:entity> 
  <xbrli:period> 
   <xbrli:startDate>2008-07-01</xbrli:startDate> 
   <xbrli:endDate>2008-09-30</xbrli:endDate> 
  </xbrli:period> 
 </xbrli:context> 
 <xbrli:unit id="Shares"> 
  <xbrli:measure>xbrli:shares</xbrli:measure> 
 </xbrli:unit> 
 <xbrli:unit id="USD-DecimalMinus6"> 
  <xbrli:measure>iso4217:USD</xbrli:measure> 
 </xbrli:unit> 
 <dei:EntityCommonStockSharesOutstanding contextRef="I-2008-09-30" decimals="0" 
 unitRef="Shares">1343457986</dei:EntityCommonStockSharesOutstanding> 
 <dei:EntityRegistrantName contextRef="D-20083Q">International Business Machines 
 Corporation</dei:EntityRegistrantName> 
 <dei:CurrentFiscalYearEndDate 
 contextRef="D-20083Q">--12-31</dei:CurrentFiscalYearEndDate> 
 <dei:DocumentType contextRef="D-20083Q">10-Q</dei:DocumentType> 
 <dei:DocumentReportType contextRef="D-20083Q">Transition 
 Report</dei:DocumentReportType> 
 <us-gaap:SalesRevenueServicesNet contextRef="D-20083Q" decimals="-6" 
    unitRef="USD-DecimalMinus6">14773000000</us-gaap:SalesRevenueServicesNet> 
 <us-gaap:SalesRevenueServicesNet contextRef="D-20073Q" decimals="-6" 
    unitRef="USD-DecimalMinus6">13657000000</us-gaap:SalesRevenueServicesNet> 
 <us-gaap:SalesRevenueGoodsNet contextRef="D-20083Q" decimals="-6" 
 unitRef="USD-DecimalMinus6">9892000000</us-gaap:SalesRevenueGoodsNet> 
 <us-gaap:SalesRevenueGoodsNet contextRef="D-20073Q" decimals="-6" 
 unitRef="USD-DecimalMinus6">9833000000</us-gaap:SalesRevenueGoodsNet> 
 <us-gaap:Revenues contextRef="D-20083Q" decimals="-6" id="f7" 
 unitRef="USD-DecimalMinus6">25302000000</us-gaap:Revenues> 
 <us-gaap:Revenues contextRef="D-20073Q" decimals="-6" 
 unitRef="USD-DecimalMinus6">24119000000</us-gaap:Revenues> 
 <us-gaap:CostOfServices contextRef="D-20083Q" decimals="-6" 
 unitRef="USD-DecimalMinus6">10230000000</us-gaap:CostOfServices> 
 <us-gaap:CostOfServices contextRef="D-20073Q" decimals="-6" 
 unitRef="USD-DecimalMinus6">9855000000</us-gaap:CostOfServices> 
 <us-gaap:CostOfGoodsSold contextRef="D-20083Q" decimals="-6" 
 unitRef="USD-DecimalMinus6">3789000000</us-gaap:CostOfGoodsSold> 
 <us-gaap:CostOfGoodsSold contextRef="D-20073Q" decimals="-6" 
 unitRef="USD-DecimalMinus6">3960000000</us-gaap:CostOfGoodsSold> 
 <us-gaap:GrossProfit contextRef="D-20083Q" decimals="-6" id="f9" 
 unitRef="USD-DecimalMinus6">10959000000</us-gaap:GrossProfit> 
 <us-gaap:GrossProfit contextRef="D-20073Q" decimals="-6" 
 unitRef="USD-DecimalMinus6">9956000000</us-gaap:GrossProfit> 
</xbrli:xbrl> 
 
 

  第一個區段包括設置業務上下文的結構。表示 “服務銷售的淨收入為 $14,773,000,000”。這一業務事實固然不錯,但是如果沒有基本的上下文則毫無意義。它是針對一整年還是一個季度,或只是一個星期?針對 1968 年的一個季度還是 2008 年的一個季度(考慮到通貨膨脹,這會造成一個顯著的差別)?對我的小型咨詢公司來說,這樣一個收入數字是非常驚人的。當然,這裡的上下文是關於 IBM 的。XBRL 提供了各種工具,可以為業務事實建立全部上下文。前兩個 xbrli:context 元素建立了用於業務事實的臨時上下文 —D-20073Q,表示 2007 財年的第 3 季度,而 D-20083Q 表示 2008 財年的第 3 季度。這兩個時期用於提供與去年的同期比較,這對於財務分析十分重要。如果去年同期的淨收入數字為 100 億美元,而今年這一數字為 150 億美元,那麼財務狀況將非常不錯,相反,如果去年同期的淨收入數字為 200 億美元,那麼表示財務狀況非常糟糕。

  接下來的兩個 xbrli:context 元素定義計量單位。其中一個非常簡單 — 只是一些股票計數。但是,即使是特別簡單的東西也常常具有非常具體的上下文。您並不希望看到一名不誠實的股票操盤手在一份具有誤導性的報告中偽造股票 的定義,因此標准 XBRL 分類本身提供了一個股票單位的定義。另一個單位是美元,如 ISO 4217 所定義,該國際標准描述了由三個字母組成的貨幣代碼(“USD” 代表美元)。本例中的單位被指定為表示四捨五入為最接近的百萬位的值。它被稱為 “USD-DecimalMinus6”,因為它相當於將該值乘以 10 的 -6 次方,去掉了小數部分,然後恢復乘數。同樣,XBRL 允許報告人員和分析師盡量說明這些細節。

  然後查看業務事實本身,從這裡可以了解到有關 IBM 財務業績的所有感興趣內容。比如,該公司擁有 1,343,457,986 已發行股票,2008 財年第三季度服務銷售的淨收入為 $14,773,000,000,2007 年同期為 $13,657,000,000,增加了 $116,000,000。清單 1 是摘自該報告的一小部分,它列出了大量業務事實。注意,這裡使用名稱空間引用美國公認會計原則(GAAP)的 XBRL 表示,目的是在全國范圍內使用會計報表,並為國際標准化提供了一個基礎。

  更多細節 — 分類

  您已經了解了 XBRL 中的業務上下文,但是 清單 1 中的內容僅是最表面的部分。支撐業務事實的詳盡(並且無聊)的細節涉及多個分類,即報告的 7 個文件中的其中 3 個文件。我將主要介紹關注引用和標簽的 taxonomy 文件。清單 2 摘錄自 ibm-20081028_def.XML 文件,它提供了到術語的正式定義的鏈接。


清單 2. IBM 10-Q 報告的定義分類摘錄
<?XML version="1.0" encoding="utf-8"?> 
<linkbase 
 XMLns="http://www.xbrl.org/2003/linkbase" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 XMLns:xlink="http://www.w3.org/1999/xlink" 
 XMLns:xbrldt="http://xbrl.org/2005/xbrldt" 
 xsi:schemaLocation="http://www.xbrl.org/2003/linkbase 
 http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd 
 http://xbrl.org/2005/xbrldt  
 http://www.xbrl.org/2005/xbrldt-2005.xsd"> 
 <roleRef xlink:type="simple" 
  xlink:href="ibm-20081028.xsd#IBMConsolidatedStatementOfEarnings" 
  roleURI="http://www.ibm.com/us/fr/ci/ibm/IBMConsolidatedStatementOfEarnings" /> 
 <roleRef xlink:type="simple" 
  xlink:href="ibm-20081028.xsd#DocumentInformation" 
  roleURI="http://www.ibm.com/us/fr/ci/DocumentInformation" /> 
 <roleRef xlink:type="simple" 
  xlink:href="ibm-20081028.xsd#EntityInformation" 
  roleURI="http://www.ibm.com/us/fr/ci/EntityInformation" /> 
 <definitionLink xlink:type="extended" 
  xlink:role="http://www.ibm.com/us/fr/ci/ibm/IBMConsolidatedStatementOfEarnings"> 
  <loc xlink:type="locator" 
   xlink:label="us-gaap_StatementLineItems" 
   xlink:href="http://xbrl.us/USG/elts/us-gaap.xsd#us-gaap_StatementLineItems"/> 
  <loc xlink:type="locator" 
   xlink:label="us-gaap_StatementTable" 
   xlink:href="http://xbrl.us/USG/elts/us-gaap.xsd#us-gaap_StatementTable" /> 
  <definitionArc xlink:type="arc" 
   xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" 
   xlink:from="us-gaap_StatementLineItems" 
   xlink:to="us-gaap_StatementTable" 
   order="1" 
   use="optional" 
   xbrldt:contextElement="segment" /> 
 </definitionLink> 
 <definitionLink xlink:type="extended" 
  xlink:role="http://www.ibm.com/us/fr/ci/EntityInformation"> 
  <loc xlink:type="locator" 
   xlink:label="dei_EntityInformationLineItems" 
   xlink:href="http://xbrl.us/(USG)/non-gaap/(XSD)#dei_EntityInformationLineItems" /> 
  <loc xlink:type="locator" 
   xlink:label="ibm_EntitIEsTable" 
   xlink:href="ibm-20081028.xsd#ibm_EntitIEsTable" /> 
  <definitionArc xlink:type="arc" 
   xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" 
   xlink:from="dei_EntityInformationLineItems" 
   xlink:to="ibm_EntitIEsTable" 
   order="27" 
   use="optional" 
   xbrldt:contextElement="segment" /> 
  <loc xlink:type="locator" 
   xlink:label="dei_EntityCommonStockSharesOutstanding" 
xlink:href="http://xbrl.us/USG/non-gaap/dei.xsd#dei_EntityCommonStockSharesOutstanding"/> 
  <definitionArc xlink:type="arc" 
   xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" 
   xlink:from="dei_EntityInformationLineItems" 
   xlink:to="dei_EntityCommonStockSharesOutstanding" 
   order="35" 
   use="optional" /> 
 </definitionLink> 
</linkbase> 
 

  我去掉了大量間接的內容和比較深奧的分類鏈接表示方法。為了符合格式化要求,我還修改了一些較長的屬性值,有時使用 “(USG)” 替換字符串 “us-gaap/1.0”,有時將字符串 “dei-2008-03-31.xsd” 簡寫為 “(XSD)”。這樣將方便您了解基本的原理。在鏈接庫內,頂級鏈接(roleRef 元素)提供了與整個報告有關的定義。引用報告中特定方面的定義則通過後面的 definitionLink 元素表示。

  XLink 詳解

  XBRL 運用了更復雜的 XLink 技術,即用於在 XML 中創建超鏈接的 W3C 標准。在 XBRL 中使用 XLink 時,需要牢記的一點就是鏈接可以出現在任何元素中,與此不同的是,Html 中的鏈接可以通過 a 或 link 元素表示。XBRL 的確定義了標准鏈接元素,如 roleReflocdefinitionArc,但是發布程序在使用鏈接時具有非常大的靈活性。IBM 使用了大量專門設計的結構,因此它在其報告中包括 XML 模式以定義這些結構。

  definitionLink xlink:type="extended" 表示它是一種復雜的 XLink 類型,除了其他特性外,該類型可以表示帶有多個弧(arc)的鏈接,並且可以以 “帶外” 的方式執行,表示它可以將鏈接庫中的鏈接補充為完全獨立的 XML 元素(在本例中為核心 XBRL 報告中的元素)。IBM 為這個完整的擴展鏈接分配了一個角色,xlink:role="http://www.ibm.com/us/fr/ci/ibm/IBMConsolidatedStatementOfEarnings",它表示這個分類是由 IBM 定義的收入表(訪問這個 URL 時將被重定向到 IBM 主頁,但是這並不重要)。要了解具有許多弧的擴展鏈接,請考慮來自鏡像下載站點的鏈接。從概念上看,這個鏈接僅僅是指向所需軟件的一個簡單鏈接,但實際上,可以從許多可能的資源中獲得這個鏈接,並且每個資源都是一個獨立的弧。要表示這些弧,需要使用 XLink 類型 “locator” 在端點使用 “標記” 或 “標簽”。實際的弧使用 xlink:type="arc" 在元素中定義,其中包括將端點指定為標記的 xlink:from 和 xlink:to 元素。在下面的代碼中,我從 清單 2 中提取了一個具體的擴展鏈接:

 <definitionLink xlink:type="extended" 
  xlink:role="http://www.ibm.com/us/fr/ci/EntityInformation"> 
  <loc xlink:type="locator" 
   xlink:label="dei_EntityInformationLineItems" 
   xlink:href="http://xbrl.us/(USG)/non-gaap/(XSD)#dei_EntityInformationLineItems" /> 
  <loc xlink:type="locator" 
   xlink:label="dei_EntityCommonStockSharesOutstanding" 
xlink:href="http://xbrl.us/USG/non-gaap/dei.xsd#dei_EntityCommonStockSharesOutstanding"/> 
  <definitionArc xlink:type="arc" 
   xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" 
   xlink:from="dei_EntityInformationLineItems" 
   xlink:to="dei_EntityCommonStockSharesOutstanding" 
   order="35" 
   use="optional" /> 
 </definitionLink> 
   

  簡而言之,這表示普通股事實位於實體信息行項目范圍內,通過鏈接到 XBRL 分類 Web 資源中的定義可以使表達式更加正式。

  結束語

  金融事務非常復雜,這是毋庸置疑的。最近的新聞都在討論能夠實現多高級的金融工具。對於大型的跨國公司,財務的復雜性是不用說的,即便是小一點的公司,也是非常復雜的。XBRL 的原理並不是要隱藏這種復雜性,而是將復雜性明白地表達出來,這至少實現了可訪問性和透明性。XBRL 中的基本 XML 機制(我已經在本文中簡略談到大部分內容)需要花時間掌握,但是在日常業務中創建和分析格式需要大量財務知識和技術知識。在不久的將來,美國將在報告中強制使用 XBRL。這種強制要求不僅跨越全球的證券系統,而且也將應用於更具體的領域,比如部門級別的公司內部報告。同時,還可能擴展到更加廣闊的法規報告需求,比如稅務、勞務、環境影響報告。XBRL 將很快成為業務領域中最重要的 XML 格式之一,我希望本文可以為您提供關於 XBRL 處理的基本信息。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved