Hi!

This isn't the first question here about inserting features in TinyOWS, but I 
haven't found solution to my problem in archives.

The working environment is OpenLayers 2.13dev + TinyOWS from github + PostGIS 
2.0 + PostgreSQL 9.2

Relevant js-code is:

    var POINT = 1;
    var save_objs_strategy = new OpenLayers.Strategy.Save(
    { "saves_what": "cities" });
    var cities = new OpenLayers.Layer.Vector(
    'Города', {
        strategies: [new OpenLayers.Strategy.BBOX(), 
             save_objs_strategy],
        protocol: new OpenLayers.Protocol.WFS(
        {
            version: "1.1.0",
            url: "http://localhost/mapserver/tinyows";,
            featureType: "cities",
            featureNS: "http://www.tinyows.org";,
            geometryName: "geom",
            outputFormat: "JSON",
            schema: 
"http://localhost/mapserver/tinyows?service=wfs&request=DescribeFeatureType&version=1.1.0&typename=tows:cities";
        })
    }
    );

    var draw = new OpenLayers.Control.DrawFeature(
    cities, OpenLayers.Handler.Point,
    {
            title: "Создание объектов",
            displayClass: "olControlDrawFeaturePoint"
    }
    );
    draw.events.on(
    {
        "featureadded": function(e) {
        var attrs = e.feature.attributes;
        attrs.pop_hk = 99;
        attrs.city_name = "Новый город";
        attrs.type_id = POINT;
        save_objs_strategy.save();
        }
    });

Adding a vector point feature (city) somewhere on the map creates the following 
XML request to tinyows:



<wfs:Transaction xmlns:wfs="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 http://www.tinyows.org   
http://localhost/mapserver/tinyows?service=wfs&amp;request=DescribeFeatureType&amp;version=1.1.0&amp;typename=tows:cities";
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>


<wfs:Insert>


<feature:cities xmlns:feature="http://www.tinyows.org";>


<feature:geom>


<gml:Point xmlns:gml="http://www.opengis.net/gml"; srsName="EPSG:4326">


<gml:pos>37.962548828124 55.22265625</gml:pos>
</gml:Point>
</feature:geom>

<feature:pop_hk>99</feature:pop_hk>

<feature:city_name>Новый город</feature:city_name>

<feature:type_id>1</feature:type_id>
</feature:cities>
</wfs:Insert>
</wfs:Transaction>
The request fails with the following string in tinyows.log:

[Wed Nov  7 19:55:01 2012] [ERROR] Element '{http://www.tinyows.org}cities': 
This element is not expected. Expected is one of ( 
{http://www.opengis.net/gml}_Feature, 
{http://www.opengis.net/gml}FeatureCollection, 
{http://www.opengis.net/gml}MultiPointCoverage, 
{http://www.opengis.net/gml}MultiCurveCoverage, 
{http://www.opengis.net/gml}MultiSurfaceCoverage, 
{http://www.opengis.net/gml}MultiSolidCoverage, 
{http://www.opengis.net/gml}GridCoverage, 
{http://www.opengis.net/gml}RectifiedGridCoverage, 
{http://www.opengis.net/gml}Observation, 
{http://www.opengis.net/gml}DirectedObservation ).

This seems a little bit cryptic to me because the "schema" parameter in js-code 
(http://localhost/mapserver/tinyows?service=wfs&amp;request=DescribeFeatureType&amp;version=1.1.0&amp;typename=tows:cities)
 returns the following xsd:

<xs:schema targetNamespace="http://www.tinyows.org/"; 
elementFormDefault="qualified" version="1.1"><xs:import 
namespace="http://www.opengis.net/gml"; 
schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd"/><xs:element 
name="cities" type="tows:citiesType" 
substitutionGroup="gml:_Feature"/><xs:complexType 
name="citiesType"><xs:complexContent><xs:extension 
base="gml:AbstractFeatureType"><xs:sequence><xs:element name="pop_hk" 
type="int" nillable="true" minOccurs="0" maxOccurs="1"/><xs:element 
name="city_name" nillable="false" minOccurs="1" 
maxOccurs="1"><xs:simpleType><xs:restriction base="string"><xs:maxLength 
value="100"/></xs:restriction></xs:simpleType></xs:element><xs:element 
name="geom" type="gml:PointPropertyType" nillable="true" minOccurs="0" 
maxOccurs="1"/><xs:element name="type_id" type="int" nillable="true" 
minOccurs="0" 
maxOccurs="1"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType></xs:schema>

and this xsd should make tinyows use element '{http://www.tinyows.org}cities' 
like '{http://www.opengis.net/gml}_Feature'

Where am I wrong and what should be changed in my setup?

Best regards,
Timur Sufiev
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
  • [mapserver-users] [Tiny... Тимур Галиаскарович Суфиев

Reply via email to