Reu
Reu

Reputation: 1287

Get object for element that has failed XSD validation

I'm validating an XML document against an XSD, and then want to delete the nodes that cause the document to fail.

I'm hitting against a problem in that SaxParseException doesn't seem to contain any information about the failure that I can use to programatically remove nodes.

Is there a way to get a reference to the element, that can be used to remove it, from a SaxParseException?

Upvotes: 1

Views: 1472

Answers (1)

xcut
xcut

Reputation: 6349

See the answers here: How to get the element of and invalid xml file with failed xsd Validation

Note that what you are proposing to do is unsafe in the general case. For a simple counter-example, take an element X of type integer that must occur at least once in its parent. If you put a string value in it, it will now fail validation. If you remove it, the document will violate the minOccurs constraint.

You could try to remove the element and restart validation from scratch, but you could end up in a very long loop and get no good result.

Upvotes: 1

Related Questions