[Mapbender-users] problem with sld editor and geoserver

Christoph Baudson christoph.baudson at wheregroup.com
Wed Nov 10 11:21:25 EST 2010


Thanks for your work Michael :-) Is it something we could use in trunk?

Christoph


Michael Schulz wrote:
> Hi Karim and Zorg,
>
> ok, I could narrow down the problem a little and did some workarounds
> to see whether it would work at all:
>
> - after eliminating the namespace problem (use xml_parser_create_ns)
> it did turn out that Geoserver unlike Mapserver uses <ogc:literal>
> element e.g. for the Value of <size>. So far the Literal tag was only
> handled in the filter parser... And Geoserver uses the <isdefault> tag
> which wasn't treated either.
>
> This small patch should at least get the SLD-Editor to parse the SLD
> and display most of its contents, but the value e.g. of a <size> tag
> is not evaluated since it sits inside a literal. Thus changing the SLD
> and using the changed SLD with Geoserver will likely not work.
> Therefore the new or rather unhandled tags have to be taken into
> account and the object modell has to be adapted accordingly.
>
> Cheers, Michael
>
> Here is the patch-diff:
>
> +++ sld_parse.php       (Arbeitskopie)
> @@ -90,7 +90,7 @@
>   */
>  function parseSld($data)
>  {
> -       $xml_parser = xml_parser_create();
> +       $xml_parser = xml_parser_create_ns();
>         xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 0);
>         xml_parse_into_struct($xml_parser, $data, $vals, $index);
>         xml_parser_free($xml_parser);
> @@ -99,11 +99,12 @@
>         $parent = array();
>         $objects = array();
>         $parentactual = 0;
> -
> +
>         for ($i=0; $i<count($vals); $i++)
>         {
>                 $element = $vals[$i];
> -               $tag = $element["tag"];
> +               $tagAr = explode(":",$element["tag"]);
> +               $tag = count($tagAr)>1?$tagAr[2]:$tagAr[0];
>                 $tagname=strtoupper($tag);
>                 switch($tagname)
>                 {
> @@ -859,6 +860,10 @@
>                         //END TODO
>                         //von den vorhergegangenen XML Elementen
>
> +                       // we have some new tags... as a workaround skip them
> +                       case "LITERAL":
> +                       case "ISDEFAULT":
> +                               break;
>
>                         default:
>                                         $temp = "";
> --------- end of patch
>
>
> 2010/11/10 Michael Schulz <mschulz at webgis.de>:
>   
>> Hi Karim,
>>
>> the sld parser, was done the same way the older versions of the wms
>> parsing were. The first and presumably not too complicated issue to
>> overcome is namespace support. The next issue is the supported sld
>> features problem. Since it was originally done for mapserver, it
>> covers basically mapserver sld functionality and only geoserver sld
>> where it overlaps. Although we're talking OGC standards (in my
>> experience) the SLD implementation varies from WMS to WMS in some
>> points, which can make parsing an sld pretty complicated (e.g. see an
>> example for that on the discussion page of the SLD integration
>> http://www.mapbender.org/Talk:Sld_integration)
>>
>> I currently checking whether the namespace issue is easy to fix and
>> will come back with an answer later ...
>>
>> Cheers, Michael
>>
>> 2010/11/10 Karim Malhas <karim at malhas.de>:
>>     
>>> Hello Michael,
>>>
>>>       
>>>> ok, I could reproduce this behaviour with MB 2.7 also. This is a
>>>> problem of the SLD parser (it has nothing to do with the wfs_conf
>>>> assignment to a wms layer). The SLD-Editor has been initially
>>>> developed and tested for Mapserver. I have done some things to be able
>>>> to handle also GeoServer, but that was for GS 1.6/1.7 and especially
>>>> prior to GS supporting the getStyles request.
>>>>
>>>> I think from GS 2 onwards the getStyles request is supported but the
>>>> SLD parser is currently not able to cope with it. This would mean it
>>>> will need to be overhauled for this requirement. Unfortunately I don't
>>>> have enough ressources at the moment to do this.
>>>>         
>>> Do you have a specific example of where the parsing fails ? No time to
>>> fix here, just curious.
>>>
>>> Regards,
>>> Karim
>>>
>>> _______________________________________________
>>> Mapbender_users mailing list
>>> Mapbender_users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapbender_users
>>>
>>>       
>>
>> --
>> -----------------------------------------------------------
>> Michael Schulz
>> mschulz at webgis.de
>>
>> in medias res
>> Gesellschaft für Informationstechnologie mbH
>>
>> Schwimmbadstraße 2
>> D-79100  Freiburg i. Br.
>>
>> Tel:  +49 (0)761 705798-102
>> Tel:  +49 (0)761 705798-0
>> Fax: +49 (0)761 705798-09
>>
>> http://www.webgis.de / http://www.zopecms.de
>> --------------------------------------------------------------
>> Geschäftsführer: Stefan Giese, Dr. Christof Lindenbeck
>> Eingetragen im Handelsregister HRB 5930 beim Amtsgericht Freiburg
>>
>>     
>
>
>
>   


-- 

********************************************
Where2B Konferenz 2010
09. Dezember 2010 in Bonn
www.where2b-conference.com
******************************************** 

----------------------------------

Aufwind durch Wissen!

Qualifizierte OpenSource-Schulungen
bei der www.foss-academy.eu

---------------------------------- 

_______________________________________

W h e r e G r o u p GmbH & Co. KG

Siemensstraße 8
53121 Bonn
Germany

Christoph Baudson
Anwendungsentwickler

Fon: +49 (0)228 / 90 90 38 - 15
Fax: +49 (0)228 / 90 90 38 - 11
christoph.baudson at wheregroup.com
www.wheregroup.com
Amtsgericht Bonn, HRA 6788
_______________________________________

Komplementärin:
WhereGroup Verwaltungs GmbH
vertreten durch:
Olaf Knopp, Peter Stamm
_______________________________________ 



More information about the Mapbender_users mailing list