# Output Projection
An **output projection** converts a semantic or normalized value into the representation required by a consumer or [[wiki/Named Target|named target]].
Examples include projecting the same record set as:
- HTML;
- CSV;
- XML;
- a table or interactive datatable;
- RSS;
- Markdown;
- JSON.
Output projection is distinct from transformation. Transformation changes the meaning, selection, arrangement, or content of data. Projection changes how the resulting value is represented.
```text
source data
↓
semantic transformation
↓
normalized value
↓
output projection
↓
HTML | CSV | XML | table | RSS | another representation
```
In [[projects/XDO - Executable Markdown and Portable Workflows|XDO]], `_do_as` was the projection layer. A value could be transformed once, stored in document, site/account, or global/system scope, retrieved later, transformed again if necessary, and projected differently for each destination.
This separation improves reuse because semantic logic is not rewritten for every format. It also allows site-specific presentation adapters to override system defaults without changing the underlying Do program.
Related concepts:
- [[wiki/Normalized Output|Normalized Output]]
- [[wiki/Data Serialization|Data Serialization]]
- [[wiki/Host Adapter|Host Adapter]]
- [[wiki/Named Target|Named Target]]
- [[wiki/Portable Contract|Portable Contract]]