[ 
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]

Reply via email to