NodeJS

2013-02-13 23 views
10

में स्कीमा (xsd) के विरुद्ध एक्सएमएल मान्य करना एनपीएम में किसी भी XML पुस्तकालयों को एक्सएसडी स्कीमा के विरुद्ध एक्सएमएल की मान्यता का समर्थन करता है?NodeJS

मैं अपने आप को देखने के लिए होगा, लेकिन:

$ npm search xml 2>/dev/null | wc -l 
212 

नोट: xsd पैकेज नहीं यह क्या लगता है और node-xerces टूटा/खाली है।

+0

[संभवतः एक्सएमएल सिंटेक्स/नोड.जेएस के साथ संरचना] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/11050759/validate-xml-syntax-structure-with-node-js) –

उत्तर

16

Hij1nx (पाओलो Fragomeni) मेरे https://github.com/polotek/libxmljs

की दिशा में रखे एपीआई पता लगाने की कोशिश की आधे घंटे के बाद, मैं एक समाधान है:

result0: true 
result1: false 
:

#!/usr/local/bin/node 
var 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); 

यह आउटपुट का उत्पादन

मुझे नहीं पता कि यह स्कीमा के साथ कैसे काम करेगा, जो यूआरआई के माध्यम से अन्य स्कीमा का संदर्भ देता है।

+1

मुझे यह मिला है आयात के साथ स्कीमा के बारे में चर्चा: https://github.com/libxmljs/libxmljs/issues/202 – iaforek