CookML-Markup-Language
Definition eines offenen Rezept- und Men� Austauschformates auf Basis von XML

Revision:

1.1.2

Status:

Letzte freigegebene Revission 1.1.2

Ersteller:

Jochen 'Nunz' Herz

Autoren:

Jochen Herz, Roland Jesse, Ralf K�rbitz, Rolf Wilhelm, 
Robert Freitag, Uwe Klatt


Spezifikation des XML-Formats zum programm- und l�nder�berschreitenden Austausch von Kochrezepten, Zutatendaten und Men�s.

CookML ist die Beschreibung eines Rezeptaustausch-Formats, das programm-�bergreifend den Austausch von Rezepten aller Art erlaubt.
CookML entstand aus dem Wunsch f�r das Rezeptprogramm Kalorio ein Austauschformat zu erstellen, da� alle angebotenen Rezeptdaten transferieren kann. Das bisher verwendete Textformat MealMaster ist zwar sehr verbreitet und lesbarer, aber es kann nur die absoluten Grunddaten eines Rezeptes �bertragen. CookML entstand daraufhin in Form einer offenen Diskussion mit diversen Programmierern von Rezept- und Gastronomie-Software, damit das Austauschformat keine Insell�sung darstellt sondern programm�bergreifend Rezeptdaten �bertragen kann.

Grundlage von CookML (kurz CML) ist XML. Es bietet die M�glichkeit alle erdenklichen Zusatzinformationen zu einem Rezept von Benutzer zu Benutzer auszutauschen. So unterst�tzt dieses Format auch Rezeptbilder, Men�s und Zuordnung von Zutaten zum Bundeslebensmittelschl�ssel.
Sollte dieses Format in der aktuellen Revision f�r etwaige Daten eines Rezeptes nicht ausreichen, so kann dieses Format in Form einer neuen Revision in Absprache erweitert werden.

CML ist frei benutzbar. Jeder Programmierer hat die M�glichkeit, dieses Format in seinem eigenen Programm zu benutzen. Es ist ausdr�cklich erw�nscht die CML in eigenen Programmen, Projekten, Tools und Internet-Portalen einzusetzen.
Es sind lediglich folgende Bedingungen einzuhalten:
1. Die folgende Spezifikation mu� eingehalten werden. Es d�rfen keine Tags ohne Freigabe einer neuen Revision hinzugef�gt oder ge�ndert werden.
2. Alle Felder, die in der DTD als "#Required" also als bindend definiert sind, m�ssen sinnvoll unterst�tzt und bei der Durchreichung mit weitergegeben werden. Daher wurden nur die wichtigsten Felder als bindend gekennzeichnet, so da� eine Implementierung sehr einfach ist.
3. Jedes Programm oder sonstige Projekt mu� einen Link auf diese Seite beinhalten, damit dieses Format f�r jeden einsehbar ist.
4. Wird eine CookML als Datei weitergegeben, so muss die Extension "*.cml" lauten


Inhaltsverzeichnis:

Einleitung

Weitere technische Dokumente

Definition der Markup-Language CookML 

Verwendeter Zeichensatz UTF-8

Aufbau der Rezept-ID

Erlaubte Einheiten f�r Zutaten-Beschreibungen


Weitere technische Dokumente:

Eine aktuelle Version dieses Dokuments kann immer unter www.kalorio.de/cml/cookml.html abgerufen werden.

Eine KML-Beispielsdatei mit 3 Rezepten gibts hier im Download: www.kalorio.de/cml/Example.zip 

Eine Document-Type-Definition (DTD) die zur Validierung der erzeugten KML-Dateien benutzt werden kann und sollte findet sich unter http://www.kalorio.de/cml/cookml.dtd.  Um den Export seines eigenen CMLs mit Hilfe der DTD zu �berpr�fen gibt es diverse DTD-Validatoren..

Eine XSD-Datei wird unter www.kalorio.de/cml/cookml.xsd ebenfalls zum Download angeboten

Eine einfache Anzeige der XML-Daten im Internet-Explorer ist durch die XSL-Datei m�glich: www.kalorio.de/cml/cookml.xsl

Zum Parsen oder Erzeugen von KML (XML)-Dateien k�nnen beliebige XML-Bibliotheken eingesetzt werden, die im Internet �ber jede Suchmaschine einfach zu finden sind. Der Autor stellt auch gerne einen selbst geschriebenen XML-Parser auf Basis des Borland C++-Compilers zur Verf�gung.

�nderungsvorschl�ge, Fehlerhinweise und Anmeldungen werden unter JoHerz@codev.de gerne entgegengenommen.


Definition der Markup-Language CookML zum Austausch von Rezepturen

 Inhaltsverzeichnis:

