DataWeave is a template engine that transforms data between formats like XML, CSV, JSON. It has a header section for directives and a body section that describes the output structure. The header defines metadata and the body contains expressions that generate the output data model, which can be objects, arrays or literals. An example shows transforming XML input to JSON output by mapping elements to keys in the output object defined in the DataWeave body.