<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/4.4.3">
</HEAD>
<BODY>
Hi Oliver,<BR>
<BR>
Thanks for your help with this. I've been busy with other stuff, hence the delay.<BR>
<BR>
I've tweaked my map file a little and enabled TinyOWS logging. Still no good.<BR>
<BR>
I couldn't see what you changed in the request that would make it work when you tried; it doesn't look significantly different from the one OpenLayers is generating for me, except that the namespace is different. This shouldn't matter though, should it?<BR>
<BR>
Cheers,<BR>
R<BR>
<BR>
Map file:<BR>
<BR>
MAP<BR>
    NAME "postcodes"<BR>
    STATUS ON<BR>
    EXTENT -20037508.34, -20037508.34, 20037508.34, 20037508.34<BR>
    UNITS M<BR>
<BR>
    WEB<BR>
        METADATA<BR>
            "tinyows_schema_dir" "/usr/local/share/tinyows/schema/"<BR>
            "tinyows_onlineresource" "http://richardt.gis.mediatel.co.uk/wfs"<BR>
            "tinyows_log" "/var/log/tinyows.log"<BR>
            "tinyows_log_level" "15"<BR>
            "wfs_title" "Postcode Data"<BR>
            "wfs_enable_request" "*"<BR>
            "wfs_namespace_uri" "http://richardt.gis.mediatel.co.uk"<BR>
            "wfs_namespace_prefix" "mtl"<BR>
        END<BR>
    END<BR>
<BR>
    PROJECTION<BR>
        "init=epsg:3857"<BR>
    END<BR>
<BR>
    LAYER<BR>
        NAME "areas"<BR>
        METADATA<BR>
            "wfs_name" "areas"<BR>
            "wfs_title" "Postcode Areas"<BR>
            "gml_featureid" "ogc_fid"<BR>
            "gml_include_items" "all"<BR>
            "wfs_enable_request" "*"<BR>
            "tinyows_table" "postcode_area_boundaries"<BR>
            "tinyows_retrievable" "1"<BR>
            "tinyows_writable" "1"<BR>
            "wfs_srs" "EPSG:3857"<BR>
        END<BR>
        TYPE POLYGON<BR>
        STATUS DEFAULT<BR>
        CONNECTIONTYPE postgis<BR>
        CONNECTION "host=localhost dbname=osm user=osm password=osm"<BR>
        DATA "wkb_geometry FROM postcode_area_boundaries"<BR>
        DUMP TRUE<BR>
    END<BR>
<BR>
    LAYER<BR>
        NAME "sectors"<BR>
        METADATA<BR>
            "wfs_name" "sectors"<BR>
            "wfs_title" "Postcode Sectors"<BR>
            "gml_featureid" "ogc_fid"<BR>
            "gml_include_items" "all"<BR>
            "wfs_enable_request" "*"<BR>
            "tinyows_table" "postcode_sector_boundaries"<BR>
            "tinyows_retrievable" "1"<BR>
            "tinyows_writable" "1"<BR>
            "wfs_srs" "EPSG:3857"<BR>
        END<BR>
        TYPE POLYGON<BR>
        STATUS DEFAULT<BR>
        CONNECTIONTYPE postgis<BR>
        CONNECTION "host=localhost dbname=osm user=osm password=osm"<BR>
        DATA "wkb_geometry FROM postcode_sector_boundaries"<BR>
        DUMP TRUE<BR>
    END<BR>
