精通 XML 檔案:結構、使用案例與核心優勢

XML 檔案將結構化資料儲存為巢狀、人類可讀的標籤,而非列與欄。Microsoft 將此格式描述為「一種旨在於人類可讀的文字檔案中管理和分享結構化資料的技術」。本指南將介紹這些檔案的建構方式、來源、試算表如何處理它們,以及如何從中獲取解答。
什麼是 XML 檔案
它是一個純文字檔案,同時包含資料以及其所描述事物的名稱。以逗號分隔的匯出檔案只會提供數值,並依賴標頭列來呈現意義。而帶有標籤的檔案則會將意義內聯(inline)帶入,緊鄰每個數值。
在開始之前,這種設計有一個值得先理解的後果。該格式具有階層性,因此一筆記錄可以包含其他記錄,且可達數個層級深。試算表則是扁平的,而這兩種結構之間的差距,正是大多數實際困難之所在。
Microsoft 的總覽用一句話說明了其目的:該格式「極大地簡化了資料庫、應用程式和組織之間資料的定義、傳輸、驗證和解讀」。
結構如何運作
元素與巢狀結構
每個數值都位於一個具名的元素內,且元素可以包含其他元素。一張發票可以包含一個客戶區塊、一個明細項目清單和一個總計區塊,每個區塊都有其各自的子元素。
巢狀結構是關鍵所在。它記錄了扁平資料表只能透過在多列中重複數值才能表達的關係。
自訂標籤
標籤名稱並非由格式固定。正如官方總覽所述,「應用程式設計人員可以建立自己自訂的標籤、資料結構和結構描述(schema)。」
這就是為什麼來自兩個不同廠商的兩個檔案可以描述同一張發票,卻幾乎沒有共享任何欄位名稱。任何分析都必須從解讀眼前的標籤實際代表什麼意義開始。
結構描述與驗證
獨立的結構描述檔案定義了規則。Microsoft 直接描述了這種配對關係。資料檔案「包含自訂標籤和結構化資料」。結構描述檔案則「包含強制執行規則(例如資料類型和驗證)的結構描述標籤」。
結構描述使用 .xsd 副檔名。該標準還定義了副檔名為 .xslt 的轉換檔案,被描述為「用於套用樣式並將 XML 資料轉換為不同呈現格式」的檔案。
這些檔案的用途
您很少會主動選擇此格式。它通常是從一個已經運行多年的系統中產生的。
- 金融與銀行業。 對帳單和付款訊息格式通常是帶有標籤的,而非使用分隔符號。
- 電子發票。 許多國家的電子發票法規都指定將帶有標籤的文件作為法定憑證。
- ERP 與 HR 匯出。 歷史悠久的大型企業系統通常預設以此格式進行匯出。
- 產品與內容摘要。 零售型錄摘要和聯合發佈格式都是基於標籤的。
- 設定與 Office 文件。 現代 Office 檔案格式是經過壓縮的標籤化組件集合。
這五種場景的模式都是相同的。該檔案是為另一台機器產生的交換產物,而不是為分析人員產生的工作檔案。
與扁平格式的比較
| 標籤化檔案 (.xml) | CSV | Parquet | |
|---|---|---|---|
| 結構 | 巢狀,多個層級 | 扁平的列與欄 | 扁平、欄導向 |
| 欄位名稱 | 與每個數值內聯攜帶 | 僅限標頭列 | 儲存於檔案中繼資料中 |
| 驗證 | 選用的結構描述檔案可強制執行類型 | 無內建 | 類型保留在結構描述中 |
| 可在文字編輯器中讀取 | 是,雖然冗長 | 是 | 否 |
| 相同資料的典型大小 | 最大 | 中等 | 最小 |
| 常見來源 | 企業系統與交換標準 | 匯出與報表 | 資料平台 |
如果您經常需要處理這些格式,我們關於 TSV 檔案和 Parquet 檔案的配套說明文章涵蓋了該表格中扁平格式的部分。
Excel 如何處理此格式
這是大多數分析人員接觸到此格式的地方,而官方文件對於後續會發生的情況有著異常清晰的說明。
匯入路徑並不在主功能區上。Microsoft 的匯入說明是「按一下 [開發人員] > [匯入]」。該頁面還引導讀者了解顯示該索引標籤的步驟,因為它預設是隱藏的。
用 Microsoft 的話來說,基本工作流程包含「五個階段」。您將結構描述檔案新增到活頁簿中,然後將其元素對應到儲存格或資料表。接著匯入資料檔案,並將元素繫結到這些已對應的儲存格。從那裡開始,您可以在 Excel 中進行操作,並將修改後的資料重新匯出。
有兩個行為比其他行為更為重要。
如果您未提供結構描述,Excel 將會進行猜測。 在未先新增結構描述的情況下進行匯入,「Excel 會嘗試為您推導出結構描述」。該猜測是「基於 XML 資料檔案中定義的標籤」。
接著,該猜測會與活頁簿一起儲存。該頁面還指出「您無法將 Excel 推導出的結構描述匯出為獨立的 XML 結構描述資料檔案 (.xsd)」。
巢狀結構在匯入過程中會被扁平化。 Microsoft 描述了以唯讀方式開啟的結果。它是一個「具有列 and 欄的二維資料表,將 XML 標籤顯示為欄標題」。根元素則「像標題一樣被使用」。
這種扁平化正是您進行分析所需要的,但也正是意義流失的地方。一個三層的階層結構變成了多個欄位,而父元素與子元素之間的關係,僅能保留在標籤的命名方式中。
主要優勢
資料具有自我解釋性。 欄位名稱與數值同行,因此即使檔案與其說明文件分離,仍然可以被解讀。
驗證是生態系統的一部分。 結構描述可以在資料到達您手中之前,強制執行資料類型和必填欄位,這是任何純分隔符號匯出都無法做到的。
它能跨越組織邊界。 正如官方總覽所指出的,該格式「遵循產業標準指南,且可由各種資料庫和應用程式進行處理」。
保留階層結構。 包含十二個明細項目的單張發票仍保持為單張發票,而不是重複標頭數值的十二列資料。
值得了解的限制
冗長性。 在每個數值周圍重複標籤名稱,使得檔案與扁平格式的相同資料相比顯得非常龐大。
標籤名稱在不同廠商之間並未標準化。 自訂標籤是該格式的一項特性,而代價是每個新來源都需要重新解讀。
試算表需要將階層結構扁平化。 任何樞紐分析表、圖表或公式都需要矩形結構,因此在開始分析之前必須改變其形狀。
匯入可能會因驗證失敗。 Microsoft 指出「當 Excel 無法根據 XML 對應驗證資料時,會顯示 [XML 匯入錯誤] 對話方塊」。這會讓您在開始之前必須先回到結構描述進行處理。
無需與結構糾纏即可獲得解答
實際面臨的問題很少是「我該如何開啟這個檔案」,而是「我該如何在今天下午之前從中製作出一張圖表」。
行得通的路徑正是 Excel 已經暗示的那條路。將階層結構扁平化為矩形,決定階層結構的哪一個層級代表一列,然後從那裡開始分析。
Powerdrill Bloom 接受上傳 Excel、CSV、PDF 和文件,因此帶有標籤的來源檔案應先轉換為 CSV 或活頁簿。Excel 本身的唯讀開啟功能正好能產生該矩形,您的資料工具中的任何轉換步驟也是如此。
一旦資料扁平化,分析就變得再普通不過了。CSV AI assistant 頁面描述了該路徑。定價頁面總結了結果:針對您的資料進行提問,並「獲得包含圖表、資料表和匯出內容的有根據解答」。如果您特別需要圖表,我們關於如何將 CSV 檔案轉換為圖表的逐步教學涵蓋了完整流程。
在轉換之前,有一個決定需要特別注意。請刻意選擇列的細粒度。每筆明細項目一列與每張發票一列,解答的是不同的問題。
結論
該格式具有冗長性、自我解釋性和階層性,這三個特性解釋了與其協作時的所有其他特點。它非常適合在組織之間移動資料,但在單一組織內部進行資料分析時則顯得有些棘手。
將轉換視為一項決策,而非一項繁瑣的工作。選擇要成為一列的層級,並保留標籤名稱作為欄標題。在此之後,工作內容就與任何試算表分析完全相同。
現在您的資料夾中正好有這樣一個檔案嗎?在扁平化的匯出檔案上嘗試使用 Powerdrill Bloom,在投入資源建立管線之前先看看圖表。
常見問題
XML 檔案的用途是什麼?
它用於在系統和組織之間移動結構化資料。常見來源包括銀行訊息、電子發票、ERP 和 HR 匯出、零售產品摘要以及 Office 文件的內部組件。
XML 和 CSV 有什麼不同?
前者具有階層性,且將欄位名稱與每個數值內聯攜帶。後者則是扁平的,並依賴單一標頭列。此外,標籤化格式還可以針對結構描述檔案進行驗證,而分隔符號匯出則無法做到這一點。
如何在 Excel 中開啟 XML 檔案?
Microsoft 記載的路徑為 [開發人員] > [匯入],且 [開發人員] 索引標籤預設是隱藏的。您也可以以唯讀方式開啟檔案,這會產生一個使用標籤作為欄標題的二維資料表。
我需要結構描述檔案才能使用資料嗎?
不需要。Microsoft 的文件指出,在未提供結構描述時,Excel 會嘗試從標籤中推導出結構描述。推導出的結構描述會與活頁簿一起保留,且無法匯出為獨立的 .xsd 檔案。
什麼是 XSLT?
Microsoft 將其描述為與資料格式一同定義的轉換標準。它使用 .xslt 檔案「套用樣式並將 XML 資料轉換為不同的呈現格式」。