SUMO文档016:XML文件验证

本文介绍SUMO应用程序中的XML验证功能,包括如何设置不同的验证级别,如何添加模式声明,以及模式文件的位置。还讨论了不同SUMO版本间文件兼容性的问题。

XMLValidation(XML验证)

1、XML输入的验证

所有的SUMO应用程序都支持对输入的XML验证。为了实现功能,以下的选项可以使用:

Option

Description

-X <STRING>
--xml-validation <STRING>

设置XML输入的模式验证方案(“never”、“auto”或“always”);默认值:auto

--xml-validation.net <STRING>

设置SUMO网络输入的模式验证方案(“never”、“auto”或“always”);默认值:never

验证程序通过XML分析器激活XML schema processing 运行。验证程序可以捕捉很多常见的输入错误,比如拼写错误或者属性值因该放置另一个元素等。

验证的另一个先决条件是在输入文件的根元素的模式声明(schema deceleration)。就像下面所写:

<routesxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/routes_file.xsd">

如果将验证选项设置为always,那么省略上面语句将会报错。

Schema validation会放慢XMl分析器的工作效率,因此默认不对网络(natwork)进行验证(因为networks不应该被手动编辑,能够随时被利用)。如果您有大型的自动生成的输入,您可以考虑禁用Schema validation。可以查阅this FAQ.。

2、添加一个模式声明(schema declaration)

哪些通过某个SUMO应用程序自动生成的文件应该接受适当的模板声明(schema declaration)。在从从头开始编写一个输入文件时,必须手动向根元素添加模式声明。如下:

<ROOT_ELEMENT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/SCHEMA_FILE">

在上面的代码中,ROOT_ELEMENT和SCHEMA_FILE两个的设置按照如下:

Application Option

ROOT_ELEMENT

SCHEMA_FILE

--route-files}, --trip-files, , --flow-files

routes

routes_file.xsd

--additional-files

add

additional_file.xsd

--node-files

nodes

nodes_file.xsd

--edge-files

edges

edges_file.xsd

--connection-files

connections

connections_file.xsd

--tllogic-files

tlLogics

tllogic_file.xsd

--type-files

types

types_file.xsd

其中ROOT_ELEMENT的值是一种惯例,可以取任何的值。

3、模式文件

模式文件可以在SUMO根目录下的,data/xsd文件夹中找到。如果环境变量设置正确,在验证输入时,这些文件能够使用。

另外,下载的模式文件可能会是程序运行缓慢(如果没有网络连接甚至会失败)

4、SUMO文件类型

所有应用于SUMO应用程序的文件扩展名已经在文件扩展页面(FILE EXTENSIONS)列出。

 

题外话:

对于这部分,大家可能平常运行的话并不注意,当使用不同版本的地图数据和SUMO工具时,这部分验证就会起作用。比如在老版本中,一些路网数据的属性是少于最新版本的。下面以0.18.0和0.27.1为例讲解:

在0.27.1版本中生成的net数据在0.18.0版本中打不开,就因为数据结构的变化,我们打开net_file.xsd对比:


这个是0.18.0版本的车道类型属性


这个是0.27.1版本的车道类型属性。


和明显最新版的比旧版的多了一些属性。大家在平常使用数据时,要注意,路网数据和版本要对应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值