<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Jul 23, 2016 at 2:53 PM, Andrea Aime <span dir="ltr"><<a href="mailto:andrea.aime@geo-solutions.it" target="_blank">andrea.aime@geo-solutions.it</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div>I'm looking into improving the SLD export, and stumbled into a schema violation</div><div>that, if fixed, may cause other regression.</div><div>In particular, the root element StyledLayerDescriptor contains a "units" attribute that</div><div>is not part of the SLD/SE specification, and thus makes validation fail:</div><div><br></div><div><div><?xml version="1.0" encoding="UTF-8"?></div><div><StyledLayerDescriptor xmlns="<a href="http://www.opengis.net/sld" target="_blank">http://www.opengis.net/sld</a>" xmlns:ogc="<a href="http://www.opengis.net/ogc" target="_blank">http://www.opengis.net/ogc</a>" xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>" version="1.1.0" xmlns:xlink="<a href="http://www.w3.org/1999/xlink" target="_blank">http://www.w3.org/1999/xlink</a>" <b>units="mm" </b>xsi:schemaLocation="<a href="http://www.opengis.net/sld" target="_blank">http://www.opengis.net/sld</a> <a href="http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" target="_blank">http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd</a>" xmlns:se="<a href="http://www.opengis.net/se" target="_blank">http://www.opengis.net/se</a>"></div><div>   ...</div><div></StyledLayerDescriptor><br></div><div><br></div><div>It's in particular the units="mm" element. Checking the git history I found it has been introduced by this commit:</div><div><br></div><div>---------------------</div><div><br></div><div><div>b54b159 - rldhont <<a href="mailto:rldhont@gmail.com" target="_blank">rldhont@gmail.com</a>> 23-ott-2015</div><div>[BUGFIX] Set default units to mm in exportSld</div><div><br></div><div>The default units in QgsMapRenderer is Millimeters. The default units in SLD</div><div> is Pixel but exportSld does not convert all millimeters in pixels.</div><div><br></div><div>We notes this bug by comparing default QGS Server rendering and rendering with</div><div> the SLD generated by QGIS.</div><div><br></div><div>To resolve it, we just have to add units to the document element.</div></div><div><br></div><div>---------------------</div><div><br></div><div>The above comments seems to suggest something is actually using that attribute, but I'm not sure what.</div><div><br></div><div>Mind, GeoServer can parse the file the same, but if users try to validate it (there is a validation button in the style editor), they will get the following error:</div><div><br></div><div>"ine 2: cvc-complex-type.3.2.2: Attribute 'units' is not allowed to appear in element 'StyledLayerDescriptor'."</div><div><br></div><div>Also, the attribute per se does nothing in a compliant client, since SLD 1.1 lacks the very concept of "on screen unit", the uom allowed</div><div>are pixel (on screen), meter (on ground), feet (on ground).</div><div>A SLD export trying to be compliant should convert mm to pixels assuming some DPI conversion factor (which means,</div><div>making many changes around... bummer). I see there is already a uomScale in the conversion properties, but I see it's not</div><div>used for point symbol sizes (as the commit message says.. I actually don't see it being used anywhere).</div><div><br></div><div>Would it be ok to remove that attribute and use uomScale to properly adapt sizes from mm to px instead?</div><div><br></div><div>Cheers</div><div>Andrea</div><div><br></div>-- <br><div data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><div><div>==</div><div>GeoServer Professional Services from the experts! Visit</div><div><a href="http://goo.gl/it488V" target="_blank">http://goo.gl/it488V</a> for more information.</div><div><span style="font-size:12.8px">==</span><br></div></div><div><br></div></div><div>Ing. Andrea Aime <br></div><div>@geowolf</div><div>Technical Lead</div><div><br></div><div><span style="font-size:12.8px">GeoSolutions S.A.S.</span><br style="font-size:12.8px"><span style="font-size:12.8px">Via di Montramito 3/A</span><br style="font-size:12.8px"><span style="font-size:12.8px">55054  Massarosa (LU)</span></div><div><span style="font-size:12.8px">phone: <a href="tel:%2B39%200584%20962313" value="+390584962313" target="_blank">+39 0584 962313</a></span><br></div><div>fax: <a href="tel:%2B39%200584%201660272" value="+3905841660272" target="_blank">+39 0584 1660272</a></div><div>mob: <a href="tel:%2B39%20%C2%A0339%208844549" value="+393398844549" target="_blank">+39  339 8844549</a></div><div><br></div><div><a href="http://www.geo-solutions.it" target="_blank">http://www.geo-solutions.it</a></div><div><a href="http://twitter.com/geosolutions_it" target="_blank">http://twitter.com/geosolutions_it</a></div><br clear="all"></div></div></div></div></div></div></div></div></div></div></div></div></blockquote></div><br><br></div><div class="gmail_extra">Hi,<br><br></div><div class="gmail_extra">I noticed the same 'uom' mm problem when I tested the SLD converting routines used by GeoServer Explorer plugin a couple of months ago, thank for bringing up this issue.<br><br></div><div class="gmail_extra">Your proposed solution makes perfectly sense to me. <br><br></div><div class="gmail_extra">Did you check if is there already an issue on <a href="http://hub.qgis.org">hub.qgis.org</a>?<br></div><div class="gmail_extra"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Alessandro Pasotti<br>w3:   <a href="http://www.itopen.it" target="_blank">www.itopen.it</a></div>
</div></div>