Skip to content

ESML XSD(XML Schema) ​

ESML 的 canonical XML 由 XSD 定义。命名空间 https://www.ai4energy.cn/esml/v1, 版本 1.0.0,随语言规范以 MIT 发布。

文件 ​

文件用途
esml-v1.xsd单一入口:检查命名空间、根元素与基本属性
esml-canonical-basic.xsd语言元素内容校验(推荐)
esml-canonical-common.xsd公共类型(被 basic / compute include)
esml-canonical-compute.xsd计算任务 payload
esml-canonical-project.xsdProject 容器(自包含)

canonical-basic 会 include common 与 compute,请保持三个文件在同一目录; 已在站内 /schema/ 下满足。

校验示例 ​

canonical-basic 通过相对路径 include 公共与计算子集,校验器需要三个文件在同一目录; 先把它们下载到本地。

用 xmllint(如已安装):

bash
mkdir -p schema && cd schema
curl -O https://docs.ai4energy.cn/schema/esml-canonical-common.xsd
curl -O https://docs.ai4energy.cn/schema/esml-canonical-compute.xsd
curl -O https://docs.ai4energy.cn/schema/esml-canonical-basic.xsd
xmllint --noout --schema esml-canonical-basic.xsd ../model.esml

esml-v1.xsd 是自包含入口,单独下载即可:

bash
curl -O https://docs.ai4energy.cn/schema/esml-v1.xsd
xmllint --noout --schema esml-v1.xsd model.esml

用 Python + lxml:

python
import urllib.request
from pathlib import Path
from lxml import etree

base = "https://docs.ai4energy.cn/schema/"
for name in (
    "esml-canonical-common.xsd",
    "esml-canonical-compute.xsd",
    "esml-canonical-basic.xsd",
):
    Path(name).write_bytes(urllib.request.urlopen(base + name).read())

schema = etree.XMLSchema(etree.parse("esml-canonical-basic.xsd"))
doc = etree.parse("model.esml")
print(schema.validate(doc))
for error in schema.error_log:
    print(error)

实测:IEEE 300 用例 case300.comp.esml 对 esml-v1.xsd 与 esml-canonical-basic.xsd 均通过(0 error)。

版本与兼容 ​

  • targetNamespace 为 https://www.ai4energy.cn/esml/v1,当前版本 1.0.0。
  • 新增可选元素时保持旧文档兼容:空值不序列化。
  • 规范正文、conformance 语料与变更记录: ai4energy/esml-language。

许可 ​

XSD 属于语言规范,MIT 许可(见 esml-language/LICENSE.md)。 引擎二进制与运行时是商业软件,见 ESML 许可。

陕 ICP 备 19000424 号 -2 | 陕公网安备 61010302001034 号