Hi,
not so short mail about a question that some people have been posing me lately,
on why GeoServer is not using the urn:ogc:... form for srsName (and
it's using the
old experimental urn:x-ogc one instead).
When WFS 1.1.0 specification came out, May 3 2005, they said (citing
from page 36):
---------------------------------------------------------------------------------------------------------------
Any valid URI value can be assigned to the srsName attribute. However,
in order to
enhance interoperability, a web feature service must be able to
process srsName attribute values with the following format models:
• EPSG:<EPSG code>
• http://www.opengis.net/gml/srs/epsg.xml#<EPSG code>
• urn:EPSG:geographicCRC:<epsg code>
----------------------------------------------------------------------------------------------------------------
When it was time to create the cite tests and the reference implementation they
however made us implement the urn form following the syntax of the time:
urn:x-ogc:def:crs:EPSG:4326
where the x standard for "experimental" as IANA still did not have the
occasion to
approve its official usage. A June 2008 newsletter from OGC reports the IANA
approving the "ogc" NID as news, meaning "ogc" has been valid form for the
past 2.5 years.
The most recent document from OGC talking about the urn syntax is:
http://portal.opengeospatial.org/files/?artifact_id=30575
from January 2009 which reports the following syntax (mind the double
column), page 39:
-----------------------------------------------------------------------------------------------------------------
Specializing the above, the URN value for an anyURI that references one object
in the European Petroleum Survey Group (EPSG) database should have the form:
urn:ogc:def:objectType:EPSG::code
...
The URN value for CRS 2984 is:
urn:ogc:def:crs:EPSG::2984.
----------------------------------------------------------------------------------------------------------------
Now, in my opinion even today someone should be able to read the WFS spec
and implement it as is (standards should not morph over time, shouldn't they),
however I don't think any server implements WFS 1.1.0 as originally mandated.
Most use the urn:x-ogc form. Some use urn:ogc.
What about us, what shall we do? Eventually we'll have to switch to the urn:ogc
form as we implement newer versions of the standards which, hopefully, are going
to be a tad more explicit about it, and even more hopefully, a tad more stable.
In fact WFS 2.0 says (page 33):
-------------------------------------------------------------------------------------------------------------
Servers that implement this International Standard shall be able to process
srsName attribute values using the following format model:
• urn:ogc:def:crs:EPSG::<EPSG code> [(see OGC OGC 07-092r1)]
In this format model, the value <EPSG code> is a placeholders for actual
EPSG code values. EXAMPLE srsName="urn:ogc:def:crs:EPSG::26986”
--------------------------------------------------------------------------------------------------------------
Finally a bit of clarity. So, for WFS 2.0, when and if we implement it,
we're going to use the form suggested by the latest urn best practice.
Cool.
What are we going to do with WFS 1.1 then?
Make it a special case so that we continue to use urn:x-ogc, to avoid
changing our syntax below the client feet, or should we follow suit,
use urn:ogc:def:crs:EPSG::<EPSG code> also in WFS 1.1, get simpler code,
and redirect complaints about the change to OGC?
Cheers
Andrea
-----------------------------------------------------
Ing. Andrea Aime
Senior Software Engineer
GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584962313
fax: +39 0584962313
http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf
-----------------------------------------------------