CheeseXML 规范
受控命名空间: https://www.samovar-tool.ru/cheesexml/ns/1.0
标识符和版本
命名空间用于标识 CheeseXML 文档。CheeseXML 根版本目前为 1.00,与 XML 声明无关。
- 请按 CHEESEXML、RECIPES、RECIPE 的根顺序书写。每个 RECIPE 的 id 是稳定的机器标识符,其可见名称应放在 NAME 中。
- 将每个可读的值存放在带 xml:lang 的 T 中。读取器先选择请求的语言,然后是主要 T,最后是第一个可用的 T。
- 数量使用 value 和 unit。当厨房单位需要明确换算时,添加 si 作为标准化值。
兼容性
读取器接受主版本相同的文档。后续次版本中的新字段必须设为 optional="true",以便旧版读取器安全地忽略。
XSD 允许一个文档中包含多个 RECIPE 记录。门户导入有意限制为每次上传恰好一个配方。
最小可复现示例
这是可下载的完整最小示例。
<?xml version="1.0" encoding="UTF-8"?>
<CHEESEXML version="1.00" xmlns="https://www.samovar-tool.ru/cheesexml/ns/1.0" defaultLang="en" units="metric">
<RECIPES><RECIPE id="sample-paneer" version="1"><META><SCHEMA_VERSION>1.00</SCHEMA_VERSION><TYPE>home</TYPE><DIFFICULTY>1</DIFFICULTY><LICENSE>CC-BY-4.0</LICENSE></META><NAME><T xml:lang="en" primary="true">Sample paneer</T></NAME><DESCRIPTION><T xml:lang="en" primary="true">A minimal valid CheeseXML recipe.</T></DESCRIPTION><STYLE family="acid_set" code="acid_set.paneer"/><BATCH><MILK_VOLUME value="1" unit="l" si="1"/><SCALE base="milk_volume" base_value="1" base_unit="l"/></BATCH><MILK species="bos_taurus" treatment="pasteurized" homogenization="none"/><INGREDIENTS><INGREDIENT id="milk" role="base"><NAME><T xml:lang="en" primary="true">Milk</T></NAME><AMOUNT value="1" unit="l" si="1"/></INGREDIENT></INGREDIENTS><PROCESS><STEP n="1" phase="milk_prep" code="heat"><NAME><T xml:lang="en" primary="true">Heat</T></NAME><INSTRUCTION><T xml:lang="en" primary="true">Heat the milk.</T></INSTRUCTION></STEP></PROCESS></RECIPE></RECIPES>
</CHEESEXML>
完整可复现示例
完整示例包含元数据、配料、设备、工艺、储存和来源数据。 下载完整示例
字段和取值注册表
| 字段 | 必需值 |
|---|---|
CHEESEXML/@version | 1.xx,次版本为两位数字 |
RECIPE/@id | 稳定的机器标识符 |
META | SCHEMA_VERSION、TYPE 和 DIFFICULTY;可选的所有权、日期、许可证和单位制 |
T | 带 xml:lang 的人类可读文本;依次选择精确语言、其前缀、primary=true 或 1,最后是第一个文本。dir 可为 ltr、rtl 或 auto。 |
Quantity | value 和 unit;min、max 和 si 为可选。 |
INGREDIENT | NAME 和 AMOUNT;可选 DETAIL、PREP、SUBSTITUTE 和 NOTES。 |
STEP | n、phase、code、NAME 和 INSTRUCTION;可选 PARAMS 和 NOTES。 |
本地验证
curl -O https://www.samovar-tool.ru/cheesexml/specification/CheeseXML-1.0.xsd
curl -O https://www.samovar-tool.ru/cheesexml/specification/xml.xsd
curl -O https://www.samovar-tool.ru/cheesexml/specification/minimal.xml
curl -O https://www.samovar-tool.ru/cheesexml/specification/full.xml
xmllint --noout --schema CheeseXML-1.0.xsd minimal.xml
文件和 API
公开 API 基址: https://www.samovar-tool.ru/cheesexml/v1/
