[Gfoss] SLD [era Re: veneto e geomedia]

Andrea Aime aaime a openplans.org
Mer 28 Nov 2007 10:29:48 CET


Piergiorgio Cipriano ha scritto:
> Andrea: un SLD generato da UDIG viene recuperato correttamente da GeoServer?
> 
> Mi è capitato di fare qualche prova in gvSIG 1.1, ma salvando un SLD non 
> riesco a recuperarlo in un secondo momento (messaggio: "File non 
> corretto") !!!
> UDIG sembra funzionare meglio: salvo SLD e lo recupero senza problemi.
> 
> Un SLD generato con gvSIG non viene ricuperato da UDIG.
> Un SLD generato con UDIG non viene ricuperato da gvSIG.
> 
> Un pezzo di SLD generato da gvSIG:
>                 <Rule>
>                     <Name>11.0 - 108.8</Name>
>                     <Filter>
>                         <And>
>                             <PropertyIsGreaterThanOrEqualTo>
>                                 <PropertyName>VALORE_1</PropertyName>
>                                 <Literal>11.0 </Literal>
>                             </PropertyIsGreaterThanOrEqualTo>
>                             <PropertyIsLessThanOrEqualTo>
>                                 <PropertyName>VALORE_1</PropertyName>
>                                 <Literal>108.8 </Literal>
>                             </PropertyIsLessThanOrEqualTo>
>                         </And>
>                         <PolygonSymbolizer>
>                             <Fill>
>                                 <CssParameter 
> name="fill">#CCCCCC</CssParameter>
>                             </Fill>
>                             <Stroke>
>                                 <CssParameter 
> name="stroke">#8E8E8E</CssParameter>
>                                 <CssParameter 
> Name="stroke-width">1.0</CssParameter>
>                             </Stroke>
>                         </PolygonSymbolizer>
>                     </Filter>
>                 </Rule>

Piergiorgio, grazie per avermi inviato un sld completo generato da
gvSig. Messo dentro un editor xml validante, e aggiunti gli header
necessari per dargli una schema location ti posso confermare che
l'SLD generato da gvSig non è XML conforme allo schema SLD...
gli mancano tutti i prefissi! (potevo accorgermente anche
guardando lo schema di cui sopra).

Molti documenti OGC prendono elementi da namespace diversi, e
di conseguenza occorre mettere il prefisso almeno agli elementi
che stanno in un namespace diverso da quello del documento
che viene letto (uDig li mette tutti, ma non è strettamente necessario).

Una intestazione valida e completa per un documento SLD è:

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0"  xmlns="http://www.opengis.net/sld"
   xmlns:ogc="http://www.opengis.net/ogc"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.opengis.net/sld 
http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">

Questa permette la validazione da parte di un editor validante. Ora,
gli elementi Filter, And, Listeral, PropertyIsLessThanOrEqualTo,
ecc ecc vanno prefissati da ogc, ovvero ogc:Filter perchè sono definiti
in quel namespace.
Poi ci sono altri errori, ad esempio:
CssParameter Name="stroke-width">1.0</CssParameter>
è invalido perchè l'attributo è "name", non "Name" (xml schema è case
sensitive).

Chi può fare il bug report? Non sono sulle ml di gvSig.
Ciao
Andrea



Maggiori informazioni sulla lista Gfoss