I am not sure though how to turn on Schema validation without using DTD validation. So here are some questions:
1) If Schema validation is turned on, and the XML Schema source is specified by an HTTP URL, is the parser supposed to fetch ( HTTP GET ) the schema from the specified URL?
2) [ Schema validation via JAXP ] According to: http://xml.apache.org/~edwingo/jaxp-ri-1.2.0-fcs/docs/samples.html#Schema ( referenced from: http://java.sun.com/xml/jaxp/faq.html#XMLSchema )
private static final String MM7_NS_URI = "http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0";
private static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
private static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
private static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware( true ); factory.setValidating( true ); factory.setAttribute( JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA ); factory.setAttribute( JAXP_SCHEMA_SOURCE, new URL( MM7_NS_URI ));
.. but when I did that, and answer to my question [1] is true, I cannot see ( by running a sniffer on my local box ) any HTTP requests to the specified URL of the schema(s) ... not even fetching the SOAP XML schema.
( no errors are returned by the parser )
Is:
DocumentBuilderFactory.setValidating( true ) equivalent to DOMParser.setFeature( "http://xml.org/sax/features/validation", true ) ?
What is the equivalent of
DOMParser.setFeature( "http://apache.org/xml/features/validation/schema", true ) and
DOMParser.setFeature( "http://apache.org/xml/features/validation/schema-full-checking", true ) via JAXP?
3) However, if I directly do this ( not via JAXP but via Xerces 2.2 directly ):
DOMParser parser = new DOMParser();
parser.setFeature( "http://xml.org/sax/features/validation", true );
parser.setFeature( "http://apache.org/xml/features/validation/schema", true );
parser.setFeature( "http://apache.org/xml/features/validation/schema-full-checking", true );
... then I do get validation ... but it was reporting a DTD validation error:
[Error] :2:178: cvc-elt.1: Cannot find the declaration of element 'SOAP-ENV:Envelope'.
... but I only want Schema validation
Any ideas?
-- Jesus M. Salvo Jr. Mobile Internet Group Pty Ltd (formerly Softgame International Pty Ltd) M: +61 409 126699 T: +61 2 94604777 F: +61 2 94603677
PGP Public key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xC0BA5348
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
