Zoo服务配置文件

zoo服务配置文件(.zcfg)描述了WPS服务。它提供特定WPS服务的元数据信息,并且在 DescribeProcess执行 请求已发送。

Zoo服务配置文件分为三个不同的部分:

  • 主要元数据信息

  • 输入元数据信息列表(可选自 rev. 469

  • 输出元数据信息列表

警告

Zoo服务配置文件区分大小写。

备注

中有许多示例zcfg文件 cgi-env directory of the ZOO-Project svn .

备注

可以使用zcfg2yaml命令行工具将zcfg文件转换为yaml语法。

主要部分

Zoo服务配置文件的第一部分是 main 部分,其中包含有关相关WPS服务的常规元数据信息。

请注意,第一行括号之间的“服务名称”必须与服务提供商代码中定义的函数完全相同。在大多数情况下,此名称也是不带“.zcfg`”扩展名的zcfg文件的名称。

一个例子 main 以下章节作为参考。

 1[Name of WPS Service]
 2Title = Title of the WPS Service
 3Abstract = Description of the WPS Service
 4processVersion = Version number of the WPS Service
 5storeSupported = true/false
 6statusSupported = true/false
 7serviceType = Pprogramming language used to implement the service (C|Fortran|Python|Java|PHP|Ruby|Javascript)
 8serviceProvider = Name of the Services provider (shared library|Python Module|Java Class|PHP Script|JavaScript Script)
 9<MetaData>
10  title = Metadata title of the WPS Service
11</MetaData>

警告

“WPS服务的名称”必须与WPS服务源代码中定义的函数完全相同。

备注

extend parameter may be used for the Process profile registry .

输入列表

Zoo服务配置文件的第二部分是 <DataInputs> 列出支持的输入的部分。每个输入定义为:

  • 名称(括号之间,表示之前的服务名称)

  • 各种Medata属性 (TitleAbstractminOccursmaxOccurs 如果是完整的数据,可选 maximumMegabytes

  • Type Of Data Node

典型的输入列表 (<DataInputs> )如下所示:

 1<DataInputs>
 2  [Name of the first input]
 3    Title = Title of the first input
 4    Abstract = Abstract describing the first input
 5    minOccurs = Minimum occurence of the first input
 6    maxOccurs = Maximum occurence of the first input
 7    <Type Of Data Node />
 8  [Name of the second input]
 9    Title = Title of the second input
10    Abstract = Abstract describing the second input
11    minOccurs = Minimum occurence of the second input
12    maxOccurs = Maximum occurence of the second input
13    <Type Of Data Node />
14</DataInputs>

备注

A <MetaData> 也可以添加节点,如在主元数据信息中一样。

输出列表

Zoo服务配置文件的第三部分是 <DataOutputs> 部分,列出了支持的输出,与输入列表非常相似。

典型输出列表 (<DataOutputs> )如下所示:

1<DataOutputs>
2  [Name of the output]
3    Title = Title of the output
4    Abstract = Description of the output
5    <Type Of Data Node />
6</DataOutputs>

数据节点类型

这个 数据节点类型 描述输入和输出的数据类型。本节介绍了三种不同的类型。

警告

每个 BoundingBoxDataComplexData 必须至少有一个 <Default> 节点(甚至是空的 <Default />

警告

在WPS 2.0.0版本中,可以定义 nested inputs and outputs .所以,从修订版开始 790 ,您可以在此处使用新的输入/输出定义。

LiteralData节点

A <LiteralData> 节点包含:

  • 一个(可选) AllowedValues 包含此输入允许的所有值的键

  • 一个(可选) range 包含范围的属性 ([]

  • one (optional) rangeMin (rangeMax) properties containing the minimum (maximum) value of this range

  • 一个(可选) rangeSpacing 包含此范围内值之间的常规距离或间距的属性

  • 一个(可选) rangeClosure 包含闭包类型的属性 (coocco

  • <Default> 节点,

  • 零或更多 <Supported> 节点取决于支持的度量单位(UOM)的存在或数量,以及

  • dataType property. The dataType property defines the type of literal data, such as a string, an interger and so on (consult the complete list 支持的数据类型)。

<Default><Supported> 节点可以包含 uom 属性定义此输入值必须使用的计量单位。

输入 <LiteralData> 节点,可以添加 value 的属性 <Default> 用于定义此输入的默认值的节点。这意味着,在运行服务时,即使没有定义输入,也会将此默认值设置为此输入的当前值。

典型 <LiteralData> 节点,定义 float 使用米或度作为计量单位的数据类型如下:

1<LiteralData>
2  dataType = float
3  <Default>
4    uom = meters
5  </Default>
6  <Supported>
7    uom = feet
8  </Supported>
9</LiteralData>

典型 <LiteralData> 节点,定义 float 应采用中包含的值的数据类型 [0.0,100.0] ,如下所示:

1<LiteralData>
2  dataType = float
3  rangeMin = 0.0
4  rangeMax = 100.0
5  rangeClosure = c
6  <Default />
7</LiteralData>

或者更简单地说:

1<LiteralData>
2  dataType = float
3  range = [0.0,100.0]
4  <Default />
5</LiteralData>

典型 <LiteralData> 节点,定义 string 支持值的数据类型 hillshadeslopeaspectTRITPIroughness ,如下所示:

1<LiteralData>
2  dataType = string
3  AllowedValues = hillshade,slope,aspect,TRI,TPI,roughness
4  <Default />
5</LiteralData>

属性 AllowedValuesrange* 可与两者结合 <Default><Supported> 相同的节点与 <LiteralData> 节点。例如,支持以下功能:

 1<LiteralData>
 2  dataType = int
 3  <Default>
 4    value = 11
 5    AllowedValues = -10,-8,-7,-5,-1
 6    rangeMin = 0
 7    rangeMax = 100
 8    rangeClosure = co
 9  </Default>
10  <Supported>
11    rangeMin = 200
12    rangeMax = 600
13    rangeClosure = co
14  </Supported>
15  <Supported>
16    rangeMin = 750
17    rangeMax = 990
18    rangeClosure = co
19    rangeSpacing = 10
20  </Supported>
21</LiteralData>

边界框数据节点

A <BoundingBoxData> 节点包含:

  • <Default> 具有定义默认坐标参考系(CRS)的CRS属性的节点,以及

  • 一个或多个 <Supported> 节点取决于您的服务支持的CRS数量(请注意,您也可以使用单个 <Supported> 以逗号分隔的受支持CRS列表的节点)。

典型 <BoundingBoxData> node, for two supported CRS (EPSG:4326EPSG:3785 ,如下所示:

 1<BoundingBoxData>
 2  <Default>
 3    CRS = urn:ogc:def:crs:EPSG:6.6:4326
 4  </Default>
 5  <Supported>
 6    CRS = urn:ogc:def:crs:EPSG:6.6:4326
 7  </Supported>
 8  <Supported>
 9    CRS = urn:ogc:def:crs:EPSG:6.6:3785
10  </Supported>
11</BoundingBoxData>

完整数据节点

complexData节点包含:

  • <Default> 节点和

  • 一个或多个 <Supported> 节点取决于支持的格式的数量。格式由这组属性组成: mimeTypeencoding 和可选的 schema .

对于输出完整数据节点,可以添加 extension 属性来定义在存储结果时用于命名文件的扩展名。很明显,你必须加上 extension 属性设置为每个支持的格式(对于 <Default><Supported> 节点)。

您也可以添加 asReference 的属性 <Default> 节点,用于定义默认情况下是否应将输出存储在服务器端。

备注

客户端始终可以通过设置 asReference 属性到 truefalse 对于请求中的这个输出 ResponseDocument 参数。

您可以在下面看到默认情况下的示例complexdata节点 application/jsontext/xml (以utf-8或base64编码)mimetype支持:

 1<ComplexData>
 2  <Default>
 3    mimeType = application/json
 4    encoding = UTF-8
 5  </Default>
 6  <Supported>
 7    mimeType = text/xml
 8    encoding = base64
 9    schema = http://fooa/gml/3.1.0/polygon.xsd
10  </Supported>
11  <Supported>
12    mimeType = text/xml
13    encoding = UTF-8
14    schema = http://fooa/gml/3.1.0/polygon.xsd
15  </Supported>
16</ComplexData>