XML-Header Standard XML-Header
cookml Wurzel der eigentlichen Daten
cookml version Revisionsnummer der CML-Spezifikation, auf die sich die Implementierung bezieht
cookml name Name der Rezeptsammlung in der Datei
cookml prog Name des erzeugenden Programmes
cookml progver Versionsnummer des erzeugenden Programmes
cookmlrecipe Wurzel eines jeden Rezeptes
cookml : recipe : lang Sprache des Rezeptes
cookml : recipe : head Informationszeilen zu einem Rezept
cookml : recipe : head : title Titel des Rezeptes
cookml : recipe : head : rid Eindeutiger Rezept-Ident
cookml : recipe : head : servingqty F�r wieviele Einheiten (Personen, St�cke usw.)
cookml : recipe : head : servingtype In welcher Einheit wird die Menge angegeben (Personen, St�cke usw.)
cookml : recipe : head : createdate Datum der Ersterstellung
cookml : recipe : head : createuser Erfasser des Rezeptes
cookml : recipe : head : createemail EMail des Erfassers
cookml : recipe : head : changedate Datum der letzten �nderung
cookml : recipe : head : changeuser Person, die die letzte �nderung vorgenommen hat
cookml : recipe : head : changeemail EMail der letzten �ndernden Person
cookml : recipe : head : timeallqty Zeitangabe der kompletten Rezept-Zubereitung
cookml : recipe : head : timeprepqty Zeitangabe der Rezept-Vorbereitungszeit
cookml : recipe : head : timecookqty Zeitangabe der eigentlichen Kochzeit
cookml : recipe : head : costs Kosten des Rezepts
cookml : recipe : head : country Herkunftsland
cookml : recipe : head : proteins Menge der Eiweisse/Proteine
cookml : recipe : head : carbohydrates Menge der Proteine
cookml : recipe : head : Fat Menge der Fette
cookml : recipe : head : wwpoints Weight-Watcher Punkte oder �hnliches
cookml : recipe : head : cat Kategorien (Rezept-Gruppierungen)
cookml : recipe : head : hint Stichworte zum Rezept
cookml : recipe : head : sourceline Mehrzeilige Angabe zur Quelle
cookml : recipe : head : card N�here Beschreibung des Rezepts (z.B. Restaurantkarte)
cookml : recipe : head : allergies Allergie-Stoffe
cookml : recipe : head : allergies : allergy Angaben zu einem Allergie-Stoff
cookml : recipe : head : allergies : allergy : name Name des Allergie-Stoffes
cookml : recipe : head : allergies : allergy : contains Allergie-Stoff im Rezept vorhanden
cookml : recipe : head : content Angabe �ber Stoffangaben in einem Rezept
cookml : recipe : head : content : type Art der Stoffangabe
cookml : recipe : head : content : value Wert der Stoffangabe
cookml : recipe : head : picture Rezeptbild
cookml : recipe : head : picture : file Pfad auf das Bild lokal oder im Web
cookml : recipe : head : picbin Rezeptbild bin�r als Bestandteil des XMLs
cookml : recipe : head : picbin : format Format des �bertragenen Bin�rbildes
cookml : recipe : custom Feld f�r weitere Daten
cookml : recipe : custom : name Name eines freien Feldes
cookml : recipe : custom : datatype Datentyp eines freien Feldes
cookml : recipe : custom : value Wert eines freien Feldes
cookml : recipe : part Gruppierung einer Zutateneinheit
cookml : recipe : part:: title Benennung einer Zutatengruppe
cookml : recipe : part:: ingredient  Zutat (Wurzel einer neuen Zutat)
cookml : recipe : part : ingredient : qty Ben�tigte Menge der Zutat
cookml : recipe : part : ingredient : unit Einheit der Zutat
cookml : recipe : part : ingredient : item Name der Zutat
cookml : recipe : part : ingredient : inote Weitere Erl�uterungen zur Zutat
cookml : recipe : part : ingredient : bls Der Zutat entsprechender BLS-Code
cookml : recipe : part : ingredient : gram Gramm-Entsprechung bei nicht umrechenbaren Einheiten
cookml : recipe : part : ingredient : shop Flag, ob Zutat auf Einkaufslisten soll
cookml : recipe : part : ingredient : calc Flag, ob Zutat bei N�hrwertberechnung mit ber�cksichtigt werden soll
cookml : recipe : part : ingredient : ridlink URL auf ein Rezept, dass als Zutat eingesetzt wird
cookml : recipe : preparation Anleitungsschritt (Rezepttext)
cookml : recipe : preparation : text Anleitungsschritt als einzelner Textk�rper
cookml : recipe : preparation : step Anleitungsschritt als Folge von Verarbeitungschritten
cookml : recipe : remark Anmerkung eines Benutzers
cookml : recipe : remark : user Der Name des Benutzers einer Anmerkung
cookml : recipe : remark : line Eine Zeile der Anmerkung
cookml : menu Ein Men� beginnt
cookml : menu : title Name des Men�s
cookml : menu : mcustom Feld f�r weitere Daten
cookml : menu : mcustom : name Name eines freien Feldes
cookml : menu : mcustom : datatype Datentyp eines freien Feldes
cookml : menu : mcustom : value Wert eines freien Feldes
cookml : menu : mrecipe Rezept eines Men�s
cookml : menu : mrecipe : title Titel des Men�rezeptes
cookml : menu : mrecipe : rid Rezept-Ident des Men�-Rezeptes
cookml : menu : mrecipe : amount Rezeptmenge f�r Men� (in der Einheit des Rezeptes)
cookml : menu : mrecipe : persons Rezeptmenge f�r Men� (immer in der Einheit "Personen")
cookml : menu : mrecipe : desc N�here Angaben zum Men�-Rezept

XML-Header

XML-Standard-Header
Folgende Header-Zeilen m�ssen laut XML-Standard implementiert sein.
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="cookml.dtd" type="text/dtd"?>
<?xml-stylesheet href="cookml.xsl" type="text/xsl"?>

Unterst�tzung: Alle

cookml

"cookml" stellt die Wurzel aller Rezepte und Men�s dar.
Die Tags prog und progver sind programm-spezifisch und sollte mit dem Programmname und dessen Versionsnummer best�ckt werden, die das XML erzeugen..
<cookml version=" 0.1" prog="cook" progver="2.01">

Unterst�tzung: Alle

cookml : version

Revisionsnummer der Spezifikation.
Version gibt die Revisisionsnummer derjenigen CookML-Spezifikation an, auf die sich die Implementierung des erzeugenden Programmes bezieht.

