[ http://issues.apache.org/jira/browse/XERCESJ-1163?page=comments#action_12412951 ]
Ortwin Glück commented on XERCESJ-1163: --------------------------------------- Thanks Michael. Passing the problem on to JDOM. People experiencing the problem can find a JDOM patch here: http://www.odi.ch/weblog/posting.php?posting=301 > javax.xml.validation.Validator#validate implementation does not support a > DOMSource argument > -------------------------------------------------------------------------------------------- > > Key: XERCESJ-1163 > URL: http://issues.apache.org/jira/browse/XERCESJ-1163 > Project: Xerces2-J > Type: Bug > Components: JAXP (javax.xml.validation) > Versions: 2.8.0 > Reporter: Steven Grossman > > Validator#validate implementation does not support a DOMSource argument. The > following SAXParseException is always thrown: > Exception in thread "main" org.xml.sax.SAXParseException: cvc-elt.1: Cannot > find the declaration of element 'xxx'. > The problem is not seen in the 1.5 jdk. > I've supplied a test class that succesfully validates an xml instance > document using a StreamSource and subsequently fails to perform the > validation against a DOMSource representation of the same xml. > import java.io.StringReader; > import java.io.IOException; > import javax.xml.XMLConstants; > import javax.xml.parsers.DocumentBuilder; > import javax.xml.parsers.DocumentBuilderFactory; > import javax.xml.parsers.ParserConfigurationException; > import javax.xml.transform.stream.StreamSource; > import javax.xml.transform.dom.DOMSource; > import javax.xml.validation.Schema; > import javax.xml.validation.SchemaFactory; > import javax.xml.validation.Validator; > import org.xml.sax.SAXException; > import org.xml.sax.InputSource; > import org.w3c.dom.Document; > public final class ValidatorBug { > private static final String SCHEMA = > "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + > "<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" > elementFormDefault=\"qualified\" attributeFormDefault=\"unqualified\">\n" + > " <xs:element name=\"root\"/>\n" + > "</xs:schema>"; > private static final String XML = "<?xml version=\"1.0\" > encoding=\"UTF-8\"?><root/>"; > public static void main(String[] args) throws SAXException, IOException, > ParserConfigurationException { > SchemaFactory schemaFactory = > SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); > Schema schema = schemaFactory.newSchema(new StreamSource(new > StringReader(SCHEMA))); > Validator validator = schema.newValidator(); > System.out.println("\nvalidating stream source"); > validator.validate(new StreamSource(new StringReader(XML))); // <--- > WORKS > System.out.println("valid"); > DocumentBuilderFactory documentBuilderFactory = > DocumentBuilderFactory.newInstance(); > DocumentBuilder documentBuilder = > documentBuilderFactory.newDocumentBuilder(); > Document document = documentBuilder.parse(new InputSource(new > StringReader(XML))); > System.out.println("\nvalidating DOM source"); > validator.validate(new DOMSource(document)); // <--- PROBLEM > System.out.println("valid"); > } > } > The exception: > Exception in thread "main" org.xml.sax.SAXParseException: cvc-elt.1: Cannot > find the declaration of element 'root'. > at > org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown > Source) > at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source) > at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) > at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) > at > org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown > Source) > at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown > Source) > at > org.apache.xerces.jaxp.validation.DOMValidatorHelper.beginNode(Unknown Source) > at > org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source) > at > org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source) > at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown > Source) > at javax.xml.validation.Validator.validate(Validator.java:82) > at ValidatorBug.main(ValidatorBug.java:42) > (This bug is represented by XERCESJ-1132 and XERCESJ-1161, but they were in > the wrong component) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
