[mapserver-users] WFS layer - XML/JSON safe chars

Even Rouault even.rouault at spatialys.com
Fri Apr 15 07:49:49 PDT 2016


Le vendredi 15 avril 2016 16:41:28, Richard Watson a écrit :
> I am using Map Server 6.4.1.  I have a map project file which has the
> following title:
> 
>   WEB
>     METADATA
>       [ text omitted]
>       "wms_title" "(*#(@#*$_)@#&\\\///"
>     END # METADATA
>   END # WEB
> 
> When a GetCapabilties is done on the project then this is the source XML
> which is returned:
> 
> <Service>
> <Name>WMS</Name>
> <Title>(*#(@#*$_)@#&\\///</Title>
> It seems to be escaping as required.

WMS and WFS 1.0 use MapServer manual XML composition with its own XML escaping 
routines. Some other services (such as WFS 1.1 & 2.0) use libxml (sometimes 
not in an appropriate way).

> 
> On Fri, Apr 15, 2016 at 9:21 AM, Rahkonen Jukka (MML) <
> 
> jukka.rahkonen at maanmittauslaitos.fi> wrote:
> > Hi,
> > 
> > 
> > 
> > I was thinking that the output of GetCapabilities is XML and & must be
> > escaped in XML. So if I write & into the abstract and Mapserver works
> > correctly it should write my test abstract “test ä &”  escaped perhaps as
> > 
> > test ä &
> > 
> > That is the output from the online tool at
> > http://www.freeformatter.com/xml-escape.html#ad-output
> > 
> > 
> > 
> > So my conclusion was that because Mapserver does not do it right here it
> > won’t do it right elsewhere.
> > 
> > 
> > 
> > But now I made another test by editing the Geoserver test file
> > “states.shp” in Spatialite as
> > 
> > UPDATE states set STATE_NAME=’Colo&rado’ WHERE STATE_NAME=’Colorado’;
> > 
> > 
> > 
> > Output of GetFeature from WFS 1.1.0 from Mapserver 7.0.0  includes
> > 
> >      <ms:STATE_NAME>Colo&rado</ms:STATE_NAME>
> > 
> > So my current conclusion is that my Mapserver does not escape “&”
> > correctly when it is used inside a mapfile and when I do GetCapabilities
> > request. However, when data come from Spatialite database and they are
> > consumed by GetFeature then escaping happens correctly.
> > 
> > 
> > 
> > We are still comparing different things because you have PostGIS and I
> > have Spatialite.
> > 
> > 
> > 
> > -Jukka Rahkonen-
> > 
> > 
> > 
> > 
> > 
> > Ian Walberg wrote:
> > 
> > 
> > 
> > Jukka,
> > 
> > 
> > 
> > I am not sure I understand the test you did.
> > 
> > 
> > 
> > The data we are referring to is from the database field for the
> > individual features name.
> > 
> > 
> > 
> > Regards
> > 
> > 
> > 
> > Ian
> > 
> > 
> > 
> > *From:* Rahkonen Jukka (MML) [mailto:jukka.rahkonen at maanmittauslaitos.fi
> > <jukka.rahkonen at maanmittauslaitos.fi>]
> > *Sent:* Thursday, April 14, 2016 10:19 PM
> > *To:* Ian Walberg <ian.walberg at airborne.aero>; MapserverList OSGEO <
> > mapserver-users at lists.osgeo.org>
> > *Subject:* Re: WFS layer - XML/JSON safe chars
> > 
> > 
> > 
> > Hi Ian,
> > 
> > 
> > 
> > Thanks for the clarification.
> > 
> > I made a simple test by adding an abstract into layer metadata. This
> > shows “test ä” as an abstract
> > 
> > "wfs_abstract" "test ä”
> > 
> > 
> > 
> > This one shows an empty abstract
> > 
> > "wfs_abstract" "test ä &"
> > 
> > 
> > 
> > So it looks like Mapserver doesn’t know to convert “&” into “&” for
> > XML.
> > 
> > 
> > 
> > -Jukka Rahkonen-
> > 
> > 
> > 
> > Ian Walberg wrote:
> > 
> > 
> > 
> > Jukka,
> > 
> > 
> > 
> > Our question was for the data/text read from the database and then
> > published as XML by the WFS service.
> > 
> > 
> > 
> > So a pub with the name ‘Dog & bone’ created illegal xml as the & is not
> > converted to &
> > 
> > 
> > 
> > Regards
> > 
> > 
> > 
> > Ian
> > 
> > 
> > 
> > *From:* Rahkonen Jukka (MML) [mailto:jukka.rahkonen at maanmittauslaitos.fi
> > <jukka.rahkonen at maanmittauslaitos.fi>]
> > *Sent:* Thursday, April 14, 2016 3:10 PM
> > *To:* Ian Walberg <ian.walberg at airborne.aero>; MapserverList OSGEO <
> > mapserver-users at lists.osgeo.org>
> > *Subject:* Re: WFS layer - XML/JSON safe chars
> > 
> > 
> > 
> > Hi,
> > 
> > 
> > 
> > You can’t have & in feature type names or attribute names in WFS because
> > they are defined in the XML schema to be “QName”. The prefix and
> > LocalPart are of type NCName https://en.wikipedia.org/wiki/QName and
> > from
> > http://stackoverflow.com/questions/1631396/what-is-an-xsncname-type-and-w
> > hen-should-it-be-used
> > 
> > 
> > 
> > The practical restrictions of NCName are that it cannot contain several
> > symbol characters like :, @, $, %, &, /, +, ,, ;, whitespace characters
> > or different parenthesis. Furthermore an NCName cannot begin with a
> > number, dot or minus character although they can appear later in an
> > NCName.
> > 
> > 
> > 
> > -Jukka Rahkonen-
> > 
> > 
> > 
> > *Lähettäjä:* mapserver-users [
> > mailto:mapserver-users-bounces at lists.osgeo.org
> > <mapserver-users-bounces at lists.osgeo.org>] *Puolesta *Ian Walberg
> > *Lähetetty:* 14. huhtikuuta 2016 19:23
> > *Vastaanottaja:* MapserverList OSGEO
> > *Aihe:* [mapserver-users] WFS layer - XML/JSON safe chars
> > 
> > 
> > 
> > Folks,
> > 
> > 
> > 
> > Can mapserver produce XML or JSON safe characters for WFS served data or
> > do we need to ensure the source data has the escaped values.
> > 
> > 
> > 
> > We got tripped up today as there were some ‘&’ in our names which we had
> > not considered.
> > 
> > 
> > 
> > Thanks
> > 
> > 
> > 
> > Ian
> > 
> > _______________________________________________
> > mapserver-users mailing list
> > mapserver-users at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/mapserver-users

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the mapserver-users mailing list