Datentyp: string, XML-Attribut
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : name

Name der Rezeptsammlung.
Oft werden ganze Rezeptpakete geschn�rt und diesen paketen werden Namen gegeben (z.B. "rec.mampf.de 01-03/2002"). Sofern ein CML ein solches Paket darstellt und einen Namen hat, kann dieser hier eingetragen werden und damit das Paket kennzeichnen.

Datentyp: string, XML-Attribut
Unterst�tzung: Optional
Kompatibilit�t:

cookml : prog

Name des erzeugenden Programmes.
Hier muss das Programm, das die CML-Datei erzeugt, seinen Namen hinterlassen. Zusamen mit dem Attribut  'progver' ist dies f�r die Fehlersuche ein wichtiger Hinweis und ist daher Pflicht.

Datentyp: string, XML-Attribut
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : progver

Versiosnummer des erzeugenden Programmes.
DBeschreibung siehe 'cookml:prog'.

Datentyp: string, XML-Attribut
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : recipe

"recipe" leitet ein neues Rezept ein.
Dieses Tag stellt die Wurzel eines jeden Rezepts dar. recipe kann in einer Datei beliebig oft wiederholt werden.

Datentyp: complex typ, XML-Element, Sequenz
Unterst�tzung: Zwingend.
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : lang

"lang" definiert die Sprache in dem das Rezept abgefasst wurde
Zwar ist es dem Programm prinzipiell egal, in welcher Sprache das Rezept vorliegt, dennoch ist die Information sp�ter wichtig f�r die automatische Umwandlung von Einheiten in die Sprache des Benutzers. So kann man bei US-Rezepten nicht-metrische Einheiten automatisch in Landeseinheiten umrechnen (z.B. oz in gramm).
Die erlaubten Sprachk�rzel isnd folgender Seite zu entnehmen: http://lcweb.loc.gov/standards/iso639-2/englangn.html

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Muss in jedem Rezept gesetzt werden, muss von der Applikation unterst�tzt werden
Kompatibilit�t: Alle

cookml : recipe : head

"head" leitet eine Section mit weiteren Rezeptinformationen ein
Die L�nge ist zwar nicht begrenzt aber man sollte den Titel nicht zu lang w�hlen, damit keine Probleme bei der Anzeige oder beim Druck auftreten. Auch sollte man daran denken, dass die weitergegeben Rezepte eventuell im Mealmaster-Format weitergegeben werden k�nnten und dann bei 64 Zeichen abgeschnitten werden

Datentyp: complex type, XML-Element, Singul�r
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : recipe : head : title

"title" gibt den Namen des aktuellen Rezeptes an.
Die L�nge ist zwar nicht begrenzt aber man sollte den Titel nicht zu lang w�hlen, damit keine Probleme bei der Anzeige oder beim Druck auftreten. Auch sollte man daran denken, dass die weitergegeben Rezepte eventuell im Mealmaster-Format weitergegeben werden k�nnten und dann bei 64 Zeichen abgeschnitten werden

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : recipe : head : rid

"RID" kennzeichnet jedes Rezept rechner�bergreifend mit einem eindeutigen Ident.
Bei der Erzeugung eines Rezeptes wird eine eindeutige ID generiert, die jedes Rezept eindeutig kennzeichnet. Dadurch kann man Bezug nehmen auf andere Rezepte, z.B. auf Grundteige als Bestandteil des aktuellen Rezeptes. Oder man verweist bei der Zusammenstellung eines Men�s nur noch auf Rezepte.
Das erste Programm, dass solche Idents eingesetzt hat, war Ambrosio. Daher wurde das Format der Ambrosio-Ident hier �bernommen.
Am Ende des Dokument gibt es ein Kapitel "Aufbau der Rezept-ID:", in dem beschrieben ist wie die RID aufgebaut ist.

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : recipe : head : servingqty

F�r wieviele Einheiten (Personen, St�cke usw.)
In servingtype steht die Einheit, die dem Rezept zugewiesen wurde (z.B. Portionen, St�ck usw). In servingqty wird die Anzahl dieser Einheiten angegeben, f�r die das Rezept ausgelegt ist.

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : recipe : head : servingtype

In welcher Einheit wird die Menge angegeben (Personen, St�cke usw.)
In servingtype steht die Einheit, die dem Rezept zugewiesen wurde (z.B. Portionen, St�ck usw). In servingqty wird die Anzahl dieser Einheiten angegeben, f�r die das Rezept ausgelegt ist.

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : recipe : head : createdate

Datum der Ersterstellung
Hier wird das Tagesdatum festgehalten, an dem das Rezept erstellt worden ist. Dieses Datum darf sp�ter nicht mehr ver�ndert werden k�nnen (z.B. durch �nderungen am Rezept).
Das Format f�r jedes Datum ist: "2003-02-16T10:00:00"

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : recipe : head : createuser

Erfasser des Rezeptes
Hier wird der Name des Erfassers festgehalten, der das Rezept verfasst hat. Dieses Datum darf sp�ter nicht mehr ver�ndert werden k�nnen (z.B. durch �nderungen am Rezept).

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Zwingend.
Kompatibilit�t: Alle

cookml : recipe : head : createemail

EMail des Erfassers
Hier wird die EMail des Erfassers festgehalten, der das Rezept verfasst hat. Dies kann zur Kontaktaufnahme oder Nachfragen sinnvoll sein.

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : head : changedate

