That's how content control data binding usually works.
You can bind rich text in 2 ways:
The first way is binding/import of
escaped XHTML content; this import is triggered when the content control tag contains
od:ContentType=application/xhtml+xmlWhen that's encountered, docx4j will take the bound XML value (which contains escaped XHTML) and use its ImportXHTML functionality to automatically convert it to standard WordML content.
Escaped XHTML looks something like:
<yourElement><span>may <b>not</b></span></yourElement>
(since this is going inside a paragraph, it is wrapped in a span; if it was paragraph level, it'd be wrapped in a div)
See further
https://github.com/plutext/docx4j/blob/ ... XHTML.docxThe second way is binding/import of
escaped Flat OPC ie bind rich text content (tag contains 'od:progid=Word.Document'), though I think this is probably less popular; see further
https://github.com/plutext/docx4j/blob/ ... ssing.docxIf your content is just an image, please see
https://github.com/plutext/docx4j/blob/ ... mages.docx