The full Mapfile schema can be downloaded directly from this link -
The schema stores
maxVersion properties in a
metadata object for each keyword. This allow Mapfiles to be validated against
older or newer releases of MapServer to see if they are still valid.
Other versions available online are:
The Mapfile schema shown below is planned to be proposed as an official Mapfile language schema, subject to voting by the MapServer PSC (Project Steering Committee). Further details on the schema are outlined in the draft RFC (Request for Comment) at MS RFC 123: Mapfile JSON Schema.
Exporting the Schema¶
The schema can be exported to a file via the command-line using the following syntax:
# exports to mapfile-schema-8-0.json mappyfile schema mapfile-schema-8-0.json --version=8.0
The schema can be exported using Python, as shown in the example below:
import json from mappyfile.validator import Validator validator = Validator() jsn = validator.get_versioned_schema(version=8.0) print(json.dumps(jsn, indent=4))
Creating a Mappyfile Object with Defaults¶
If MapServer uses default values for an object, the create function can be used to create a new object using these defaults. For example to output a MAP object with default settings run the following code:
import mappyfile m = mappyfile.create("map", version=8.0) print(m) mappyfile.dumps(m)
This outputs the following:
MAP ANGLE 0 DEBUG 0 DEFRESOLUTION 72 IMAGETYPE "png" MAXSIZE 4096 NAME "MS" RESOLUTION 72 SIZE -1 -1 END
enum is used to check attribute keywords, and output them without quotes by the pretty printer. The
is a fixed list, but has to be a string and output in quotes, therefore the following construct is used:
"type": "string", "pattern": "^rectangle$"