DevToys Web Pro iconDevToys Web Pro部落格
為我們評分:
試用瀏覽器擴充功能:

XML / XSD 驗證器

伺服器端

範例

驗證結果

正在載入驗證...

XSD 結構描述

  • XML 文件

  • Loading editor...
    Loading editor...
    技術細節

    XML / XSD 驗證器如何運作

    工具功能說明

    此 XML XSD 驗證器會透過伺服器端處理,依據 XML Schema 定義檢查 XML 文件。工具會驗證 Schema 中定義的結構、資料型別、元素順序與屬性需求。當驗證失敗時,會在可用的情況下回報包含行號與欄位號的特定錯誤。驗證器可處理命名空間、複合型別、序列限制,以及像是模式比對與值限制等 Schema facet。

    範例:書籍目錄驗證

    請看這個 XSD Schema,要求書籍必須有整數 ID 與十進位價格:

    <xs:element name="book">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="title" type="xs:string"/>
                <xs:element name="price" type="xs:decimal"/>
              </xs:sequence>
              <xs:attribute name="id" type="xs:integer" use="required"/>
            </xs:complexType>
          </xs:element>

    &lt;book id="abc"&gt;&lt;price&gt;not-a-number&lt;/price&gt;&lt;/book&gt; 這樣的無效 XML 會因為 ID 屬性與 price 元素都違反型別限制而驗證失敗。

    常見使用情境

    開發者在與 SOAP API 整合、驗證設定檔或處理資料交換格式時會使用 XML Schema 驗證。常見情境包括:依據已發布的 Schema 驗證 API 回應、部署前檢查設定檔,以及在 ETL 流程中確保資料品質。此驗證器特別適合在資料進入正式系統前,提早抓出型別不匹配、缺少必要元素與元素順序錯誤等問題。

    驗證引擎與限制

    此工具透過 libxmljs Node.js 綁定使用 libxml2,提供 XML Schema 1.0 相容性。為了安全起見,驗證器完全在伺服器端處理 Schema,且不會抓取外部資源或解析基於網路的匯入。為安全考量已停用外部實體處理(XXE)。只有在主 XSD 內容中提供所有被參照的 Schema 時,Schema include 與 import 才能運作。

    • 網路存取:為安全起見已封鎖
    • Schema 匯入:必須內嵌,不支援外部解析
    • 外部實體:已停用(XXE 防護)
    • 處理限制:適用合理的大小限制

    伺服器端 vs 用戶端處理

    用戶端的 XML 格式良好(well-formedness)檢查足以進行基本語法驗證。然而,XSD 驗證需要專門的引擎,因為瀏覽器不包含 XML Schema 處理器。伺服器端驗證可確保結果一致、處理繼承與匯入等複雜的結構描述功能,並提供與可能具惡意的 XML 內容之間的安全隔離。