<!ELEMENT migration (databank, functions?, steps)>
<!ELEMENT databank (source, target)>
<!ELEMENT source EMPTY>
<!ATTLIST source
   url CDATA #REQUIRED
   driver CDATA #REQUIRED
>
<!ELEMENT target EMPTY>
<!ATTLIST target
   url CDATA #REQUIRED
   driver CDATA #REQUIRED
   user CDATA #REQUIRED
   password CDATA #REQUIRED
>
<!ELEMENT functions (function*)>
<!ELEMENT function EMPTY>
<!ATTLIST function
   name CDATA #REQUIRED
   sql CDATA #REQUIRED
>
<!ELEMENT steps (step*)>
<!ELEMENT step (field*)>
<!ATTLIST step
   name CDATA #REQUIRED
   source_table CDATA #REQUIRED
   target_table CDATA #REQUIRED
   clear_target (true|false) #REQUIRED
   output (db|file|both) #REQUIRED
   sliced (true|false) #IMPLIED
   slice_size CDATA #IMPLIED
   slice_key CDATA #IMPLIED
>
<!ELEMENT field EMPTY>
<!ATTLIST field
   from CDATA #REQUIRED
   to  CDATA #REQUIRED
   type (int|long|string|timestamp|blob|longVarbin|longVarchar|date|new-int|new-long|new-string|new-timestamp|new-blob|new-date) #REQUIRED
   value CDATA #IMPLIED
>

