繁體中文(台灣)
  • XML
  • HTML
  • SAML
  • data transfer

什麼是XML?

XML 是一種多用途的標記語言,用於結構化和傳輸數據。它具有可自定義的標籤、層次結構以及模式定義。與 HTML 不同,XML 著重於數據表示而非顯示。它廣泛應用於各種應用程序中,包括像 Logto 的 SAML 實現這樣的 SSO 配置。

Darcy Ye
Darcy Ye
Developer

擴展標記語言(XML)使用標籤來指示數據文件中的文本應如何結構化、存儲和傳輸。XML 的設計使其可被人和機器閱讀,使之成為一種功能強大且高度可定制的標記工具。

XML 由萬維網聯盟(W3C)於1996年創建。W3C 的目標是創建一種語言,可以幫助定義文檔類型並提供創建自定義標籤的能力。由此產生的標記語言類型允許定義頁面上的數據應如何標記,然後將其作為 XML 文件與另一系統共享。只要兩個系統使用相同的 XML 語言(使用它們都能解釋的標籤),這兩個系統就能「理解」XML 文件格式。當 XML 被適當部署時,這保證任何數據文件都能夠存儲、傳輸,然後使用,每次訪問時再現完全相同的數據和結構。

XML內容範例

XML 數據由數字文件中的文本組成。類似於 HTML,你可以透過插入標籤來創建 XML 文件所需的「代碼」,以指示文本應如何被解釋。舉例來說:

此例顯示了三個用戶。XML 內容包括名字、用戶名、電子郵件和用戶等級。

這會創建一個可以在身份提供者和資源提供者之間共享和讀取的 XML 文檔。

重要的是,上述例子展示了 XML 文檔的層次性。譬如:

  • 第一行的內容 <?xml version="1.0" encoding="UTF-8"?> 是 XML 聲明,指定了版本和編碼
  • 在 XML 文檔中,必須有一個根元素,在此例中是 <users>
  • 所有包含在根元素內的元素被稱為「子元素」
  • 在上述例子中,有 3 個子元素,標示為 <user> 標籤
  • <user> 子元素內,還有其他若干子元素,例如 <name><username><email><level>
  • <user> 標籤上,還有一個 id,被稱為 XML 屬性。一個元素不能包含多個同名屬性

使用的標籤顯示了每種類型數據是什麼,普通文本作為數據本身。還要注意內容是如何縮排的。這並不是為了幫助系統處理 XML 文件,而是為了幫助人們更容易瀏覽 XML 文件及其層次順序,以發現和解決任何錯誤或遺漏。

什麼是XML方案?

方案作為 XML 文檔的「定義」。這意味著它描述了 XML 文件結構的關鍵規則和約束以及對內容和數據類型的控制——控制它們在文檔中的相互作用。這確保了 XML 的數據完整性始終受到保護,即便在不同應用程序甚至系統之間處理也是如此。

兩種主要的方案語言是文檔型定義 (DTD) 和 XML 方案定義 (XSD)。由於其豐富的功能集、強大的數據類型能力等,XSD 是 XML 文檔中使用最多的語言。

什麼是XML語法?

如果像 XSD 的 XML 方案全是關於確保 XML 文檔有效性的詳細規範,那麼 XML 語法提供了一組規則來控制和管理 XML 文件的總體結構。例如,XML 語法可以涵蓋文本內容,例如自閉元素(不需要附加內容的單個信息)或 XML 聲明(一開始描述關鍵信息,如字符編碼的文檔使用),以及文件使用的 XML 版本。

XML 與 HTML

如果你熟悉 HTML,那麼 XML 文件布署標記的方式會看起來非常熟悉——但這兩種標記語言有一個關鍵區別——它們的用途和目的不同:

  • HTML 是一種標記語言,用於幫助瀏覽器理解如何在螢幕上顯示內容
  • XML 是一種標記語言,用於存儲、顯示和傳輸數據

除此之外,它們還有其他一些不同之處:

  1. 因為 HTML 被用來渲染給瀏覽器的頁面內容,其標籤類型是預定義的,而 XML 標籤可以根據實際情況自定義
  2. HTML 通常是靜態的,因為它用於顯示內容;XML 是動態的,因為它用於傳輸數據
  3. HTML 不支持命名空間,而 XML 可以使用命名空間來區分可能有相同名稱但不同上下文的標籤,以避免混淆

在此例中:

  • tech:title 使用 <http://www.example.com/tech> 作為命名空間,表明這個 <title> 元素屬於 tech 命名空間
  • bio:author 使用 <http://www.example.com/bio> 作為命名空間,表明這個 <author> 元素屬於 bio 命名空間

XML 在 Logto 中如何使用?

Logto 支持 SAML 協議用於 SSO。在配置 SSO 時,身份提供者提供一個 XML 格式的配置文件,其中包含重要配置,如證書和單點登錄 URL。

在配置 SAML SSO 時,Logto 允許直接上傳從身份提供者獲得的 XML 配置文件,無需手動填寫每個配置項。