Datum der letzten �nderung
Hier wird das Tagesdatum festgehalten, an dem das Rezept zum letzten Mal ver�ndert wurde. Die Information �ber die vorletzte �nderung wird dabei �berschrieben.

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Muss in jedem Rezept gesetzt werden, muss von der Applikation unterst�tzt werden
Kompatibilit�t: Alle

cookml : recipe : head : changeuser

Person, die die letzte �nderung vorgenommen hat
Hier wird der Name der Person festgehalten, der das Rezept zum letzten Mal ver�ndert wurde. Die Information �ber die vorletzte �nderung wird dabei �berschrieben.

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : changeemail

EMail der letzten �ndernden Person
Hier wird die EMail der Person festgehalten, der das Rezept zum letzten Mal ver�ndert wurde. Die Information �ber die vorletzte �nderung wird dabei �berschrieben.

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head :timeallqty

Zeitangabe der kompletten Rezept-Zubereitung
timeallqty gibt den Zeitaufwand an, der insgesamt f�r das Rezept aufzuwenden ist inklusive Vorbereitungs- und Kochphase.
Die Einheit ist immer Minuten.

Datentyp: non negative integer, XML-Attribut von head, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : timeprepqty

Zeitangabe der Rezept-Vorbereitungszeit
Gibt den abgesch�tzten Zeitraum an, der f�r die Vorbereitungsphase der Rezeptzubereitung zu erwarten ist. Die Einheit ist immer Minuten.

Datentyp: non negative integer, XML-Attribut von head, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : timecookqty

Zeitangabe der eigentlichen Kochzeit
Gibt den abgesch�tzten Zeitraum an, der f�r die eigentliche Kochphase der Rezeptzubereitung zu erwarten ist. Die Einheit ist immer Minuten.

Datentyp: non negative integer, XML-Attribut von head, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : costs

Kosten des Rezepts
Gibt umgangssprachlich die zu erwartenden Kosten an, die f�r das Rezept aufzuwenden sind. Eine Weiterverarbeitung dieser Information durch Programme ist nicht vorgesehen, diese Angabe hat nur informativen Charakter.

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : country

Herkunftsland
Gibt das Land oder die Gegend an, aus der das Rezept kulinarisch stammt.

Datentyp: string, XML-Attribut von head, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: KalorioNext

cookml : recipe : head : Eiweisse

Anteil der Eiweisse/Proteine
Gibt den Anteil/Menge der Eiweisse/Proteine an den Kalorien an.
Die Angaben sind pro Portion anzugeben und m�ssen daher bei der Umrechnung der Portionsmenge nicht umgerechnet werden.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : head : Kohlenhydrate

Anteil der Kohlenhydrate
Gibt den Anteil/Menge der Kohlenhydrate an den Kalorien an.
Die Angaben sind pro Portion anzugeben und m�ssen daher bei der Umrechnung der Portionsmenge nicht umgerechnet werden.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : head : Fette

Anteil der Fette
Gibt den Anteil/Menge der Fette an den Kalorien an.
Die Angaben sind pro Portion anzugeben und m�ssen daher bei der Umrechnung der Portionsmenge nicht umgerechnet werden.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : head : wwpoints

Weight-Watcher Punkte
Die Weight-Watcher-Gemeinde hat mich des �fteren angeschrieben, da� Sie ein Feld zur Angabe der Weight-Watcher-Punkte ben�tigen. Bei diesen Punkten werden jedem Gericht eine bestimmte Anzahl von Punkten zugewiesen. Hier werden die Punkte f�r das Gesamtrezept, also f�r alle Portionen addiert aufgenommen.

Datentyp: float, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : head : cat

Kategorien (Rezept-Gruppierungen)
In jedem cat-Eintrag wird eine Rezeptkategorie festgelegt. Die Bezeichnungen der Kategorien sind nicht genormt und k�nnen sich von Benutzer zu Benutzer unterscheiden. Geplant ist eine Standardisierung, in der eine sinnvolle Menge an Kategorien vorgeschlagen wird.

Datentyp: string, XML-Element, Sequenz
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : head : sourceline

Quellenangaben
Sofern die Quelle des Rezeptes bekannt ist sollte die Quelle der fariness halber dem Rezept beigef�ggt sein. In den Sourcelines kann man diese Quelle auff�hren.

Datentyp: string, XML-Element, Sequenz
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : head : hint

Stichworte zu einem Rezept
Zu einem Rezept k�nnen beliebige Stichw�rter hinzugef�gt werden. Meistens kann nach diesen Stichworten auch gesucht werden. Im Gegensatz zu ing:cat gibt es keine Bestrebungen, diese zu normieren, es sind also freie Texte zur freien Verwendung.

Datentyp: string, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : card

N�here Beschreibung des Rezepts (z.B. Restaurantkarte)
Sofern aus einer Rezeptzusammenstellung eine Speisekarte oder Men�karte erstellt werden soll, k�nnen hier erkl�rende Texte zum Rezept oder der Rezepttitel in anderen Sprachen aufgenommen werden.

Datentyp: string, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia

cookml : recipe : allergies

Allergien
In diesem Tag sammeln sich alle Allergie-Informationen.

Datentyp: string, XML-Element, Single
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : allergies : allergy

Allergie-Angabe
Hier werden die Werte f�r eine Allergie angegeben.

Datentyp: string, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : allergies : allergy : name

Name des allergenen Stoffes

Datentyp: string, XML-Element
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : allergies : allergy : contains

Ist der allergene Stoff vorhanden
'F'=Frei von diesem allergischen Stoff, 'C'-contains, enth�lt diesen allergischen Stoff

Datentyp: string, XML-Element
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : head : content

