<P>I found a more elegant solution to the "workaround".  Instead of creating the file on the server, I just use the URL of a JSP that writes the SLD to its response.  Don't know why I didn't think of that before.  Guess I was too busy trying to hack my way out of the weeds.</p>

<p>Anyway, for posterity, here is the new mergeNewParams line:</p>

<pre>
<codeblock>
   myLayer.mergeNewParams({ SLD: "http://localhost:8080/MyMapApp/SldGenerator.jsp" });
</codeblock>
</pre>

<p>And here is the Jsp.  Although I have not yet written the business rule code to "dynamically" create the SLD, this page exemplifies how you can write it back out once you do.</p>

<pre>
<codeblock>
   &lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" session="true" import="java.io.OutputStream"%&gt;
   &lt;%
      StringBuilder strBuilder = new StringBuilder( "&lt;sld:StyledLayerDescriptor" );
      strBuilder.append( "   xmlns:sld=\"http://www.opengis.net/sld\"" );
      strBuilder.append( "   version=\"1.0.0\"" );
      strBuilder.append( "   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" );
      strBuilder.append( "   xsi:schemaLocation=\"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd\"" );
      strBuilder.append( "   xmlns:ogc=\"http://www.opengis.net/ogc\"" );
      strBuilder.append( "   xmlns:gml=\"http://www.opengis.net/gml\"&gt;" );
      strBuilder.append( "   &lt;sld:NamedLayer&gt;" );
      strBuilder.append( "      &lt;sld:Name&gt;MyWorkspace:MyLayer&lt;/sld:Name&gt;" );
      strBuilder.append( "      &lt;sld:UserStyle&gt;" );
      strBuilder.append( "         &lt;sld:FeatureTypeStyle&gt;" );
      strBuilder.append( "            &lt;sld:Rule&gt;" );
      strBuilder.append( "               &lt;ogc:Filter&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.1\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.2\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.3\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.4\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.5\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.6\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.7\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.8\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.9\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.10\"/&gt;" );
      strBuilder.append( "               &lt;/ogc:Filter&gt;" );
      strBuilder.append( "               &lt;sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "                  &lt;sld:Fill&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill\"&gt;#0000FF&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill-opacity\"&gt;0.8&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Fill&gt;" );
      strBuilder.append( "                  &lt;sld:Stroke&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke\"&gt;#000080&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-opacity\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-width\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Stroke&gt;" );
      strBuilder.append( "               &lt;/sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "            &lt;/sld:Rule&gt;" );
      strBuilder.append( "            &lt;sld:Rule&gt;" );
      strBuilder.append( "               &lt;ogc:Filter&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.11\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.12\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.13\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.14\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.15\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.16\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.17\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.18\"/&gt;" );
      strBuilder.append( "               &lt;/ogc:Filter&gt;" );
      strBuilder.append( "               &lt;sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "                  &lt;sld:Fill&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill\"&gt;#FF0000&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill-opacity\"&gt;0.8&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Fill&gt;" );
      strBuilder.append( "                  &lt;sld:Stroke&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke\"&gt;#800000&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-opacity\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-width\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Stroke&gt;" );
      strBuilder.append( "               &lt;/sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "            &lt;/sld:Rule&gt;" );
      strBuilder.append( "            &lt;sld:Rule&gt;" );
      strBuilder.append( "               &lt;ogc:Filter&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.19\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.20\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.21\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.22\"/&gt;" );
      strBuilder.append( "               &lt;/ogc:Filter&gt;" );
      strBuilder.append( "               &lt;sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "                  &lt;sld:Fill&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill\"&gt;#00FF00&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill-opacity\"&gt;0.8&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Fill&gt;" );
      strBuilder.append( "                  &lt;sld:Stroke&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke\"&gt;#008000&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-opacity\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-width\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Stroke&gt;" );
      strBuilder.append( "               &lt;/sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "            &lt;/sld:Rule&gt;" );
      strBuilder.append( "            &lt;sld:Rule&gt;" );
      strBuilder.append( "               &lt;ogc:Filter&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.23\"/&gt;" );
      strBuilder.append( "               &lt;/ogc:Filter&gt;" );
      strBuilder.append( "               &lt;sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "                  &lt;sld:Fill&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill\"&gt;#FFFF00&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill-opacity\"&gt;0.8&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Fill&gt;" );
      strBuilder.append( "                  &lt;sld:Stroke&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke\"&gt;#808000&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-opacity\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-width\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Stroke&gt;" );
      strBuilder.append( "               &lt;/sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "            &lt;/sld:Rule&gt;" );
      strBuilder.append( "            &lt;sld:Rule&gt;" );
      strBuilder.append( "               &lt;ogc:Filter&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.24\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.25\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.26\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.27\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.28\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.29\"/&gt;" );
      strBuilder.append( "               &lt;/ogc:Filter&gt;" );
      strBuilder.append( "               &lt;sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "                  &lt;sld:Fill&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill\"&gt;#FF007F&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill-opacity\"&gt;0.8&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Fill&gt;" );
      strBuilder.append( "                  &lt;sld:Stroke&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke\"&gt;#C71585&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-opacity\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-width\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Stroke&gt;" );
      strBuilder.append( "               &lt;/sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "            &lt;/sld:Rule&gt;" );
      strBuilder.append( "            &lt;sld:Rule&gt;" );
      strBuilder.append( "               &lt;ogc:Filter&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.30\"/&gt;" );
      strBuilder.append( "               &lt;/ogc:Filter&gt;" );
      strBuilder.append( "               &lt;sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "                  &lt;sld:Fill&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill\"&gt;#FFC0CB&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill-opacity\"&gt;0.8&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Fill&gt;" );
      strBuilder.append( "                  &lt;sld:Stroke&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke\"&gt;#FF3E96&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-opacity\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-width\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Stroke&gt;" );
      strBuilder.append( "               &lt;/sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "            &lt;/sld:Rule&gt;" );
      strBuilder.append( "            &lt;sld:Rule&gt;" );
      strBuilder.append( "               &lt;ogc:Filter&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.31\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.32\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.33\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.34\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.35\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.36\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.37\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.38\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.39\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.40\"/&gt;" );
      strBuilder.append( "               &lt;/ogc:Filter&gt;" );
      strBuilder.append( "               &lt;sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "                  &lt;sld:Fill&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill\"&gt;#800080&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill-opacity\"&gt;0.8&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Fill&gt;" );
      strBuilder.append( "                  &lt;sld:Stroke&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke\"&gt;#68228B&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-opacity\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-width\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Stroke&gt;" );
      strBuilder.append( "               &lt;/sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "            &lt;/sld:Rule&gt;" );
      strBuilder.append( "            &lt;sld:Rule&gt;" );
      strBuilder.append( "               &lt;ogc:Filter&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.41\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.42\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.43\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.44\"/&gt;" );
      strBuilder.append( "                  &lt;ogc:FeatureId fid=\"MyLayer.45\"/&gt;" );
      strBuilder.append( "               &lt;/ogc:Filter&gt;" );
      strBuilder.append( "               &lt;sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "                  &lt;sld:Fill&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill\"&gt;#C00000&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill-opacity\"&gt;0.8&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Fill&gt;" );
      strBuilder.append( "                  &lt;sld:Stroke&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke\"&gt;#FF1CAE&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-opacity\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-width\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Stroke&gt;" );
      strBuilder.append( "               &lt;/sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "            &lt;/sld:Rule&gt;" );
      strBuilder.append( "            &lt;sld:Rule&gt;" );
      strBuilder.append( "               &lt;sld:ElseFilter/&gt;" );
      strBuilder.append( "               &lt;sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "                  &lt;sld:Fill&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill\"&gt;#00FFFF&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"fill-opacity\"&gt;0.8&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Fill&gt;" );
      strBuilder.append( "                  &lt;sld:Stroke&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke\"&gt;#0000FF&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-opacity\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                     &lt;sld:CssParameter name=\"stroke-width\"&gt;1&lt;/sld:CssParameter&gt;" );
      strBuilder.append( "                  &lt;/sld:Stroke&gt;" );
      strBuilder.append( "               &lt;/sld:PolygonSymbolizer&gt;" );
      strBuilder.append( "            &lt;/sld:Rule&gt;" );
      strBuilder.append( "         &lt;/sld:FeatureTypeStyle&gt;" );
      strBuilder.append( "      &lt;/sld:UserStyle&gt;" );
      strBuilder.append( "   &lt;/sld:NamedLayer&gt;" );
      strBuilder.append( "&lt;/sld:StyledLayerDescriptor&gt;" );

      OutputStream oOutputStream = response.getOutputStream();
      oOutputStream.write( strBuilder.toString().getBytes() );
      oOutputStream.flush();
   %&gt;
</codeblock>
</pre>

        <div class="signature">Up the Irons!!!</div>
<br/><hr align="left" width="300" />
View this message in context: <a href="http://osgeo-org.1803224.n2.nabble.com/OpenLayers-SLD-Bug-tp6453498p6461977.html">Re: OpenLayers SLD Bug?</a><br/>
Sent from the <a href="http://osgeo-org.1803224.n2.nabble.com/OpenLayers-Users-f1822463.html">OpenLayers Users mailing list archive</a> at Nabble.com.<br/>