Geoserver 2.15.1加载山体阴影tif栅格SLD样式报错咨询
报错原因
SLD 1.0 规范中定义的 <sld:Normalize> 标签本身是空类型元素,不允许包含任何子节点或文本内容。你将自定义拉伸参数的 <sld:VendorOption> 写在了 <sld:Normalize> 内部,触发了XML Schema校验失败。
解决方法
- 将
<sld:VendorOption>节点从<sld:Normalize>内部移到<sld:ContrastEnhancement>节点下,和<sld:Normalize>平级即可,GeoServer 会自动识别这组参数是应用在归一化对比度增强逻辑上的。 - 如果不需要显式声明归一化方式,也可以直接移除空的
<sld:Normalize>标签,仅保留VendorOption即可生效。
修正后的完整SLD代码如下:
<?xml version="1.0" encoding="UTF-8"?> <StyledLayerDescriptor xmlns="http://www.opengis.net/sld" version="1.0.0" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc"> <UserLayer> <sld:LayerFeatureConstraints> <sld:FeatureTypeConstraint/> </sld:LayerFeatureConstraints> <sld:UserStyle> <sld:Name>hill_22</sld:Name> <sld:FeatureTypeStyle> <sld:Rule> <sld:RasterSymbolizer> <sld:Opacity>0.2</sld:Opacity> <sld:ChannelSelection> <sld:GrayChannel> <sld:SourceChannelName>1</sld:SourceChannelName> <sld:ContrastEnhancement> <!-- Normalize作为空元素单独声明 --> <sld:Normalize/> <!-- VendorOption移至ContrastEnhancement下平级放置 --> <sld:VendorOption name="algorithm">StretchToMinimumMaximum</sld:VendorOption> <sld:VendorOption name="minValue">1</sld:VendorOption> <sld:VendorOption name="maxValue">181</sld:VendorOption> </sld:ContrastEnhancement> </sld:GrayChannel> </sld:ChannelSelection> <sld:ColorMap> <sld:ColorMapEntry quantity="0" color="#000000"/> <sld:ColorMapEntry quantity="255" color="#ffffff"/> </sld:ColorMap> </sld:RasterSymbolizer> </sld:Rule> </sld:FeatureTypeStyle> </sld:UserStyle> </UserLayer> </StyledLayerDescriptor>
内容的提问来源于stack exchange,提问作者Galo Romero García
相关产品推荐
相关产品推荐

