Search code examples
adobeadobe-indesign

Why does InDesign put "c_" before literal text?


I'm working with the old interchange format of Adobe InDesign (.inx files).

This XML file has text contents like the following:

<pcnt>c_Stackoverflow&#13;&#13;</pcnt>

Which results in

Stackoverflow<CR><CR>

Question: Why does it put c_ before the actual value and not simply use CDATA in doubt?


Solution

  • Adobe has been encoding everything.

    The reason they prefix the payload is because you can have several values in a single field, hence, CDATA would not be working.

    c_ indicates a string

    x_ represents a list (enum)

    x_a represents a list with 0x0a items (a = 10 hexadecimal)

    l_ represents a long

    See a full list of all prefixes in the PDF:

    http://partners.adobe.com/public/developer/en/indesign/sdk/working_with_inx_file_format.pdf