Tôi biết đây là một bài đăng cũ hơn, nhưng tôi đã xem nó, và không may, câu trả lời của Ankit không hữu ích cho tôi. Nó tập trung tốt nhất vào việc đầu vào có phải là cú pháp XML hợp lệ hay không, không cho dù được tuân theo một lược đồ, là một phần của OP.
Tôi đã tìm thấy libxmljs là giải pháp tốt nhất cho những gì bạn đang tìm kiếm. Bạn có thể phân tích cú pháp, xác thực chuỗi cơ bản, cũng như cấu trúc chi tiết.
Một ví dụ về kiểm tra cho một cú pháp XML sẽ có cái gì đó như:
program.isValidSyntaxStructure = function (text) {
try {
libxmljs.parseXml(text);
} catch (e) {
return false;
}
return true;
};
Một ví dụ về kiểm tra cho một cấu trúc cụ thể/schema sẽ có cái gì đó như:
var xsd = '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="comment" type="xs:string"/></xs:schema>';
var xml_valid = '<?xml version="1.0"?><comment>A comment</comment>';
var xml_invalid = '<?xml version="1.0"?><commentt>A comment</commentt>';
var xsdDoc = libxml.parseXml(xsd);
var xmlDocValid = libxml.parseXml(xml_valid);
var xmlDocInvalid = libxml.parseXml(xml_invalid);
assert.equal(xmlDocValid.validate(xsdDoc), true);
assert.equal(xmlDocInvalid.validate(xsdDoc), false);
Các liên kết đầu tiên sang Mô-đun phân tích cú pháp XML hiện đã bị hỏng. – spoulson
@spoulson cảm ơn vì đã chú ý đến điều đó. Đã giải quyết để trỏ trực tiếp đến trang web của npm. –