Inhalt eines Rezeptes (Stofflicher Art)
Hier kann die Summe aller IInhaltsstoffe bez�glich eines Stoffes laut Bundelebensmittelschl�ssel abgelegt werden. Die meisten Programme werden hier eine Kalorienangabe ablegen, aber es ist auch die �bermittlung von Vitamingehalten, Broteinheiten usw. m�glich.
Ein Datensatz besteht immer aus 2 Teilen: Der Stoffangabe (Schl�ssel = K�rzel der Bundeslebensmittelschl�ssel) und die Menge (gleiche Einheit wie die, die im Bundeslebensmittelschl�ssel vorgesehen ist.
Ausnahmen: 
1. nur quantitative BLS-Stoffe (DIE BLS-Datenbank gibt diese Info her). Strings sind hier nicht sinnvoll wie zB "BLS-Code" der ja auch in dieser Liste steht.
Beispiel:
<content type="GCAL" value="627"/> // Kalorien in kCal
<content type="GKB" value="42"/> // Broteinheiten

Datentyp: complex type, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : head : content : type

Kennzeichnung des Stoffes
Beschreibung siehe recipe : content

Datentyp: string, XML-Attribut von content
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : content : value

Menge eines Stoffes
Beschreibung siehe recipe : content

Datentyp: string, XML-Attribut von content
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : picture

Rezeptbild (Dateiname)
Hier wird ein Bild zu einem Rezept in Form eines Dateinamens festgelegt. Die Datei befindet sich dabei nur lokal bei dem Benutzer auf der Festplatte und ist daher nur sinnvoll, wenn entweder die Dateihierarchie immer gleich ist, oder sich alle Bilder in einem festgelegten Verzeichnis befinden und hier nur der Dateiname ohne Pfad angegeben wird.

Datentyp: complex type, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : picture : file

Pfad auf das Bild lokal im Netzwerk
Hier wird ein Bild zu einem Rezept in Form eines Dateinamens oder einer URL festgelegt. Sofern hier das Feld f�r eine URL benutzt wird ist eine komplette URL Pflicht (http://www.???.com/???.JPG. Das Format ist nicht festgelegt aber aus Gr�nden der Verbreitung ist JPG zu preferieren.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : head : picbin

Rezeptbild bin�r als Bestandteil des XMLs
Hier wird ein Bild bin�r als Bestandteil der XML-Datei mitgeschickt. Dabei ist das Bild mit Mime64 zu einem 7-Bit Zeichensatz zu konvertieren.

Datentyp: mime64, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : head : picbin : format

Format der Bilddatei
Um ein besseres Handling eines mitgeschickten Bildes zu erreichen, muss bei der �bertragung eines Bin�rbildes dessen Format hier mit �bermittelt werden. Dabei muss immer die allgemein g�ltige Extension in Grossbuchstaben benutzt werden.
Festgelegt sind bislang: BMP, JPG, PNG, TIF

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Zwingend
Kompatibilit�t: Kalorio

cookml : recipe : head : custom

Freie Felderdefinition
In diesem Tag lassen sich beliebige eigene Informationen unterbringen. Bitte bei der Verwendung immer daran denken, da� eigene Informationen, die hier untergebracht werden nicht von Benutzern anderer Programme ausgewertet werden k�nnen. Es ist sinnvoll, Informationen, die allgemein sinnvoll sind hier zur Standardisierung anzumelden. Nur so kann ein Wildwuchs vermieden werden.
"custom" setzt sich zusammen aus den Attributen "name", "datatype" und "value". Name muss in jedem "custom"-Tag vorhanden sein, da es die Aufgabe des Knotens spezifiziert.

Datentyp: string, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : head : custom : name

Name eines freien Feldes
Beschreibung siehe "cookml:recipe:custom"

Datentyp: string, XML-Attribut
Unterst�tzung: Zwingend
Kompatibilit�t: Kalorio

cookml : recipe : head : custom : datatype

Name eines freien Feldes
Beschreibung siehe "cookml:recipe:custom"

Datentyp: string, XML-Attribut
Unterst�tzung: Zwingend
Kompatibilit�t:

cookml : recipe : head : custom : value

Wert eines freien Feldes
Beschreibung siehe "cookml:recipe:custom"

Datentyp: string, XML-Attribut
Unterst�tzung: Zwingend
Kompatibilit�t: Kalorio

cookml : recipe : part

Definition einer Zutatengruppe
Zutaten sind oft sortiert zu Einheiten wie Teig oder Belag. Eine solche Einheit ist hier definierbar. Sofern man der Einheit eine �berschrift geben m�chte, kann man dieses �ber das Attribut "title" tun.

Datentyp: complex type, XML-Element, Sequenz
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : part : title

Benennung einer Zutatengruppe
Zutaten sind oft sortiert zu Einheiten wie Teig oder Belag. Eine solche Einheit ist hier definierbar. Sofern man der Einheit eine �berschrift geben m�chte, kann man dieses �ber das Attribut "title" tun.

Datentyp: complex type, XML-Attribut
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : part : ingredient

Zutat (Wurzel einer neuen Zutat)
Eine neue Zutat beginnt.

Datentyp: complex type, XML-Element, Sequenz
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : part : ingredient : qty

Ben�tigte Menge der Zutat
Hier wird mit einer Zahl die Menge der Einheit beschrieben. Diese Zahl bezieht sich immer auf ing:unit. Erlaubt sind nur Dezimalzahlen. Br�che m�ssen zuvor in Gleitkommazaheln umgerechnet werden.

Datentyp: float, XML-Attribut, Singul�r
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : part : ingredient : unit

Einheit der Zutat
Die Einheit der Zutatenbeschreibung. Damit die Rezepte international ausgetauscht werden k�nnen, d�rfen keine nationalen Einheiten benutzt werden sondern ausschliesslich amerikanische Einheiten. Hierf�r gibt es einen Quasi-Standard bei Rezepten: Meal-Master. In Unit d�rfen nur g�ltige Mealmaster-Einheiten Verwendung finden. Eine Liste der erlaubten Einheiten und deutschen Entsprechungen gibt es im Kapitel "Erlaubte Einheiten".

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : part : ingredient : item

Name der Zutat
Der Name der eigentlichen Zutat. Hier darf wirklich nur der Name aufgef�hrt sein und nicht eine n�here Beschreibung (diese ist in inote anzugeben). Statt also "Festkochende Kartoffeln" hier anzugeben darf nur "Kartoffel" stehen und in inote dann "festkochend".

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : part : ingredient : inote

Weiterreichende Beschreibung der Zutat
In ing:item darf nur der Name stehen. Sind weitere Beschreibungen n�tig, so k�nnen sie hier getrennt vom Name der Zutat aufgef�hrt werden. Statt also "Festkochende Kartoffeln"  anzugegeben darf nur ing:item="Kartoffel" sein und <inote>festkochend</inote>

Datentyp: string, XML-Element von head, Sequenz
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : part : ingredient : bls

Der Zutat entsprechender BLS-Code
Der BLS-Schl�ssel der der Zutat entspricht oder zumindest sehr nahe kommt. Durch die Zuweisung von BLS-Schl�ssel an die Zutaten ist eine jederzeitige Berechnung beliebiger Inhaltsstoffe des Rezeptes m�glich.
Wichtig: Auch wenn ein Programm den BLS nicht selbst unterst�tzt, m�ssen diese Schl�ssel beim Import/Export mit durchgereicht werden.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Unterst�tzung ist optional. Daten m�ssen aber durchgereicht werden.
Kompatibilit�t: Ambrosia, Kalorio

cookml : recipe : part : ingredient : gram

Gramm-Entsprechung bei nicht umrechenbaren Einheiten
Manche Einheiten k�nnen nicht direkt in Gramm umgerechnet werden. F�r eine Berechnung der N�hrstoffe zu einer Zutat ist in Verbindung mit dem Bundeslebensmittel-Schl�ssel eine Mengenentsprechung in Gramm notwendig, die hier dann zusammen mit der Zutat angelegt werden kann. Bei "1 Packung Vanillepulver" kann man also hier "30" (Gramm) angeben. Vorteil der Speicherung: Man macht diese Zuweisung der Grammentsprechung einmalig bei der Rezepterstellung und kann nun die Inhaltsstoffe des Rezeptes jederzeit mit einem Mausklick berechnen lassen.

Datentyp: non negative integer, XML-Attribut, Singul�r
Unterst�tzung: Unterst�tzung ist optional. Daten m�ssen aber durchgereicht werden.
Kompatibilt�t: Ambrosia, Kalorio

cookml : recipe : part : ingredient : shop

Flag, ob Zutat auf Einkaufslisten soll
Sofern hier der Buchstabe "N" steht, taucht die Zutate bei einer Erstellung einer Einkaufsliste zum Rezept nicht auf. Fehlt dieses Tag zu einer Zutat, so wird die Zutat standardm�ssig mit auf die Einkaufsliste genommen.

Datentyp: bool ("true" oder "false"), XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : part : ingredient : calc

Flag, ob Zutat bei N�hrwertberechnung mit ber�cksichtigt werden soll
Bei der Berechnung der Inhaltsstoffe eines Rezeptes gibt es immer wieder Zutaten, die f�r die Berechnung keine Rolle spielen. Diese Zutaten kann man als f�r die Berechnung unbedeutend kennzeichnen, in dem man calc="N" setzt. Die Zutat wird dann bei der Ermittlung der Inhaltsstoffberechnung nicht ber�cksichtigt. Fehlt dieses Attribut bei einem Rezept, so wird die Zutat in die Berechnung mit eingezogen.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Unterst�tzung ist optional. Daten m�ssen aber durchgereicht werden
Kompatibilit�t: Kalorio

cookml : recipe : part : ingredient : ridlink

URL auf ein Rezept, dass als Zutat eingesetzt wird
In manchen Rezepten wird ein anderes Rezept als Grundzutat benutzt. In diesem Falle kann man einer Zutat einen Link auf ein anderes Rezept zuweisen. Im Programm selbst k�nnte man dadurch einen direkten Sprung zu dem Grundrezept erm�glichen.
Der Link besteht dabei aus einer Rezept-ID die recipe:RID entspricht. Sch�n w�re es, wenn man auch in Web-Rezeptdatenbank einmal nach diesen �bergreifenden Rezept-IDs suchen k�nnte.
Ein Beispiel w�re "Grundteig M�rbek�chen" als Grundlage f�r einen Obstkuchen.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t:

cookml : recipe : preparation

Anleitungsschritt (Rezepttext)
Dieser Knoten kapselt alle Verarbeitungsschritte. Dabei gibt es zwei M�glichkeiten:
1. Der gesamte Text wird in einem Tag "text" aufgenommen inklusive aller Zeilenumbr�che und Leerzeilen. "text" darf dabei genau einmal unterhalb von "preparation" vorkommen.
2. Jeder Verarbeitungsschritt wird in einem eigenen Knoten "step" aufgenommen. Step darf beliebig oft unterhalb von "preparation vorkommen. Die Anzahl der "step"-Knoten entspricht also der Anzahl der Veranreitungsschritte. Zwischen den Verarbeitungsschritten sollte das Programm einen Absatz oder Leerzeile in der Anzeige einf�gen, da Leerzeilen am Ende nicht Bestandteil eines steps sein sollten.
Beim Export einer "preparation" darf entweder "test" oder "step" eingesetzt werden aber nicht gemischt.

Datentyp: string, XML-Element, Singul�r
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : preparation : text

Anleitungsschritt (Rezepttext) als kompletter Textk�rper
Siehe Beschreibung zu "preparation"

Datentyp: string, XML-Element, Singul�r
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : preparation : step

Anleitungsschritt (Rezepttext) als Folge von Verarbeitungsschritten
Siehe Beschreibung zu "preparation"

Datentyp: string, XML-Element, Singul�r
Unterst�tzung: Zwingend
Kompatibilit�t: Alle

cookml : recipe : remark

Anmerkung eines Benutzers
In jedem remark kann der Anwender eine eigene Anmerkung zum Rezept ablegen.
Dadurch ist die Unterst�tzung von Fliestext gew�hrleistet und man muss die Rezepttexte nicht mehr nach 70 oder weniger Spalten radikal umrechen.

Datentyp: complex type, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t:

cookml : recipe : remark : user

Der Name des Benutzers einer Anmerkung
Damit beim Export sp�ter noch sichtbar ist, wer die jeweilige Anmerkung gemacht hat, kann hier ein zugeh�riger Benutzername mit angegeben werden.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Kalorio

cookml : recipe : remark : line

Eine Zeile der Anmerkung
Hier wird eine Zeile einer Anmerkung abgelegt.

Datentyp: string, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia, Kalorio

cookml : menu

Ein Men� beginnt
Neben den Rezepten kann cookML auch ganze Men�s �bermitteln. Dabei ist eine Men�definition immer nur als Linkliste auf externe rezepte zu sehen. Innerhalb eines Men�s werden keine Rezepte definiert.
Es ist nat�rlich m�glich, im gleichen cml-File auch gleichzeitig die entsprechenden Rezepte und/oder Getr�nke mit zu liefern aber eben dann in den recipes.

Datentyp: complex type, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia

cookml : menu : title

Name des Men�s
Jedes anst�ndige Men� braucht auch einen Namen um es anzupreisen. Dieser kann hier einem Men� zugewiesen werden.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia

cookml : menu : mcustom

Freie Felderdefinition
In diesem Tag lassen sich beliebige eigene Informationen unterbringen. Bitte bei der Verwendung immer daran denken, da� eigene Informationen, die hier untergebracht werden nicht von Benutzern anderer Programme ausgewertet werden k�nnen. Es ist sinnvoll, Informationen, die allgemein sinnvoll sind hier zur Standardisierung anzumelden. Nur so kann ein Wildwuchs vermieden werden.
"custom" setzt sich zusammen aus den Attributen "name", "datatype" und "value". Name muss in jedem "custom"-Tag vorhanden sein, da es die Aufgabe des Knotens spezifiziert.

Datentyp: string, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia

cookml : menu : mcustom : name

Name eines freien Feldes
Beschreibung siehe "cookml:menu:custom"

Datentyp: string, XML-Attribut
Unterst�tzung: Zwingend
Kompatibilit�t: Ambrosia

cookml : menu : mcustom : datatype

Name eines freien Feldes
Beschreibung siehe "cookml:menu:custom"

Datentyp: string, XML-Attribut
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia

cookml : menu : mcustom : value

Wert eines freien Feldes
Beschreibung siehe "cookml:menu:custom"

Datentyp: string, XML-Attribut
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia 

cookml : menu : mrecipe

Rezept eines Men�s
Hier k�nnen hintereinander Rezepte zu einem Men� zusammengefasst werden.
Achting: Es ist bindend, dass alle Rezepte, die im Men� auftauchen in der gleichen CML-Datei mitgeschickt werden. Ansonsten fehlen all zu leicht Rezepte.

Datentyp: complex type, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia

cookml : menu : mrecipe : amount

Mengenangabe f�r Men�-Rezepte
Dient zur Angabe auf wieviele Einheiten das Rezepts im aktuellen Men� Verwendung finden soll. (also die klassische Hochrechnung der Rezeptmenge auf die im Men� geplante Menge des Rezeptes)
Die Einheit entspricht dabei immer der Einheit, die auch im Rezept Verwendung findet

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia

cookml : menu : mrecipe : persons

Mengenangabe f�r Men�-Rezepte
Gibt unabh�ngig von der im Rezept verwendeten Einheit die Anzahl der Personen an, f�r die das Rezept im Men� vorgesehen ist. Einheit ist immer "Personen". Sinnvoll, da viele Rezepte gerade in der Gastronomie andere Einheiten haben (z.B. "Liter").

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t:

cookml : menu : mrecipe : rid

Rezept-Ident des Men�-Rezeptes
In dem Men�-Strukturen selbst werden keine Rezepte mitgeliefert. Alle Rezepte werden hier nur als Link angegeben. Der Link bezieht sich dabei auf die Angaben recipe:RID.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t:

cookml : menu : mrecipe :title

Name des Men�-Rezeptes
Zur Sicherheit hier auch der Titel des Rezeptes. Er sollte mit jedem Rezept angegeben sein, falls die Rezept-ID nicht gefunden wird.

Datentyp: string, XML-Attribut, Singul�r
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia

cookml : menu : mrecipe : desc

N�here Angaben zum Men�-Rezept
Da das Rezept innerhalb eines Men�s oftmals eine besondere ihm zugedachte Stellung einnehmen kann, ist es m�glich hier eine eigens f�r das Men� passende Beschreibung mitzugeben.

Datentyp: string, XML-Element, Sequenz
Unterst�tzung: Optional
Kompatibilit�t: Ambrosia

Verwendeter Zeichensatz:

CML-Dateien werden immer unter Verwendung der UTF-8-Codierung erzeugt.
UTF-8 ist die einfachste Form von Unicode: Jedes ASCII-Zeichen mit einem ASCII-Wert <127 wird weiterhin als ASCII-Zeichen verwendet. Sonderzeichen mit einem ASCII-Wert >= 127 sind als 16-Bit-Unicode, also in Form von 2 Bytes zu �bertragen. Viele Bibliotheken �bernehmen diese Umwandlung. Falls diese Umsetzung selbst programmiert wird, bietet folgende Umsetzungstabelle eine Hilfe.

� (0xC384) � (0xC3A4) � (0xC380) � (0xC3A0) � (0xC381) � (0xC3A1) � (0xC382) � (0xC3A2) � (0xC383) � (0xC3A3)
    � (0xC388) � (0xC3A8) � (0xC389) � (0xC3A9) � (0xC38A) � (0xC3AA) � (0xC38B) � (0xC3AB)
    � (0xC38C) � (0xC3AC) � (0xC38D) � (0xC3AD) � (0xC38E) � (0xC3AE) � (0xC38F) � (0xC3AF)
� (0xC396) � (0xC3B6) � (0xC392) � (0xC3B2) � (0xC393) � (0xC3B3) � (0xC394) � (0xC3B4) � (0xC395) � (0xC3B5)
� (0xC39C) � (0xC3BC) � (0xC399) � (0xC3B9) � (0xC39A) � (0xC3BA) � (0xC39B) � (0xC3BB)    
� (0xC39F) � (0xC386) � (0xC3A6) � (0xC387) � (0xC3A7) � (0xC391) � (0xC3B1)      
� (0xC2B0) � (0xC2A9) � (0xC2BC) � (0xC2BD) � (0xC2BE) � (0xC3B8)        

Aufbau der Rezept-ID:

Die Rezept-IDs m�ssen immer nach dem gleichen Schema aufgebaut werden. Hier wird die ID von Rolf Wilhelm eingesetzt, der diese schon seit einiger Zeit in seinem Programm Ambrosia einsetzt und die allgemein akzeptiert ist.

Die CookML-Rezept-ID besteht immer aus zwei 32 Bit Werten.

Wert 1:
Kodiertes Datum Bit 0-30
0 1 2 3
Bit 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Minute |Stunde |Tag |Monat |Jahr-1980
6 Bit 5 Bit 5 Bit 4 Bit 11 Bit

Wert 2:
0 1 2 3
Bit 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Serial-ID |Creator-ID
20 Bit 12 Bit

Generator-ID:
Der in Windows bekannte Benutzername wird wie folgt aufsummiert:
For Each Character: Creator-ID += Ascii(Character) * Character-Position
Character-Position: 1-n
�berl�ufe werden ignoriert, ebenso Gross/Kleinschreibung

Serial-ID:
Beginnend mit einem Zufallswert wird der Counter bei jeder Fingerprint-Neugenerierung
um 1 hochgez�hlt, ein �berlauf wird ignoriert.

Update:
Verf�gt ein Objekt �ber einen g�ltigen Fingerprint, so wird im Falle eines Update
nur noch das Datum angepasst, Serial-ID sowie Creator-ID bleiben gleich.
Dies ist im Gegensatz zur ersten Implementierung der wesentliche Unterschied, hier
wurde der damalige "Counter" (jetzt neu "Serial-ID") um eins erh�ht sowie die
Creator-ID auf den aktuellen Wert angepasst. Die Korrektur wurde notwendig, um neue
Versionen eines Objektes identifizieren zu k�nnen.


Erlaubte Einheiten f�r die Zutaten

CookML ist ein internationales Format. Daher sind alle Einheiten im amerikanischen Format anzugeben und gegebenenfalls umzurechnen.
Im Folgenden ein Liste, in der links die f�r den Transfer erlaubten Einheiten und rechts die deutsche Entsprechung stehen.
Diese Liste entspricht den Mealmaster-Einheiten und erleichtert die Implementierung, sofern das Mealmaster-Format auch unterst�tzt wird.

fl fluid ounce ~ 30 ml
x per serving  pro Portion
c cup  = 250 ml
sm small  klein
pt pint  1/2 Liter
md medium  mittel
qt quart  1 Liter
lg large gross
ga gallon  4 Liter
cn can  Dose
oz ounce  ~ 30 g
pk package  Packung
lb pound  ~ 450 g
pn pinch  Prise, Msp.
ml milliliter  ccm
cb cubic cm  ccm
dr drop  Tropfen
ds dash Schuss, Spur
cl centiliter  10 ccm
ct carton  Karton
dc deciliter  100 ccm = 0,1 Liter
bn bunch Bund 
l liter  Liter
sl slice Scheibe
mg milligram  Milligramm
ea each  pro Portion
cg centigram  1/100 Gramm
t teaspoon Teeloeffel 
dg decigram  1/10 Gramm
ts teaspoon Teeloeffel 
g gram  Gramm
T tablespoon Essloeffel 
tb tablespoon Essloeffel 
kg kilogram  Kilogramm

Zurück zum Seitenanfang


  

Weitere Hinweise zu den Seiten finden Sie in unserem Impressum
Hier finden Sie Hinweise zu unseren Datenschutzbestimmungen
Copyright © 2023 CODEV, Jochen Herz, www.kalorio.de