[OpenLayers-Dev] Format.XML, xmlns and QName

Bart van den Eijnden bartvde at osgis.nl
Thu Sep 2 13:21:05 EDT 2010


Hey Tim,

right that solution would work for me.

I've opened up:
http://trac.openlayers.org/ticket/2819

Best regards,
Bart

-- 
Looking for flexible support on OpenLayers or GeoExt? Please check out http://www.osgis.nl/support.html

Bart van den Eijnden
OSGIS
bartvde at osgis.nl

On Sep 2, 2010, at 7:13 PM, Tim Schaub wrote:

> On 9/2/10 3:31 AM, Bart van den Eijnden (OSGIS) wrote:
>> Hi list,
>> 
>> I've been tracking down a problem in the SOS client, where the XML created
>> had a value which is QName, i.e.:
>> 
>> <resultModel>om:Measurement</resultModel>
>> 
>> However, even though "om" is in the namespaces object of the format,
>> xmlns:om was not added automatically.
>> 
>> Is there a way to do this, similar to what is done for elements which are
>> a QName, where things go okay automatically?
>> 
> 
> The problem is that without a schema, there is no way for the parser to know the type of a text node.  I don't have a good opinion of text nodes of type QName, and I wish they would just go away.  But, assuming that is not going to happen, we could adopt a convention to manually add xmlns attributes for each namespace alias in the namespaces object.  I think this is what other systems do (write an xmlns attribute at the root for every namespace that might possibly appear in the document).
> 
> If the base XML format wrote xmlns attributes in it's write method, other formats could get this for free if they call this method.
> 
> E.g. XML.js ~
> 
>    write: function(node) {
>        for (var alias in this.namespaces) {
>            node.setAttribute("xmlns:" + alias, this.namespaces[alias]);
>        }
>        // ...
> 
> Would that do it for you?
> 
> Tim
> 
>> I now programmatically added the xmlns as a workaround.
>> 
>> Index: lib/OpenLayers/Format/SOSGetObservation.js
>> ===================================================================
>> --- lib/OpenLayers/Format/SOSGetObservation.js  (revision 10712)
>> +++ lib/OpenLayers/Format/SOSGetObservation.js  (working copy)
>> @@ -104,6 +104,7 @@
>>       */
>>      write: function(options) {
>>          var node = this.writeNode("sos:GetObservation", options);
>> +        node.setAttribute("xmlns:om", this.namespaces.om);
>>          this.setAttributeNS(
>>              node, this.namespaces.xsi,
>>              "xsi:schemaLocation", this.schemaLocation
>> 
>> Best regards,
>> Bart
>> 
>> _______________________________________________
>> Dev mailing list
>> Dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/openlayers-dev
> 
> 
> -- 
> Tim Schaub
> OpenGeo - http://opengeo.org
> Expert service straight from the developers.
> _______________________________________________
> Dev mailing list
> Dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-dev
> 



More information about the Dev mailing list