[Geoserver-devel] WMS Styles (SLD) and Filter

Hi,

I have done some experiments with SLD-files and Filter.
I think I have found one bug, and I'm also a little confused about how to
specify my PropertyName's.

Input:
-table named world and column named gid (primary key, integer).
-layer is named gis:world

PropertyName issue:
This SLD returns a white/blank image, do you know/see why?

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="0.7.2">
<NamedLayer>
<Name>A Test Layer</Name>
<title>The title of the layer</title>
<abstract>
A styling layer used for the unit tests of sldstyler
</abstract>
<UserStyle>
  <Name>polyshp</Name>
    <FeatureTypeStyle>
      <FeatureTypeName>gis:world</FeatureTypeName>
      <Rule>
  <Filter>
  <PropertyIsGreaterThanOrEqualTo>
      <PropertyName>gid</PropertyName>
            <Literal>251</Literal>
        </PropertyIsGreaterThanOrEqualTo>
    </Filter>
        <PolygonSymbolizer>
         <Fill>
                <CssParameter name="fill">#66FF66</CssParameter>
         </Fill>
            <Stroke/>
        </PolygonSymbolizer>
      </Rule>
      <Rule>
  <Filter>
  <PropertyIsLessThan>
      <PropertyName>gid</PropertyName>
            <Literal>251</Literal>
        </PropertyIsLessThan>
        </Filter>
        <PolygonSymbolizer>
         <Fill>
            <CssParameter name="fill">#660066</CssParameter>
         </Fill>
            <Stroke/>
        </PolygonSymbolizer>
      </Rule>
    </FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>

The possible bug:
<ElseFilter/> doesn't seem to work as it should.

SLD:
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="0.7.2">
<NamedLayer>
<Name>A Test Layer</Name>
<title>The title of the layer</title>
<abstract>
A styling layer used for the unit tests of sldstyler
</abstract>
<UserStyle>
  <Name>polyshp</Name>
    <FeatureTypeStyle>
      <FeatureTypeName>feature</FeatureTypeName>
      <Rule>
        <Filter>
      <FeatureId fid="world.257"/>
        </Filter>
        <PolygonSymbolizer>
         <Fill>
                <CssParameter name="fill">#66FF66</CssParameter>
         </Fill>
            <Stroke/>
        </PolygonSymbolizer>
      </Rule>
      <Rule>
         <ElseFilter/>
        <PolygonSymbolizer>
         <Fill>
                <CssParameter name="fill">#660066</CssParameter>
         </Fill>
            <Stroke/>
        </PolygonSymbolizer>
      </Rule>
    </FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>

should be the same as (but it isn't, the first Filter it not considered by
GeoServer, only the ElseFilter):

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="0.7.2">
<NamedLayer>
<Name>A Test Layer</Name>
<title>The title of the layer</title>
<abstract>
A styling layer used for the unit tests of sldstyler
</abstract>
<UserStyle>
  <Name>polyshp</Name>
    <FeatureTypeStyle>
      <FeatureTypeName>feature</FeatureTypeName>
      <Rule>
        <Filter>
      <FeatureId fid="world.257"/>
        </Filter>
        <PolygonSymbolizer>
         <Fill>
                <CssParameter name="fill">#66FF66</CssParameter>
         </Fill>
            <Stroke/>
        </PolygonSymbolizer>
      </Rule>
      <Rule>
         <Filter>
            <Not>
      <FeatureId fid="world.257"/>
      </Not>
        </Filter>
        <PolygonSymbolizer>
         <Fill>
                <CssParameter name="fill">#660066</CssParameter>
         </Fill>
            <Stroke/>
        </PolygonSymbolizer>
      </Rule>
    </FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>

Regards
Jørn