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

警告

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

注解

extend parameter may be used for the Process profile registry .

输入列表

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

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

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

  • Type Of Data Node

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<DataInputs>
  [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
    <Type Of Data Node />
  [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
    <Type Of Data Node />
</DataInputs>

注解

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

输出列表

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

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

1
2
3
4
5
6
<DataOutputs>
  [Name of the output]
    Title = Title of the output
    Abstract = Description of the output
    <Type Of Data Node />
</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
2
3
4
5
6
7
8
9
<LiteralData>
  dataType = float
  <Default>
    uom = meters
  </Default>
  <Supported>
    uom = feet
  </Supported>
</LiteralData>

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

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

或者更简单地说:

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

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

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

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

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

边界框数据节点

A <BoundingBoxData> 节点包含:

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

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

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

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

完整数据节点

complexData节点包含:

  • <Default> 节点和

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

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

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

注解

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

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

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