The following table lists the complete CookML data structure. It contains required/mandatory elements and optional elements. Required elements must be supported and handled for any application, while optional elements are not. If an application is not able to handle optional or unknown elements (e.g. because the implementation is older than the version of the dataset), these must be ignored without any warning or error message.
Some additional notes:
- The used character set is UTF8
- For some (new) elements, "rtf" as datatype is possible. If an application is supporting this, it’s required to export always also a plain-text version of the same information
- "Datatype" can be "text" or "rtf". If "rtf" is used, the same Element must be repeated with "text" and the content must be converted into plain text
- Preparation: Programs must handle the import of both "text" and "step" but can transform it for internal storage or export only in one of both
- Picbin: "format": Programs must support "jpg". Other formats are allowed, but there is risk that other Programs are not able to handle that
- "rid": is the unique identifier for a recipe, first defined from Ambrosia. See definition here
XML-Header | Type | Required | Description | Version | |||||
---|---|---|---|---|---|---|---|---|---|
cookml | Element | X | Root of the actual data | 1.1.2 | |||||
«version» | Tag | X | Revision number of the CML specification use to create the instance file | 1.1.2 | |||||
«name» | Tag | X | Name of the recipe collection contained in this file | 1.1.2 | |||||
«prog» | Tag | X | Name of the program which generated this instance | 1.1.2 | |||||
«progver» | Tag | X | Version number of “prog” | 1.1.2 | |||||
recipe | Element | X | Root of the individual recipe | 1.1.2 | |||||
«lang» | Tag | Language used in the recipe | 1.1.2 | ||||||
head | Element | X | Informational data to a recipe | 1.1.2 | |||||
«title» | Tag | X | Title of the recipe | 1.1.2 | |||||
«rid» | Tag | Unique recipe identifier | 1.1.2 | ||||||
«servingqty» | Tag | X | Serving quantity | 1.1.2 | |||||
«servingtype» | Tag | X | Unit of serving quantity (person, piece, etc.) | 1.1.2 | |||||
«createdate» | Tag | Creating date | 1.1.2 | ||||||
«createuser» | Tag | Creator/Recorder of recipe | 1.1.2 | ||||||
«createemail» | Tag | EMail of creator | 1.1.2 | ||||||
«changedate» | Tag | Date of the most recent change | 1.1.2 | ||||||
«changeuser» | Tag | Person, who made the most recent change | 1.1.2 | ||||||
«changeemail» | Tag | EMail of “changeuser” | 1.1.2 | ||||||
«timeallqty» | Tag | Total preparation time for the recipe | 1.1.2 | ||||||
«timeprepqty» | Tag | Preparation time | 1.1.2 | ||||||
«timecookqty» | Tag | Cooking time | 1.1.2 | ||||||
«costs» | Tag | Cost of the recipe | 1.1.2 | ||||||
«country» | Tag | Producing country | 1.1.2 | ||||||
«proteins» | Tag | Quantity of proteins | 1.1.2 | ||||||
«carbohydrates» | Tag | Quantity of carbohydrates | 1.1.2 | ||||||
«fat» | Tag | Quantity of fat | 1.1.2 | ||||||
«wwpoints» | Tag | Weight-Watcher points or something like that | 1.1.2 | ||||||
cat | Element | X | Categories (recipe grouping) | 1.1.2 | |||||
hint | Element | Key words for the recipe | 1.1.2 | ||||||
sourceline | Element | Free format information to the recipe source | 1.1.2 | ||||||
card | Element | Detailed description of the recipe (e.g. for a restaurant menu) | 1.1.2 | ||||||
allergies | Element | Allergic substances | 1.1.2 | ||||||
«allergy» | Tag | Data for an allergic substance | 1.1.2 | ||||||
«name» | Tag | Name of the allergic substance | 1.1.2 | ||||||
«contains» | Tag | Is allergic substance in the recipe | 1.1.2 | ||||||
content | Element | Information on substances contained in recipe ingredients | 1.1.2 | ||||||
«type» | Tag | Type of substance | 1.1.2 | ||||||
«value» | Tag | Value/quantity of substance | 1.1.2 | ||||||
picture | Element | Image of the recipe | 1.1.2 | ||||||
«file» | Tag | Path to the image, either local or on the web | 1.1.2 | ||||||
picbin | Element | Image of the recipe, embedded in the XML file | 1.1.2 | ||||||
«format» | Tag | Format of the embedded image | 1.1.2 | ||||||
custom | Element | Field for additional data | 1.1.2 | ||||||
«name» | Tag | Name of the “custom” field | 1.1.2 | ||||||
«datatype» | Tag | Data type of the “custom” field | 1.1.2 | ||||||
«value» | Tag | Value of the “custom” field | 1.1.2 | ||||||
part | Element | X | Grouping of an ingredient unit | 1.1.2 | |||||
«title» | Tag | X | Title of the ingredient unit | 1.1.2 | |||||
ingredient | Element | X | Ingredient (root of each ingredient) | 1.1.2 | |||||
«qty» | Tag | X | Required quanity of ingredient | 1.1.2 | |||||
«unit» | Tag | X | Unit of the ingredient | 1.1.2 | |||||
«item» | Tag | X | Name of the ingredient | 1.1.2 | |||||
inote | Element | Additional information, explanations to the ingredient in plain text | 1.1.2 | ||||||
«bls» | Tag | The ingredients BLS-Code (BLS – Bundeslebensmittelschlüssel) | 1.1.2 | ||||||
«gram» | Tag | Approximite value in grams for units which are not directly convertible | 1.1.2 | ||||||
«shop» | Tag | Flag, ob Zutat auf Einkaufslisten soll | 1.1.2 | ||||||
«calc» | Tag | Flag, to define if ingredient should be considered in the nutrional calculation | 1.1.2 | ||||||
«ridlink» | Tag | RID to a recipe which is used as an ingredient | 1.1.2 | ||||||
preparation | Element | Preparation instructions for this particular ingredient | 1.1.2 | ||||||
preparation | Element | X | Preparation/Recipe instructions | 1.1.2 | |||||
text | Element | X | Preparation instructions as a block of text | 1.1.2 | |||||
step | Element | X | Prepartion instructions as individual steps | 1.1.2 | |||||
remark | Element | Remarks of a user/cook | 1.1.2 | ||||||
«user» | Tag | The name of the person making the remark | 1.1.2 | ||||||
line | Tag | The remark | 1.1.2 | ||||||
menu | Element | The root of a menu | 1.1.2 | ||||||
«title» | Tag | Name of the menu | 1.1.2 | ||||||
mcustom | Element | Field for additional data | 1.1.2 | ||||||
«name» | Tag | Name of the “mcustom” field | 1.1.2 | ||||||
«datatype» | Tag | Data type of the “mcustom” field | 1.1.2 | ||||||
«value» | Tag | Value of the “mcustom” field | 1.1.2 | ||||||
mrecipe | Element | Recipe of a menu | 1.1.2 | ||||||
«title» | Tag | Title of the recipe menu item | 1.1.2 | ||||||
«rid» | Tag | “rid” – recipe identifier of the recipe menu item | 1.1.2 | ||||||
«amount» | Tag | Quantity for the recipe menu item (in the unit of the recipe) | 1.1.2 | ||||||
«persons» | Tag | Quantity of the menu item (always in the unit “person”) | 1.1.2 | ||||||
desc | Element | Additional information to the recipe menu item | 1.1.2 |