Trình xác thực XML / XSD
Phía máy chủMẫu
Kết quả xác thực
Lược đồ XSD
Tài liệu XML
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ư <book id="abc"><price>not-a-number</price></book>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.