DevToys Web Pro iconDevToys Web ProBlog
Đánh giá chúng tôi:
Dùng thử tiện ích mở rộng trình duyệt:

Trình xác thực XML / XSD

Phía máy chủ

Mẫu

Kết quả xác thực

Đang tải xác thực...

Lược đồ XSD

  • Tài liệu XML

  • Loading editor...
    Loading editor...
    Chi tiết kỹ thuật

    Cách Trình xác thực XML / XSD hoạt động

    Công cụ làm gì

    Trình xác thực XML XSD này kiểm tra tài liệu XML dựa trên định nghĩa XML Schema bằng xử lý phía server. Công cụ xác thực cấu trúc, kiểu dữ liệu, thứ tự phần tử và các yêu cầu thuộc tính được định nghĩa trong schema của bạn. Khi xác thực thất bại, nó báo các lỗi cụ thể kèm số dòng và cột khi có. Trình xác thực xử lý namespace, complex type, ràng buộc sequence và các facet của schema như khớp pattern và giới hạn giá trị.

    Ví dụ: Xác thực danh mục sách

    Hãy xem schema XSD này yêu cầu sách phải có ID kiểu số nguyên và giá kiểu số thập phân:

    <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>

    XML không hợp lệ như &lt;book id="abc"&gt;&lt;price&gt;not-a-number&lt;/price&gt;&lt;/book&gt;sẽ không vượt qua xác thực với lỗi ràng buộc kiểu cho cả thuộc tính ID và phần tử price.

    Các trường hợp sử dụng phổ biến

    Lập trình viên sử dụng xác thực XML Schema khi tích hợp với SOAP API, xác thực tệp cấu hình hoặc xử lý định dạng trao đổi dữ liệu. Các kịch bản phổ biến bao gồm xác thực phản hồi API theo schema đã công bố, kiểm tra tệp cấu hình trước khi triển khai và đảm bảo chất lượng dữ liệu trong pipeline ETL. Trình xác thực đặc biệt hữu ích để phát hiện sai kiểu, thiếu phần tử bắt buộc và thứ tự phần tử không đúng trước khi dữ liệu đi vào hệ thống production.

    Engine xác thực và giới hạn

    Công cụ này sử dụng libxml2 thông qua binding libxmljs cho Node.js, cung cấp tuân thủ XML Schema 1.0. Trình xác thực xử lý schema hoàn toàn phía server để đảm bảo an toàn và không tải tài nguyên bên ngoài hoặc resolve import qua mạng. Xử lý external entity (XXE) bị vô hiệu hóa để đảm bảo an toàn. Schema include và import chỉ hoạt động nếu tất cả schema được tham chiếu đều được cung cấp trong nội dung XSD chính.

    • Truy cập mạng:Bị chặn vì lý do bảo mật
    • Schema import:Phải inline, không resolve bên ngoài
    • External entity:Đã vô hiệu hóa (bảo vệ XXE)
    • Giới hạn xử lý:Áp dụng giới hạn kích thước hợp lý

    Xử lý phía máy chủ so với phía máy khách

    Việc kiểm tra tính đúng định dạng (well-formedness) của XML ở phía máy khách là đủ cho việc xác thực cú pháp cơ bản. Tuy nhiên, việc xác thực XSD yêu cầu một bộ máy chuyên dụng vì trình duyệt không tích hợp bộ xử lý XML Schema. Xác thực phía máy chủ đảm bảo kết quả nhất quán, xử lý các tính năng lược đồ phức tạp như kế thừa và import, đồng thời cung cấp cơ chế cô lập bảo mật trước nội dung XML có khả năng độc hại.