This article shows five ways of how to configure different Java APIs (including DOM, SAX, dom4j and XOM) using JAXP 1.3 for checking and validating XML with DTD and Schema(s).To report errors, it is necessary to provide an Error Handler to the underlying implementation.Any compliant implementation must support the W3C XML Schema language, but other languages like RELAX NG or Schematron may be supported as well.If you try to open an XML document, the XML Parser might generate an error.The input document contains an extra attribute which has not been defined in the XML Schema, this shows that the XML Schema has been used for the validation.When using this XML Schema to validate the input XML document, the following error gets reported: ) as defined below has been used in the code examples to validate the input document.An XML document is considered ‘well-formed’ if it follows the normal rules of XML. In the example below we look at validating an XML document while using DOM, SAX and St AX. On the other hand, an XML is considered valid if it follows the rules specified in the DTD or XSD.
The DTD is retrieved automatically based on the DOCTYPE of the parsed document.Apart from the built-in DTD support in parsers, lxml currently supports three schema languages: DTD, Relax NG and XML Schema.All three provide identical APIs in lxml, represented by validator classes with the obvious names.A Document Type Definition (DTD) defines which elements and attributes you can use inside an XML document. Typically this DTD document is specified inside the XML document.