CESM中用到很多.xml文件。感觉很多人对这种格式很陌生,我也是。。。
所以其实是来给自己科普一下。
先从百度百科总结了几个要点,没错,就是百度百科(太长啦):
XML是一种可扩展标记语言。
大家没听过xml那肯定也听过html,就是常见的网页语言。
SGML:标准通用标记语言。结构复杂,不适用于web数据描述。
HTML:超文本标记语言。界面技术。简单,跨平台性;但可读性差、搜索时间长。
XML优点:
优点:和数据库不同,xml极其简单,只能存储数据。这种简单的特点使xml易于在任何应用程序中读写数据,使xml很快成为数据交换的唯一公共语言。
特点:
(1)可从HTML中分离数据。
(2)可在不兼容的系统间交换数据,如计算机系统和数据库系统。
(3)可应用于B2B中。
(4)利用XML可共享数据。
(5)XML可充分利用数据,其他客户端和应用程序可把XML文档作为数据源来处理。
(6)XML可用于创建新的语言。
格式:纯文本格式,与html类似。
CESM中的XML:
参考了这个PPT中的一页:http://www.cesm.ucar.edu/events/tutorials/2019/files/Practical1-fischer.pdf
XML用于定义具有任何XML兼容应用程序都可以读取的标准格式的文档。
在CESM中,XML被用作存储配置和控制设置的数据库(database我翻译成数据库,但其实XML和数据库还是有差别,它基本没有数据库的分类检索能力,仅仅是存储数据)。
CIME使用XML文件作为配置和变量设置的数据存储(data store,这个表示我认为更合理),以及一组python模块来解析这些XML文件,并为设置、构建和批处理提交创建一个特定于实验案例的环境。
env_archive.xml:指定短期存档脚本的规则
env_batch.xml:批处理设置
env_build.xml:编译设置
env_case.xml: create_newcase生成,无法修改
env_mach_pes.xml:指定组分的PE分布
env_mach_specific.xml:指定机器信息
env_run.xml:运行设置,包括运行时长、初始化类型、重启设置、数据路径等
推荐使用xmlchange来修改XML文件。