[mapserver-commits] r13012 - trunk/docs/en/development/rfc

svn at osgeo.org svn at osgeo.org
Tue Jan 24 23:14:01 EST 2012


Author: tomkralidis
Date: 2012-01-24 20:14:00 -0800 (Tue, 24 Jan 2012)
New Revision: 13012

Modified:
   trunk/docs/en/development/rfc/ms-rfc-82.txt
Log:
add more changes for RFC 82 (incomplete)

Modified: trunk/docs/en/development/rfc/ms-rfc-82.txt
===================================================================
--- trunk/docs/en/development/rfc/ms-rfc-82.txt	2012-01-24 19:54:45 UTC (rev 13011)
+++ trunk/docs/en/development/rfc/ms-rfc-82.txt	2012-01-25 04:14:00 UTC (rev 13012)
@@ -23,11 +23,23 @@
 (e.g. wms_metadataurl_href), metadata advertising for OWS Capabilities.  While
 this offers the flexibility of managing metadata for mapfiles in an arbitrary
 fashion, there is often duplication of metadata between metadata XML and mapfile
-directives.
+directives when XML metadata exists for a given dataset.
 
-It is proposed that MapServer be enhanced to support direct handling of geospatial
-metadata documents in order to advertise OWS Capabilities metadata automatically.
+As well, in the case that a given dataset does not have associated formal XML
+metadata, Capabilities XML references to metadata (i.e. WMS MetadataURL) are not
+available, even though between the LAYER.METADATA/ows_* values and the layer's
+spatial properties enough information can be processed to generate a useful XML
+metadata document.  The existence of formal XML metadata in MapServer OGC
+services Capabilities XML provides value to Catalogue services which harvest
+metadata to support discovery.
 
+It is proposed that MapServer be enhanced with the following capabilities:
+
+* support of direct handling of XML metadata documents to advertise
+  OWS Capabilities metadata automaticall
+* support of generating XML metadata documents from a given layer's METADATA
+properties, as well its spatial properties
+
 Advantages of this enhancement:
 
 * allow for updating of metadata XML without the need to edit the mapfile
@@ -35,10 +47,13 @@
 * dynamic publishing of metadata for OWS services
 
 Technical Solution
-------------------------------------------------------------------------------
+------------------
 
+Case 1: Dataset has XML Metadata
+================================
+
 Users will have the ability to refer to a single geospatial metadata document
-to provide all of their OWS metadata, i.e.:
+in lieu of ows_* metadata, in order to provide all of their OWS metadata, i.e.:
 
 ::
 
@@ -51,47 +66,69 @@
   ...
   END
 
-For inline metadata there will be no need to fill in "ows_title", "ows_abstract", etc.,
-as this will be dynamically driven from the metadata XML document.
+For inline metadata there will be no need to fill in
+"ows_title", "ows_abstract", etc., as this will be dynamically driven from the
+metadata XML document.
 
 For metadata document advertisement, this will result in the following XML
 (e.g. WMS Capabilities metadata):
 
 ::
 
-  <MetadataURL type="ISO19115:2003">
-    <Format>text/xml</Format>
-    <OnlineResource xlink:type="simple" xlink:href="http://host/cgi-bin/mapserv?service=WMS&version=1.3.0&request=GetLayerMetadata&layer=foo"/>
-  </MetadataURL> 
+  <Layer>
+    <Name>roads</Name>
+    <Title>(derived from XML metadata)</Title>
+    <Abstract>(derived from XML metadata)</Abstract>
+    ...
+    <MetadataURL type="TC211">
+     <Format>text/xml</Format>
+     <OnlineResource xlink:type="simple" xlink:href="http://host/cgi-bin/mapserv?request=GetLayerMetadata&layer=foo"/>
+   </MetadataURL> 
+   ...
+  </Layer>
 
-MapServer will provide a GetLayerMetadata operation, which will read the file
-as defined in MAP.LAYER.METADATA/ows_metadata_path and return the content as the
+MapServer will provide a GetLayerMetadata operation which will operate
+independent of any OWS, and will read the file
+as defined in MAP.LAYER.METADATA/ows_metadata_path, returning the content as the
 the HTTP response (with 'text/xml' as the MIME type).
 
+Case 2: Dataset does not have XML Metadata
+==========================================
+
+MapServer will have the ability to generate a metadata XML document
+dynamically from LAYER.METADATA/ows_* directives and the given layer's
+spatial properties.
+
 MapServer will also provide support for outputting a service metadata document
-formatted as ISO 19119:2005.  This is an alternative service description that
-supports the INSPIRE initiative.
+formatted as ISO 19119:2005 based on WEB.METADATA ows_* directives.
+This is an alternative service description that supports the INSPIRE initiative.
 
-Implementation Details:
+Implementation Details
+======================
 
 mapmetadata.c
 
 - char * msMetadataGetLayerMetadata(layer.metadata)
- - read value of metadata_file (MAP.LAYER.METADATA/ows_metadata_path)
- - returns char * of content
+ - if MAP.LAYER.METADATA/ows_metadata_path
+  - read value of metadata_file (MAP.LAYER.METADATA/ows_metadata_path)
+   - returns char * of content
+ - else
+  - generate metadata XML based on LAYER.METADATA/ows_* and layer's spatial
+    properties
  - calling function will write to HTTP response
- (if we have similar "read file, return a char *" type functions, use those instead)
+   (if we have similar "read file, return a char *" type functions, use those instead)
 
 - layerObj msMetadataParseMetadata(metadata_format, metadata_file, ows_service_type)
  - libxml2 required
- - metadata format support: ISO 19115:2003 is initially, proposed; others can be
+ - metadata format support: ISO 19115:2003 is initially proposed; others can be
    added
- - read file (given format)
-  - parse and set layer->metadata as per the ows_service_type
-   - ows_title
-   - ows_abstract
-   - ows_keywordlist
-   - ows_extent
+ - if MAP.LAYER.METADATA/ows_metadata_path
+  - read file (given format)
+   - parse and set layer->metadata as per the ows_service_type from the metadata XML
+    - ows_title
+    - ows_abstract
+    - ows_keywordlist
+    - ows_extent
 
 - char * msMetadataGetServiceMetadata(map->web.metadata)
  - read map->web.metadata



More information about the mapserver-commits mailing list