= .zcfg Reference =
.zcfg is the ZOO Service configuration file which describes the service and being parsed by ZOO Kernel. You can use the generic example bellow to compose .zcfg files, and get working examples on the ZOO Trac.
A ZOO Configuration file is divided in three distinct sections :
* Main metadata informations
* List of Inputs metadata informations
* List of Outputs metadata informations
'''The ZOO Configuration File is case sensitive.'''
== Main metadata informations ==
The fist part in a ZOO Configuration containing the metadata informations relatives to the service. Note that the "name of your service" have to be the exact same name as the function you defined in you service code.
{{{
#!Lineno
[Name of your service]
Title = Title of your service
Abstract = Description of your service
processVersion = Version number of your service
storeSupported = true/false
statusSupported = true/false
serviceType = the programming language used to implement the service (C/Python/Java/PHP/Fortran/Javascript)
serviceProvider = Name of your service provider (.zo)
title = Metadata title of your service
}}}
== List of Inputs ==
The list of inputs your service can handle, it contains metadata informations of each services and it is a {{{}}} node.
A tipical list of inputs ({{{}}}) look like the following:
{{{
#!Lineno
[Name of the first input]
Title = Title of the first input
Abstract = Abstract describing the first input
minOccurs = Minimum occurence of the first input
maxOccurs = Maximum occurence of the first input
[Name of the second input]
Title = Title of the second input
Abstract = Abstract describing the second input
minOccurs = Minimum occurence of the second input
maxOccurs = Maximum occurence of the second input
}}}
== List of Outputs ==
{{{
#!Lineno
[Name of the output]
Title = Title of the output
Abstract = Description of the output
}}}
== Type Of Data Nodes ==
From the begining we spoke about Type Of Data Nodes to describe data type of inputs and outputs.
You can define your data as:
* LiteralData
* BoundingBoxData
* ComplexData
=== LiteralData node ===
A tipical {{{}}} node look like the following:
{{{
#!Lineno
DataType = float
uom = meters
value = 10
uom = feet
}}}
=== BoundingBoxData node ===
A {{{}}} node contains one {{{}}} node defining the default Coordinate Reference Systems (CRM) and same number of {{{}}} nodes as number of CRM your service support (note that you can also use a list of supported CRS separated them by coma in only one {{{}}} node.
A tipical {{{}}} node, for two supported CRM ([http://www.epsg-registry.org/indicio/query?request=GetRepositoryItem&id=urn:ogc:def:crs:EPSG::4326 EPSG:4326] and [http://www.epsg-registry.org/indicio/query?request=GetRepositoryItem&id=urn:ogc:def:crs:EPSG::3785 EPSG:3785] ), look like the following:
{{{
#!Lineno
CRS = urn:ogc:def:crs:EPSG:6.6:4326
CRS = urn:ogc:def:crs:EPSG:6.6:4326
CRS = urn:ogc:def:crs:EPSG:6.6:3785
}}}
=== ComplexData node ===
{{{
#!Lineno
mimeType = application/json
encoding = UTF-8
mimeType = text/xml
encoding = base64
schema = http://fooa/gml/3.1.0/polygon.xsd
mimeType = text/xml
encoding = UTF-8
schema = http://fooa/gml/3.1.0/polygon.xsd
}}}