2016-03-22 5 views
1

Ich habe die ol.format.WFS # writeTransaction-Methode erfolgreich verwendet, um die WFS-t-XML für eine -Operation an GeoServer zu serialisieren, aber wenn ich versuchen, die gleiche Sache für eine update Operation die Methode erzeugt eine ungültige WFS-t-Anfrage. Ist es möglich, dass ich das ol.format.WFS-Objekt falsch initialisiere? Oder übergebe ich vielleicht die falschen Optionen an die writeTransaction-Methode? Oder vielleicht ist es ein Fehler in OpenLayers3? Hieropenlayers 3 ol.format.WFS writeTransaction erzeugt falsches XML für einfache UPDATE-Transaktion

ist der Kern meiner Javascript:

var wfst = new ol.format.WFS({ 
    featureNS: "mypoints", 
    featureType: "test_points" 
}); 
var options = { 
    gmlOptions: {srsName: "EPSG:3857"}, 
    featureNS: "mypoints", 
    featureType: "test_points" 
}; 
var node = wfst.writeTransaction(null, [thePoint], null, options); 
var shouldBeValidXML = new XMLSerializer().serializeToString(node) 

Hier ist ein Beispiel für die XML, dass produziert:

<Transaction xmlns="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <Update typeName="feature:test_points" xmlns:feature="mypoints"> 
    <Property> 
     <Name>geometry</Name> 
     <Value> 
     <Point xmlns="http://www.opengis.net/gml" srsName="EPSG:3857"><pos>-10606301.721251432 4226568.758428884</pos></Point> 
     </Value> 
    </Property> 
    <Filter xmlns="http://www.opengis.net/ogc"> 
     <FeatureId fid="test_points.fid--62e21e8_153971e1869_-7ffe"/> 
    </Filter> 
    </Update> 
</Transaction> 

Das Problem ist in Zeile 2, wo es heißt:

<Update typeName="feature:test_points" xmlns:feature="mypoints"> 

Das macht GeoServer werfen NoApplicableCodeException, die wiederum irgendwie mit einem generischen java.lang.NullPointerException verwandt ist. jedoch, wenn ich diese Zeile mit der folgenden ersetzen, arbeitet die Anfrage schön:

<Update typeName="mypoints:test_points"> 

Meine spezifische Fragen sind wie folgt:

  • Ist typeName="mypoints:test_points" tatsächlich der richtige Weg, um die Anforderung zu bilden?
  • Wenn ja, was mache ich falsch mit ol.format.WFS, um dieses schlechte XML zu bekommen? Woher kommt feature?

Vielen Dank im Voraus!

Antwort

1

featureNS: "mypoints" falsch ist, sollten Sie einen URI statt

+0

Dank verwenden! Das war genau das Problem. – zsnyder