END<BR>
<BR>
TinyOWS log:<BR>
<BR>
[Wed Sep 26 13:23:27 2012] [EVENT] == TINYOWS STARTUP ==<BR>
[Wed Sep 26 13:23:27 2012] [SQL] SELECT substr(postgis_full_version(), 10, 5)<BR>
[Wed Sep 26 13:23:28 2012] [EVENT] == Connection PostGIS ==<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT DISTINCT f_table_schema, f_table_name FROM geometry_columns<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT DISTINCT f_table_schema, f_table_name FROM geography_columns<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT srid, f_geometry_column FROM geometry_columns WHERE f_table_schema='public' AND f_table_name='postcode_area_boundaries'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT * FROM spatial_ref_sys WHERE srid=3857 AND proj4text like '%%units=m%%'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attname AS field, t.typname AS type FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE n.nspname = 'public' AND c.relname = 'postcode_area_boundaries' AND c.relnamespace = n.oid AND a.attrelid = c.oid AND a.atttypid = t.oid AND a.attname IN ('all',  '');<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attname AS field FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE n.nspname = 'public' AND c.relname = 'postcode_area_boundaries' AND c.relnamespace = n.oid AND a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid AND a.attnotnull = 't' AND a.atthasdef='f'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT c.column_name FROM information_schema.constraint_column_usage c, pg_namespace n WHERE n.nspname = 'public' AND c.table_name = 'postcode_area_boundaries' AND c.constraint_name = (SELECT c.conname FROM pg_class r, pg_constraint c, pg_namespace n WHERE r.oid = c.conrelid AND relname = 'postcode_area_boundaries' AND r.relnamespace = n.oid AND n.nspname = 'public' AND c.contype = 'p')<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attnum FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE a.attrelid = c.oid AND a.atttypid = t.oid AND n.nspname='public' AND c.relname='postcode_area_boundaries' AND a.attname='ogc_fid'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT pg_get_serial_sequence('public."postcode_area_boundaries"', 'ogc_fid');<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT column_default FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'postcode_area_boundaries' AND column_name = 'ogc_fid' AND table_catalog = current_database();<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT srid, f_geometry_column FROM geometry_columns WHERE f_table_schema='public' AND f_table_name='postcode_sector_boundaries'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT * FROM spatial_ref_sys WHERE srid=900914 AND proj4text like '%%units=m%%'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attname AS field, t.typname AS type FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE n.nspname = 'public' AND c.relname = 'postcode_sector_boundaries' AND c.relnamespace = n.oid AND a.attrelid = c.oid AND a.atttypid = t.oid AND a.attname IN ('all',  '');<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attname AS field FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE n.nspname = 'public' AND c.relname = 'postcode_sector_boundaries' AND c.relnamespace = n.oid AND a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid AND a.attnotnull = 't' AND a.atthasdef='f'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT c.column_name FROM information_schema.constraint_column_usage c, pg_namespace n WHERE n.nspname = 'public' AND c.table_name = 'postcode_sector_boundaries' AND c.constraint_name = (SELECT c.conname FROM pg_class r, pg_constraint c, pg_namespace n WHERE r.oid = c.conrelid AND relname = 'postcode_sector_boundaries' AND r.relnamespace = n.oid AND n.nspname = 'public' AND c.contype = 'p')<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attnum FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE a.attrelid = c.oid AND a.atttypid = t.oid AND n.nspname='public' AND c.relname='postcode_sector_boundaries' AND a.attname='ogc_fid'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT pg_get_serial_sequence('public."postcode_sector_boundaries"', 'ogc_fid');<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT column_default FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'postcode_sector_boundaries' AND column_name = 'ogc_fid' AND table_catalog = current_database();<BR>
[Wed Sep 26 13:23:28 2012] [EVENT] == Filling Storage ==<BR>
[Wed Sep 26 13:23:28 2012] [QUERY] <wfs:GetFeature xmlns:wfs="<A HREF="http://www.opengis.net/wfs">http://www.opengis.net/wfs</A>" service="WFS" version="1.0.0" xsi:schemaLocation="<A HREF="http://www.opengis.net/wfs">http://www.opengis.net/wfs</A> <A HREF="http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd">http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd</A>" xmlns:xsi="<A HREF="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</A>"><wfs:Query typeName="feature:areas" xmlns:feature="<A HREF="http://richardt.gis.mediatel.co.uk">http://richardt.gis.mediatel.co.uk</A>"><ogc:Filter xmlns:ogc="<A HREF="http://www.opengis.net/ogc">http://www.opengis.net/ogc</A>"><ogc:BBOX><ogc:PropertyName>wkb_geometry</ogc:PropertyName><gml:Box xmlns:gml="<A HREF="http://www.opengis.net/gml">http://www.opengis.net/gml</A>" srsName="EPSG:3857"><gml:coordinates decimal="." cs="," ts=" ">-417651.92249206,6625221.1068455 417651.92249206,6795217.0577279</gml:coordinates></gml:Box></ogc:BBOX></ogc:Filter></wfs:Query></wfs:GetFeature><BR>
[Wed Sep 26 13:23:28 2012] [EVENT] == TINYOWS STARTUP ==<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT substr(postgis_full_version(), 10, 5)<BR>
[Wed Sep 26 13:23:28 2012] [EVENT] == Connection PostGIS ==<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT DISTINCT f_table_schema, f_table_name FROM geometry_columns<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT DISTINCT f_table_schema, f_table_name FROM geography_columns<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT srid, f_geometry_column FROM geometry_columns WHERE f_table_schema='public' AND f_table_name='postcode_area_boundaries'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT * FROM spatial_ref_sys WHERE srid=3857 AND proj4text like '%%units=m%%'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attname AS field, t.typname AS type FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE n.nspname = 'public' AND c.relname = 'postcode_area_boundaries' AND c.relnamespace = n.oid AND a.attrelid = c.oid AND a.atttypid = t.oid AND a.attname IN ('all',  '');<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attname AS field FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE n.nspname = 'public' AND c.relname = 'postcode_area_boundaries' AND c.relnamespace = n.oid AND a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid AND a.attnotnull = 't' AND a.atthasdef='f'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT c.column_name FROM information_schema.constraint_column_usage c, pg_namespace n WHERE n.nspname = 'public' AND c.table_name = 'postcode_area_boundaries' AND c.constraint_name = (SELECT c.conname FROM pg_class r, pg_constraint c, pg_namespace n WHERE r.oid = c.conrelid AND relname = 'postcode_area_boundaries' AND r.relnamespace = n.oid AND n.nspname = 'public' AND c.contype = 'p')<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attnum FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE a.attrelid = c.oid AND a.atttypid = t.oid AND n.nspname='public' AND c.relname='postcode_area_boundaries' AND a.attname='ogc_fid'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT pg_get_serial_sequence('public."postcode_area_boundaries"', 'ogc_fid');<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT column_default FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'postcode_area_boundaries' AND column_name = 'ogc_fid' AND table_catalog = current_database();<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT srid, f_geometry_column FROM geometry_columns WHERE f_table_schema='public' AND f_table_name='postcode_sector_boundaries'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT * FROM spatial_ref_sys WHERE srid=900914 AND proj4text like '%%units=m%%'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attname AS field, t.typname AS type FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE n.nspname = 'public' AND c.relname = 'postcode_sector_boundaries' AND c.relnamespace = n.oid AND a.attrelid = c.oid AND a.atttypid = t.oid AND a.attname IN ('all',  '');<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attname AS field FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE n.nspname = 'public' AND c.relname = 'postcode_sector_boundaries' AND c.relnamespace = n.oid AND a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid AND a.attnotnull = 't' AND a.atthasdef='f'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT c.column_name FROM information_schema.constraint_column_usage c, pg_namespace n WHERE n.nspname = 'public' AND c.table_name = 'postcode_sector_boundaries' AND c.constraint_name = (SELECT c.conname FROM pg_class r, pg_constraint c, pg_namespace n WHERE r.oid = c.conrelid AND relname = 'postcode_sector_boundaries' AND r.relnamespace = n.oid AND n.nspname = 'public' AND c.contype = 'p')<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT a.attnum FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE a.attrelid = c.oid AND a.atttypid = t.oid AND n.nspname='public' AND c.relname='postcode_sector_boundaries' AND a.attname='ogc_fid'<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT pg_get_serial_sequence('public."postcode_sector_boundaries"', 'ogc_fid');<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT column_default FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'postcode_sector_boundaries' AND column_name = 'ogc_fid' AND table_catalog = current_database();<BR>
[Wed Sep 26 13:23:28 2012] [EVENT] == Filling Storage ==<BR>
[Wed Sep 26 13:23:28 2012] [QUERY] service=WFS&request=DescribeFeatureType&version=1.0.0<BR>
[Wed Sep 26 13:23:28 2012] [EVENT] == TINYOWS SHUTDOWN ==<BR>
[Wed Sep 26 13:23:28 2012] [ERROR] Element '{<A HREF="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</A>}import': Skipping import of schema located at '<A HREF="http://schemas.opengis.net/gml/2.1.2/feature.xsd'">http://schemas.opengis.net/gml/2.1.2/feature.xsd'</A> for the namespace '<A HREF="http://www.opengis.net/gml',">http://www.opengis.net/gml',</A> since this namespace was already imported with the schema located at '/usr/local/share/tinyows/schema/gml/2.1.2/feature.xsd'.<BR>
<BR>
[Wed Sep 26 13:23:28 2012] [SQL] SELECT auth_name, auth_srid, position('+units=m ' in proj4text), (position('AXIS["X",NORTH]]' in srtext) + position('AXIS["Easting",EAST]]' in srtext)) FROM spatial_ref_sys WHERE srid = '3857'<BR>
[Wed Sep 26 13:23:28 2012] [ERROR] Filter parameter doesn't validate WFS Schema<BR>
[Wed Sep 26 13:23:28 2012] [EVENT] == TINYOWS SHUTDOWN ==<BR>
<BR>
<BR>
On Wed, 2012-09-19 at 10:27 +0200, Olivier Courtin wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
    On Wed, Sep 19, 2012 at 9:43 AM, Richard Turner <<A HREF="mailto:richard.turner@mediatelgroup.co.uk">richard.turner@mediatelgroup.co.uk</A>> wrote:<BR>
    <BR>
    <BR>
    Hi Richard<BR>
    <BR>
    <BLOCKQUOTE>
        I've since set-up a new server and installed the trunk version of tinyows on it and found that instead of working fine tinyows returns the following error:<BR>
        <BR>
          <ows:ExceptionText>Filter parameter doesn't validate WFS Schema</ows:ExceptionText><BR>
        <BR>
        <BR>
        <BR>
    </BLOCKQUOTE>
    <BR>
    <BR>
    I've slightly changed the request you provided, to make it works with <BR>
    a TinyOWS trunk (i use TinyOWS XML config file here):<BR>
    <BR>
    <BR>
    <wfs:GetFeature xmlns:wfs="<A HREF="http://www.opengis.net/wfs">http://www.opengis.net/wfs</A>" xmlns:xsi="<A HREF="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</A>" service="WFS" version="1.0.0" xsi:schemaLocation="<A HREF="http://www.opengis.net/wfs">http://www.opengis.net/wfs</A> <A HREF="http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd">http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd</A>"><BR>
      <wfs:Query xmlns:tows="<A HREF="http://www.tinyows.org/">http://www.tinyows.org/</A>" typeName="tows:france"><BR>
        <ogc:Filter xmlns:ogc="<A HREF="http://www.opengis.net/ogc">http://www.opengis.net/ogc</A>"><BR>
          <ogc:BBOX><BR>
            <ogc:PropertyName>geom</ogc:PropertyName><BR>
            <gml:Box xmlns:gml="<A HREF="http://www.opengis.net/gml">http://www.opengis.net/gml</A>" srsName="EPSG:3857"><BR>
              <gml:coordinates decimal="." cs="," ts=" ">-417651.92249206,6609322.2049643 417651.92249206,6811115.9596091</gml:coordinates><BR>
            </gml:Box><BR>
          </ogc:BBOX><BR>
        </ogc:Filter><BR>
      </wfs:Query><BR>
    </wfs:GetFeature><BR>
    <BR>
    <BR>
    <BR>
    <BR>
    <BR>
    <BR>
    To go further in debug, could you activate log<BR>
    (or recompile tinyows with --enable-debug option)<BR>
    and send the whole log here.<BR>
    <BR>
    <BR>
    Thanks.<BR>
    <BR>
    <BR>
     <BR>
    -- <BR>
    Olivier<BR>
</BLOCKQUOTE>
<BR>
<BR>
</BODY>
</HTML>