Just a guess: you might need to set an XML schema feature on the parser, and possibly some namespace feature if it's not the default.

Jeff

Michael Oltz wrote:
Hello,

Let me rephrase my question. I am using Axis 1.3 with Xerces 2.7.1.
I am writing a SOAP client. I get an error when Axis begins to try
to deserialize the result of a SOAP operation.

SAXParseException: White spaces are required between publicId and systemId.
....
    at org.apache.xerces.impl.XMLScanner.scanExternalID(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl(Unknown Source)
....
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
....

What this means is it is expecting there to be a DOCTYPE header in the
SOAP envelope, but there isn't one. I was told on this list that there is
not supposed to be a DOCTYPE header in a SOAP envelope. So why is this
code looking for one, and how can I stop it looking for one? I tried
altering org.apache.axis.encoding.DeserializationContext.parse().
As the first line after the first try {  I put this:

parser.getXMLReader().setFeature("http://xml.org/sax/features/validation",false);

But I thought that was the default. And the error still happened
anyway.

Should I also turn off this Xerces-specific feature? Will that
make it not look for a DOCTYPE?

http://apache.org/xml/features/nonvalidating/load-external-dtd

Regards,
Michael Oltz




Reply via email to