You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by "Jesus M. Salvo Jr." <je...@migasia.com> on 2003/01/10 00:23:54 UTC

Turning off DTD validation but allow Schema validation ( was Re: Schema validation with Xerces and JAXP )

Okay ... I now know how to do Schema validation with JAXP:

http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPDOM9.html

.... but another problem that I have which I mentioned above is:

Error: URI=null Line=6: cvc-elt.1: Cannot find the declaration of 
element 'SOAP-ENV:Envelope'.

... and "SOAP-ENV:Envelope" is the root element. Is this an error from 
the DTD validation?

How can I turn off DTD validation but allow Schema validation?
Here is a portion of the SOAP message:


<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:noNamespaceSchemaLocation="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0">
<SOAP-ENV:Header>
<TransactionID>123</TransactionID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
.... snip .....
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Jesus M. Salvo Jr. wrote:

>
>
> 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: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org