<?xml version='1.0'?> <Configuration> <Definitions> <!-- This definition enumerates the WFS versions we will support. Note that each version below must be backed by a like-named template file (ie, 1.0.0.xml.awd) in order to work. These must appear in increasing order! Also, anything other than a <Version> element is ignored. --> <Define item="SupportedVersions"> <Version number="1.0.0"/> <Version number="1.1.0"/> </Define> <!-- These are edited by the Site Administration tool, though you could modify them by any UTF-8-enabled editor. --> <Define item="Service.Name">OGC:WFS</Define> <!-- Generally should stay OGC:WFS --> <Define item="Service.Title">MapGuide WFS Server</Define> <Define item="Service.Fees">none</Define> <Define item="Service.Abstract">MapGuide WFS Server</Define> <Define item="Service.AccessConstraints">none</Define> <!-- Who to contact --> <Define item="Service.Contact.ProviderName"></Define> <Define item="Service.Contact.ProviderSite"></Define> <Define item="Service.Contact.Name"></Define> <Define item="Service.Contact.Organization"></Define> <Define item="Service.Contact.Position"></Define> <Define item="Service.Contact.Address.Type">postal</Define> <Define item="Service.Contact.Address.Street"></Define> <Define item="Service.Contact.Address.City"></Define> <Define item="Service.Contact.Address.StateProv"></Define> <Define item="Service.Contact.Address.PostCode"></Define> <Define item="Service.Contact.Address.Country"></Define> <Define item="Service.Contact.Phone"></Define> <Define item="Service.Contact.Fax"></Define> <Define item="Service.Contact.Email"></Define> <Define item="Service.Contact.HoursOfService">24x7</Define> <Define item="Service.Contact.Instructions"></Define> <Define item="Service.Contact.Role"></Define> <!-- The URL elements. Change to suit, as this is reported --> <Define item="SERVER_NAME">localhost:8008</Define> <Define item="SCRIPT_NAME">/mapguide/mapagent/mapagent.fcgi</Define> <!-- Stock definitions --> <Define item="URl.OnlineResource">http://www.your-domain.com</Define> <Define item="Url.GetCapabilities">http://&SERVER_NAME;&SCRIPT_NAME;</Define> <Define item="Url.DescribeFeatureType">http://&SERVER_NAME;&SCRIPT_NAME;</Define> <Define item="Url.GetFeature">http://&SERVER_NAME;&SCRIPT_NAME;</Define> <!-- List the keywords to be associated with the WFS - pick what describes your data --> <Define item="Service.Keywords"><item>GIS WFS Server</item></Define> <!-- Enumerates an element in a dictionary for HTML (Used chiefly for debugging, and in exceptions) --> <Define item="EnumDictionary.html"><tr><td class="name">&EnumDictionary.Name;</td><td><?Escape text="&EnumDictionary.Value;"?></td></tr> </Define> <!-- This is the HTML stylesheet, which should be referenced by anything returning HTML Note: one could substitute this with an out-of-band stylesheet link to an external doc, that is to say, replacing this with: <link rel="stylesheet" href="http://your-url-to-a/stylesheet.css" /> and then maintaining that document somewhere on your webserver. --> <Define item="html.stylesheet"> <style> body { font-family: arial, } table { font-family: arial, } .title { background-color: #ccf; font-weight: bold; font-size: larger; } .name { background-color: #eef; font-weight: bold; } </style> </Define> <Define item="ReferenceSystems"> <item>EPSG:4326</item> </Define> <!-- This is the default definition for a layer in GetCapabilities as text/xml Some versions may override this definition with a like-named definition of their own; any version-specific definition supercedes this one. --> <Define item="EnumLayer.xml"> <Layer queryable="&Layer.queryable;" transparent="&Layer.transparent;"> <Name>&Layer.name;</Name> <Title>&Layer.Title;</Title> <?Enum list="&ReferenceSystems;" using="&RS.xml;"?> </Layer> </Define> <!-- This is the default definition for a layer in GetCapabilities as text/html --> <Define item="EnumLayer.html"> <tr> <td class="name">&Layer.name;</td> <td>queryable="&Layer.queryable;" transparent="&Layer.transparent;" <ul> <?Enum list="&ReferenceSystems;" using="&Format.html;"?> </ul> </td> </tr> </Define> <!-- This is the default definition for a reference system (SRS, or CRS) --> <Define item="RS.xml"><SRS>&Enum.item;</SRS></Define> <!-- You can control the formats supported by various WFS responses by (a) modifying these lists and (b) adding (if necessary) the appropriate <Response> element in the corresponding version template files. You can locally override the supported formats by copying one of these definitions and modifying it to suit; in this case, the mods only apply to that version. --> <!-- These are the supported (Get)Capabilities formats Specific version templates can override these --> <Define item="Formats.GetCapabilities"> <item>text/xml</item> <item>text/html</item> <item>text/plain</item> </Define> <!-- These are the supported DescribeFeatureType formats Specific version templates can override these --> <Define item="Formats.DescribeFeatureType"> <item>GML2</item> <item>text/xml; subtype=gml/2.1.2</item> <item>GML3</item> <item>text/xml; subtype=gml/3.1.1</item> </Define> <Define item="Formats.DescribeFeatureType.default.1.0.0">text/xml; subtype=gml/2.1.2</Define> <Define item="Formats.DescribeFeatureType.default.1.1.0">text/xml; subtype=gml/3.1.1</Define> <!-- For historic reasons, we need to accept these output formats, --> <!-- which we convert into the indicated notations --> <Define item="Parameter.OutputFormat.ValueMap"> <translate from="GML2">text/xml; subtype=gml/2.1.2</translate> <translate from="XMLSCHEMA">text/xml; subtype=gml/2.1.2</translate> <translate from="GML3">text/xml; subtype=gml/3.1.1</translate> </Define> <!-- These are the supported GetFeature formats Specific version templates can override these --> <Define item="Formats.GetFeature"> <item>GML2</item> <item>text/xml; subtype=gml/2.1.2</item> <item>GML3</item> <item>text/xml; subtype=gml/3.1.1</item> </Define> <Define item="Formats.GetFeature.default.1.0.0">text/xml; subtype=gml/2.1.2</Define> <Define item="Formats.GetFeature.default.1.1.0">text/xml; subtype=gml/3.1.1</Define> <!-- These are the supported Exception formats Specific version templates can override these --> <Define item="Formats.Exception"> <item>application/vnd.ogc.se_xml</item> <item>application/vnd.ogc.se_inimage</item> <item>application/vnd.ogc.se_blank</item> <item>text/html</item> <item>text/plain</item> </Define> <!-- For now, all query capabilities are static, determined by the defs --> <!-- below; future work should glean these from the FDO GetCapy, and do --> <!-- something logical. Using too many FDO sources means that it's --> <!-- possible that the intersection of providers' capabilities may be an --> <!-- empty set, since any given operation may not be supported by one of --> <!-- the providers. FDO support of queries varies by implementation. --> <!-- TODO: These will need to be reported from the provider in question. --> <!-- NOTE: commented elements mark those ogc:Filter geometry operands that--> <!-- are not supported by FDO as of this release, and thus will not be --> <!-- enumerated. Depending on which FDO providers are used, the remaining--> <!-- set of operands may need to be further reduced, in the interest of --> <!-- "honest advertisement": WFS query capabilities can only describe the --> <!-- service as a whole, though FDO capabilities vary by implementation. --> <Define item="Query.GeometryOperands"> <!-- item>Arc</item --> <!-- item>ArcByBulge</item --> <!-- item>ArcByCenterPoint</item --> <!-- item>Bezier</item --> <!-- item>Circle</item --> <!-- item>CircleByCenterPoint</item --> <!-- item>Clothoid</item --> <!-- item>CubicSpline</item --> <item>Envelope</item> <!-- item>Geodesic</item --> <item>LineString</item> <!-- item>OffsetCurve</item --> <item>Point</item> <item>Polygon</item> <!-- item>PolyhedralSurface</item --> <!-- item>Solid</item --> <!-- item>Tin</item --> <!-- item>Triangle</item --> <!-- item>TriangulagedSurface</item --> </Define> <!-- TODO: These will need to be reported from the provider in question --> <Define item="Query.SpatialOperators"> <item>BBOX</item> <!-- item>Beyond</item --> <item>Contains</item> <item>Crosses</item> <item>Disjoint</item> <item>DWithin</item> <item>Equals</item> <item>Intersects</item> <item>Overlaps</item> <item>Touches</item> <item>Within</item> </Define> <!-- TODO: These will need to be reported from the provider in question --> <Define item="Query.ComparisonOperators"> <item>LessThan</item> <item>GreaterThan</item> <item>LessThanEqualTo</item> <item>GreaterThanEqualTo</item> <item>EqualTo</item> <item>NotEqualTo</item> <item>Like</item> <item>Between</item> <item>NullCheck</item> </Define> <!-- TODO: These will need to be reported from the provider in question --> <!-- Currently, no functions are supported, but if an FDO provider ever --> <!-- does do so, this is the syntax to use to advertise them. --> <Define item="Query.FunctionNames"> <!--item args="1">MIN</item> <item args="1">MAX</item--> </Define> <!-- This specifies the default maximum features returned --> <!-- TODO: examine if this can be gotten from internal config --> <Define item="Default.MaxFeatures">1000</Define> <!-- This is the way formats are reported in XML --> <Define item="Format.xml"> <Format>&Enum.item;</Format> </Define> <!-- This is the way formats are reported in HTML --> <Define item="Format.html"> <li>&Enum.item;</li> </Define> <!-- This is the way formats are reported in plain text --> <Define item="Format.plain"> * &Enum.item; </Define> <!-- This definition allows a site to override the behavior of --> <!-- the SRS= parameter of requests. --> <!-- Add translate elements here to map any particularly --> <!-- troublesome SRS to some appropriate WKT. --> <Define item="SRS.WKT.map"> <translate from="URN:OGC:DEF:CRS:EPSG::4326">GEOGCS["LL84",DATUM["WGS84",SPHEROID["WGS84",6378137.000,298.25722293]],PRIMEM["Greenwich",0],UNIT["Degree",0.01745329251994]]</translate> <translate from="CRS:84">GEOGCS["LL84",DATUM["WGS84",SPHEROID["WGS84",6378137.000,298.25722293]],PRIMEM["Greenwich",0],UNIT["Degree",0.01745329251994]]</translate> </Define> </Definitions> <!-- This is the exception of last resort, and is used if no exception Response is found in the version-specific template (or if an error occurs before a version can be established.) By this declaration, we say the default response shall be html. Of course, any appropriate <Response/> in the template file will supercede this. --> <Exception content-type="text/html"> <html> <head> <title>WFS Service Exception</title> &html.stylesheet; </head> <body> <table> <tr> <td class="title" colspan="2"><b>WFS Service Exception</b></td> </tr> <tr> <td colspan="2"> An exception occurred on the server. </td> </tr> <tr> <td class="name">Code</td><td>&Exception.Type;</td> </tr> <tr> <td class="name">Reason</td><td>&Exception.Message;</td> </tr> <tr><td class="title" colspan="2">Definitions</td></tr> <?EnumDictionary using="&EnumDictionary.html;"?> </table> </body> </html> </Exception> </Configuration>