超級促銷週Claude Skills — 20% 折扣
Glossary

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

Powerdrill Bloom·
精通 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 資料轉換為不同的呈現格式」。