paged.IDML Reference
Round-tripping & version compatibility

Compatibility

How IDML grows between InDesign versions, how it carries documents to older versions, and what a tool that rewrites a package must keep for InDesign.

Tier: ProProIIIexplanation

IDML grows by addition, travels both up and down between InDesign versions, and survives a round trip through another tool only if that tool writes back what it did not understand.

In short Each InDesign version can add elements and attributes; it rarely removes or renames them, so a newer package is mostly an older one plus extra vocabulary. A newer InDesign opens an older package, and IDML is also how a document goes the other way: an older InDesign (CS4 or later) cannot open a newer .indd, but it can open an IDML export. A tool that rewrites a package in between has to keep the parts and attributes it did not read, and spell what it writes the way InDesign does, or InDesign opens the result differently from the file that went in.

The vocabulary grows by addition

A package follows the document model named by its DOMVersion. When InDesign gains a feature, its packages gain the elements and attributes that describe it. The package layout (the mimetype, the design map, the spread, story and resource parts) has not changed since the first version that wrote IDML. A reader built for one version therefore finds the parts it knows where it expects them in files from other versions, and the parts it does not know are additions it can skip.

readerVersion in the <?aid ?> instruction, the producer's claim about the oldest reader that can open the package, is 6.0 in every InDesign-written package we have seen, whatever version wrote it.

Up and down between InDesign versions

  • Upward. A newer InDesign opens IDML written by an older one.
  • Downward. An .indd saved by a newer InDesign does not open in an older one. Exporting IDML from the newer version and opening that in the older one is the way across. What the older version has no model for cannot survive the trip.
  • Before IDML. InDesign CS3 and earlier had their own XML interchange format, INX. IDML replaced it in CS4 (version 6.0, the readerVersion every package names).

Books are not IDML

An InDesign book (.indb) is a separate file that lists several documents. IDML describes one document: each document of a book exports as its own package, and nothing in a package records that it belongs to a book.

What a tool that rewrites a package must keep

A round trip through another tool and back to InDesign preserves the document only if the tool:

  • writes back every part it did not change, including the ones it never read: fonts, preferences, tags, metadata, the XML structure in XML/BackingStory.xml;
  • keeps the attributes and child elements it did not understand on the elements it does rewrite, and the order of the elements it does not move;
  • spells what it writes the way InDesign does. InDesign reads some properties only as typed <Properties> children, needs PageCount and BindingLocation on every spread, and does not read a missing ItemTransform as the identity: it places the item relative to the spread's first page, so an item meant for the right-hand page of a facing spread lands on the left one. The full list is on what InDesign needs to open a file.

Two behaviours of InDesign on opening are worth knowing because they change a package without anyone editing it: a story that no text frame references is discarded, and a face the text applies but Resources/Fonts.xml does not declare is reported as not available.

A tool's own reader cannot check any of this. A file that its writer produces and its reader accepts can still open wrong in InDesign, because both share the same assumptions. Only opening the file in InDesign settles it.

In Paged: Paged writes IDML by patching the package it read, never by regenerating it. Every entry it did not change is copied with its original compressed bytes; spreads, master spreads, stories, the design map and four resource parts are rewritten by a pass that replaces only the attributes and text the edit touched; a new spread or story is generated as a whole part and added to the design map. Over 99 corpus packages, an unedited round trip came back byte-identical: 11,876 entries, no differences. Two changes are made on purpose, both to match InDesign: a story no frame references is dropped, and Fonts.xml gains every applied face it did not declare.

An untouched ItemTransform or StrokeWeight keeps its source spelling, a FillTint of -1 is kept rather than deleted, and an identity ItemTransform is always written, never removed. (Removing it once made every save toggle the attribute, and InDesign then drew the right-hand pages of a book on the left ones.) Known gaps: a removed page leaves its entry behind, a master spread created in Paged is not written, and an item's hidden state, a name set in Paged and text variables authored in Paged do not reach the IDML yet. Export returns a list of what the format could not carry.

A .paged file is a valid IDML package with Paged's own parts added under paged/, so InDesign opens it as IDML. Tracked

Frequently asked questions

Can an older version of InDesign open IDML from a newer one? Yes, back to InDesign CS4, which is the reason IDML exists alongside .indd. Features the older version has no model for are lost on the way.

What is INX? The XML interchange format of InDesign CS3 and earlier. IDML replaced it in CS4.

Can IDML hold an InDesign book? No. A book (.indb) is a list of documents; each document exports as its own IDML package, and the package does not record the book.

Why does a package written by my tool open differently in InDesign than in my tool? Usually because the writer relies on a default InDesign does not apply: a missing ItemTransform read as identity, a property written as an attribute that InDesign reads only as a typed child, a spread without PageCount. Your reader shares the writer's assumptions, so only InDesign shows the difference. See what InDesign needs to open a file.

On this page