PCL uses an XML config file to specify a filesystem data store.

To date, we've used the OGR virtual file format. For example:

<OGRVRTDataSource>
    <OGRVRTLayer name="point">
        <SrcDataSource relativeToVRT="0">/home/sean/projects/ms_48/mapserver/tests/point.shp</SrcDataSource> 
 	    <SrcLayer>point</SrcLayer> 
        <LayerSRS>+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs</LayerSRS>
    </OGRVRTLayer>
    <OGRVRTLayer name="line">
        <SrcDataSource relativeToVRT="0">/home/sean/projects/ms_48/mapserver/tests/line.shp</SrcDataSource> 
 	    <SrcLayer>line</SrcLayer> 
        <LayerSRS>EPSG:4326</LayerSRS>
    </OGRVRTLayer>
    <OGRVRTLayer name="polygon">
        <SrcDataSource relativeToVRT="0">/home/sean/projects/ms_48/mapserver/tests/polygon.shp</SrcDataSource> 
 	    <SrcLayer>polygon</SrcLayer> 
        <LayerSRS>EPSG:4326</LayerSRS>
    </OGRVRTLayer>
    <OGRVRTLayer name="world_borders">
        <SrcDataSource relativeToVRT="0">/var/wms_data/world/world_borders.shp</SrcDataSource> 
 	    <SrcLayer>world_borders</SrcLayer> 
        <LayerSRS>EPSG:4269</LayerSRS>
    </OGRVRTLayer>
</OGRVRTDataSource>

Better would be

<featurestore
  xmlns="http://namespaces.gispython.org/config">

  <metadata
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <dc:title>
      Example Feature Store
    </dc:title>
    <dc:description>
      This store exposes shapefiles in /data/world.
    </dc:description>
  </metadata>
  
  <featuretype
    name="world_borders"
    srs="EPSG:4326">

    <file path="/data/world/world_borders.shp"/>

    <metadata
      xmlns:dc="http://purl.org/dc/elements/1.1/">
      <dc:title>
        World Borders
      </dc:title>
      <dc:description>
        World borders dataset derived from VMAP0.
      </dc:description>
    </metadata>

  </featuretype>

</featurestore>

advantages of this over OVF:

  • namespaces.
  • simpler element names.
  • fewer elements, more attributes.
  • follows data model emerging from GeoTools?.