Спецификация CheeseXML
Контролируемое пространство имён: https://www.samovar-tool.ru/cheesexml/ns/1.0
Идентификаторы и версия
Пространство имён определяет документы CheeseXML. Корневая версия CheeseXML сейчас 1.00 и не зависит от XML-декларации.
- Используйте корневой порядок CHEESEXML, RECIPES, затем RECIPE. id каждого RECIPE — стабильный машинный идентификатор; видимое имя находится в NAME.
- Храните каждое читаемое человеком значение в T с xml:lang. Читатель выбирает запрошенный язык, затем основной 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
- Схема XSD
- Схема пространства имён XML
- Минимальный пример
- Полный пример
- Описание OpenAPI
- Описание формата
- Документ пространства имён
- Справочник API
- Проверка XML
Базовый адрес публичного API: https://www.samovar-tool.ru/cheesexml/v1/