Opened 21 years ago

Closed 20 years ago

Last modified 20 years ago

#457 closed defect (fixed)

WMS Exceptions don't validate

Reported by: dmorissette Owned by: mapserverbugs
Priority: high Milestone:
Component: WMS Server Version: 4.1
Severity: normal Keywords: VERIFIED
Cc: jmckenna@…, bfraser@…

Description

On 2003-10-08, Brent Fraser wrote to mapserver-users:
> 
> Some suggestions for Mapserver (and associated utilities):
> 
> 1. Fix the XML error reporting.  Internet Explorer complains that it's not
> valid XML (I then do a "view source" to see the text generated from
> Mapserver).

In bug 433, Assefa fixed the WFS exceptions (this is in the 4.1/CVS development
version only).  Did you fix errors with the WMS exceptions as well Assefa?

Important note: the exceptions format may have changed several times between WMS
versions 1.0.0, 1.0.7 and 1.1.0, so we should make sure when we fix this that
exceptions are valid for every version.

Change History (9)

comment:1 by nsavard@…, 20 years ago

Service exception version 1.1.1 does not validate because the "version"
attribute is set to "1.1.0" instead "1.1.1".  Otherwise the service exception
response now validates for at least the 1.1.1 version.  This is a minor change.

comment:2 by nsavard@…, 20 years ago

Additional information from WMS 1.1.1 specifications:

6.7. Service Exceptions
...
Service Exception Report XML shall  be valid according to the Service Exception
DTD in Annex A.3, Service Exception DTD.

comment:3 by assefa, 20 years ago

Cc: jmckenna@… added
Changed the value of the version for wms exception. Added a new map level 
metadata wms_serviceexception_dtd that can be set to change the default dtd 
value.

The metadata should make it into the docs.

 For wfs 1.0 the exception version was also updated to 1.2.0

 

comment:4 by dmorissette, 20 years ago

Assefa, how does the wms_serviceexception_dtd metadta work? Since the DTD
changes for every version of WMS, and a single instance of MapServer can serve
multiple WMS versions, I don't understand how a single metadata value can do the
trick.

Can't you just derive the DTD location from the ows_schemas_location metadata
like we do for all other schemas?  We should look at http://schemas.opengis.net/
to figure the correct path (relative to the schema server's root) for the DTDs
that we need (I noticed that their server has them only for WMS 1.1.1 and 1.3.0)

comment:5 by assefa, 20 years ago

Daniel,

 You are right about the metadata not being able usful whene serving seral 
version of wms.

 I am not sure though how I could make assumptions for the location of the 
dtd. As you noted the opengis site (http://schemas.opengis.net/wms/) has only 
2 versions available (and beside that the names of the dtd are different fom 
one version to the other, making it impossible to have a some logic). The 
other dtd versions (1.1.0, 1.1.1) are available at 
http://www.digitalearth.gov/wmt/xml/ but not the most recent ones.

 Any idea how to code this logic ? In any case the metadata discussed earlier 
will be removed.  

comment:6 by assefa, 20 years ago

I removed the metada. The dtds are for now harcoded. if any logic is found to 
nicely get the names of the dtd to use from the schema location, I will do the 
update.

comment:7 by dmorissette, 20 years ago

I really can't think of a nice way to handle that at the moment. The only way we
could fix this forgood would be to do what others such as Cadcorp do: they use a
URL pointing back to the server itself for all the schemas, much like a
DescribeFeatureType works. However that would require that we install a copy of
all schemas with MapServer, so that's not really practical.

comment:8 by assefa, 20 years ago

Resolution: fixed
Status: newclosed
Mark as fixed.

comment:9 by nsavard@…, 20 years ago

Keywords: VERIFIED added
Verified by setting the version parameter to 1.1.1 and to 1.1.0.   Each of these
requests returns the specified service exception version.
Note: See TracTickets for help on using tickets.