[Geoserver-users] SAXException: Error parsing: WFS-basic.xsd

Hi list,

when I try a WFS 1.0 request against my Geoserver 1.6RC3 WFS, I get back:

<?xml version="1.0" ?>
<ServiceExceptionReport
   version="1.2.0"
   xmlns="http://www.opengis.net/ogc&quot;
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
   xsi:schemaLocation="http://www.opengis.net/ogc
http://schemas.opengis.net/wfs/1.0.0/OGC-exception.xsd&quot;&gt;
   <ServiceException>
      org.xml.sax.SAXException: Error parsing: WFS-basic.xsd
org.xml.sax.SAXException: Error parsing: WFS-basic.xsd
org.xml.sax.SAXException: Error parsing: WFS-basic.xsd
</ServiceException></ServiceExceptionReport>

The request is:

<GetFeature service="WFS" version="1.0.0" xmlns="http://www.opengis.net/wfs&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:xlink="http://www.w3.org/1999/xlink&quot;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
xsi:schemaLocation="http://schemas.opengis.net/wfs/1.0.0 WFS-basic.xsd"
maxFeatures="250"><Query
typeName="rwsagi:PROVINCIES"><ogc:Filter><ogc:PropertyIsLike wildCard='*'
singleChar='^'
escape='!'><ogc:PropertyName>OMSCHR</ogc:PropertyName><ogc:Literal>*</ogc:Literal></ogc:PropertyIsLike></ogc:Filter></Query></GetFeature>

and works fine against Geoserver 1.3.X.

The stack trace is:

27 Sep 09:55:12 WARN [geotools.xml] - Error parsing: WFS-basic.xsd
27 Sep 09:55:12 WARN [geoserver.ows] -
org.xml.sax.SAXException: Error parsing: WFS-basic.xsd
        at
org.geotools.xml.impl.ParserHandler.startElement(ParserHandler.java:294)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
Source)
        at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
Source)
        at
org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.geotools.xml.Parser.parse(Parser.java:184)
        at org.geotools.xml.Parser.parse(Parser.java:163)
        at
org.geoserver.wfs.xml.v1_0_0.WfsXmlReader.read(WfsXmlReader.java:28)
        at
org.geoserver.ows.Dispatcher.parseRequestXML(Dispatcher.java:1041)
        at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:374)
        at
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:184)
        at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
        at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
        at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
        at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
        at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled
Code))
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java(Compiled
Code))
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java(Compiled
Code))
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java(Compiled
Code))
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java(Compiled
Code))
        at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java(Compiled
Code))
        at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java(Compiled
Code))
        at
org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:178)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java(Compiled
Code))
        at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java(Compiled
Code))
        at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java(Compiled
Code))
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java(Compiled
Code))
        at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java(Compiled
Code))
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java(Compiled
Code))
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:568)
Caused by: java.io.FileNotFoundException: /data/opt/tomcat/WFS-basic.xsd (No
such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java(Compiled
Code))
        at
org.eclipse.emf.ecore.resource.impl.URIConverterImpl.createFileInputStream(URIConverterImpl.java:469)
        at
org.eclipse.emf.ecore.resource.impl.URIConverterImpl.createInputStream(URIConverterImpl.java:431)
        at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:897)
        at org.geotools.xml.Schemas.parse(Schemas.java:234)
        at org.geotools.xml.Schemas.parse(Schemas.java:200)
        at
org.geotools.xml.impl.ParserHandler.startElement(ParserHandler.java:290)
        ... 57 more
                               
Any ideas?
                                    
Best regards,
Bart

--
Bart van den Eijnden
OSGIS, Open Source GIS
http://www.osgis.nl

Hi Bart,

The request is:

<GetFeature service="WFS" version="1.0.0" xmlns="http://www.opengis.net/wfs&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:xlink="http://www.w3.org/1999/xlink&quot;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
xsi:schemaLocation="http://schemas.opengis.net/wfs/1.0.0 WFS-basic.xsd"
maxFeatures="250"><Query
typeName="rwsagi:PROVINCIES"><ogc:Filter><ogc:PropertyIsLike wildCard='*'
singleChar='^'
escape='!'><ogc:PropertyName>OMSCHR</ogc:PropertyName><ogc:Literal>*</ogc:Literal></ogc:PropertyIsLike></ogc:Filter></Query></GetFeature>

and works fine against Geoserver 1.3.X.

The problem is with the schemaLocation parameter. The syntax is
schemaLocation="<namespcae> <location>". So properly specified it should be:

xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd

However I agree that the parser should not choke, so i am opening a bug
for this.

http://jira.codehaus.org/browse/GEOS-1364

What you can do is either remove the schemaLocation parameter all
together, or specify it as i have a above.

-Justin

--
Justin Deoliveira
The Open Planning Project
http://topp.openplans.org