Validating XML against a schema (xsd) in NodeJS Validating XML against a schema (xsd) in NodeJS xml xml

Validating XML against a schema (xsd) in NodeJS


Hij1nx (Paolo Fragomeni) pointed me at https://github.com/polotek/libxmljs

After half an hour of trying to figure out the API, I have a solution:

#!/usr/local/bin/nodevar x = require('libxmljs');var xsd = '<?xml version="1.0" encoding="utf-8" ?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://example.com/XMLSchema/1.0" targetNamespace="http://example.com/XMLSchema/1.0" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:element name="foo"></xs:element></xs:schema>'var xsdDoc = x.parseXmlString(xsd);var xml0 = '<?xml version="1.0" encoding="UTF-8"?><foo xmlns="http://example.com/XMLSchema/1.0"></foo>';var xmlDoc0 = x.parseXmlString(xml0);var xml1 = '<?xml version="1.0" encoding="UTF-8"?><bar xmlns="http://example.com/XMLSchema/1.0"></bar>';var xmlDoc1 = x.parseXmlString(xml1);var result0 = xmlDoc0.validate(xsdDoc);console.log("result0:", result0);var result1 = xmlDoc1.validate(xsdDoc);console.log("result1:", result1);

This produces the output:

result0: trueresult1: false

I have no idea whether/how this will work with schemas which reference other schemas via URIs.