fast-xml-parser
fast-xml-parser copied to clipboard
Parsing an invalid XML element
Description
The parser accepts and parses a XML element that is syntactically invalid, without raising an error. This is despite enabling the validator option "-v".
Input
<?xml version="1.0" ?> <a/> <! <!---->
In the above example, token <! is duplicated, which I expected to raise an error. The input is saved in a file named example.xml.
Code
./src/cli/cli.js -v example.xml
Output
{ '?xml': { '@_version': 1 }, a: '', '!': '' }
My question is: Why the XML validator doesn't throw an error in this case? Please note that xmllint rejects the input example as invalid.
Hi @amitguptagwl
I tried the above input from the code:
#!/usr/bin/env node
const {XMLValidator} = require("../fxp");
const result = XMLValidator.validate('<?xml version="1.0" ?> <a/> <! <!---->', {
allowBooleanAttributes: true
});
console.log(result);
Output is:
true
So, the XML input was accepted, despite being invalid.