DevToys Web Pro iconDevToys Web Pro博客
为我们评分:
试用浏览器扩展:

XML / XSD 验证器

服务器端

示例

验证结果

正在加载验证...

XSD 架构

  • XML 文档

  • Loading editor...
    Loading editor...
    技术详情

    XML / XSD 校验器的工作原理

    工具功能

    此 XML XSD 校验器通过服务端处理,根据 XML Schema 定义对 XML 文档进行校验。该工具会校验 Schema 中定义的结构、数据类型、元素顺序以及属性要求。校验失败时,会在可用的情况下报告包含行号与列号的具体错误。该校验器可处理命名空间、复杂类型、sequence 约束,以及诸如模式匹配和值限制等 Schema facet。

    示例:图书目录校验

    考虑一个要求图书必须具有整数 ID 和十进制价格的 XSD Schema:

    <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,不会获取外部资源或解析基于网络的 import。为安全起见,外部实体处理(XXE)已禁用。只有当所有被引用的 Schema 都包含在主 XSD 内容中时,Schema include 与 import 才能生效。

    • 网络访问:出于安全原因已阻止
    • Schema 导入:必须内联,不支持外部解析
    • 外部实体:已禁用(XXE 防护)
    • 处理限制:适用合理的大小限制

    服务器端处理 vs 客户端处理

    客户端的 XML 良构性检查足以进行基础语法验证。然而,XSD 验证需要专用引擎,因为浏览器不包含 XML Schema 处理器。服务器端验证可确保结果一致,能够处理继承与导入等复杂的 schema 特性,并将潜在恶意的 XML 内容隔离在安全边界之外。