MS RFC 51:XML映射文件格式

日期

2009/01/16

作者

艾伦布德罗

联系

地图齿轮网的Aboudreault

最后编辑

2009/03/09

版本

MAPServer 6

概述

目前,mapserver只支持由flex解析的普通map文件。当前的map文件由mapserver快速解析,但由于解析器的复杂性,其他任何软件都无法解析。因此,构建映射文件的客户机接口很难实现。

我们试图解决的需求是能够构建映射文件编辑器,这将由XML映射文件格式的存在所促进(因为当前的映射文件格式使得无法编写向前兼容的解析器)。XML被视为一种解决方案,它可以为映射文件提供严格的语法,以便对XML模式进行强验证。

此RFC建议添加XML映射文件支持。

技术解决方案

我们决定暂时开发一个XML模式和一个XSLT来从XML转换为文本映射文件。如果新的XML格式开始流行,那么我们可以考虑在未来的版本中直接在MapServer中实现对它的支持。

Mapfile

XML映射文件层定义(原型)示例:

 <Layer>
  <name>popplace</name>
  <type>POINT</type>
  <debug>5</debug>
  <status>ON</status>
  <Metadata>
    <item name="DESCRIPTION">Cities</item>
    <item name="TEST">TESTING</item>
    <item name="RESULT_FIELDS">NAME</item>
  </Metadata>
  <data>popplace</data>
  <labelItem>Name</labelItem>
  <classItem>Capital</classItem>

  <Class>
    <name>Cities</name>
    <expression>1</expression>
    <template>ttt_query.html</template>
    <symbol>2</symbol>
    <size>8</size>
    <Label type="TRUETYPE">
      <colorAttribute>[COULEUR]</colorAttribute>
      <font>sans</font>
      <angle>0</angle>
      <size>8</size>
      <outlineColor red="255" green="255" blue="255"/>
    </Label>
    <color red="0" green="255" blue="0"/>
  </Class>

  <Class>
    <name>Cities</name>
    <expression>/2|3/</expression>
    <template>ttt_query.html</template>
    <tolerance>5</tolerance>
    <Label type="TRUETYPE">
      <colorAttribute>[COULEUR]</colorAttribute>
      <font>[FONT]</font>
      <angle>[ANGLE]</angle>
      <size>8</size>
      <outlineColor red="255" green="255" blue="255"/>
      <position>AUTO</position>
      <partials>FALSE</partials>
    </Label>
    <Style>
      <symbol>7</symbol>
      <size>6</size>
      <colorAttribute>[COULEUR]</colorAttribute>
    </Style>
  </Class>
</Layer>

未来的增强

在未来,一些增强可能会很好地添加:

  • 所有WMS选项的特殊标签(包括样式)

  • ID为的可重用XML块

文档

TBD

向后不兼容

不需要任何问题。

臭虫识别码

https://github.com/MapServer/MapServer/issues/2872