##### 37.3.5.3 Understanding why TextStore and CodeStore work differently

DITA2Go DCL “write” filters, such as dwhtm.dll, operate in two phases:

Scan phase: | The results of converting XML to DCL are stored in linked lists in memory.
Write phase: | The linked lists in memory are traversed, additional information is collected, and output files are written.

TextStore

TextStore information is set during scan phase, and is available during write phase.

CodeStore

CodeStore information is set during write phase, and is available only after the point in the DITA file where the CodeStore paragraph occurs.

Scan phase

During scan phase, information needed to produce the final output is incomplete. For example, links to other files (including links among split files) are not resolved until the end of the scan phase. TextStore processing is able to save the text content of a paragraph during scan phase, because the text content is known at that time. The TextStore property excludes items that are not known, such as links. This is the same mechanism used to generate Title content.

Write phase

During write phase, DITA2Go makes numerous cross-list accesses to pick up bits of information needed to build the final output. Links are completed, macros are executed, tables are constructed, graphics names are determined, and coded text is generated. CodeStore processing saves the coded text from a paragraph assigned the CodeStore property; however, at that point previous paragraphs have already been written to final output, and cannot be altered.

Previous Topic: 37.3.5.2 Inserting code with the CodeStore property

Next Topic: 37.4 Using multiple-value list variables

Parent Topic: 37.3.5 Creating macro variables from paragraph content

Sibling Topics:

37.3.5.1 Capturing paragraph content with the TextStore property

37.3.5.2 Inserting code with the CodeStore property