paged.IDML Reference
Cookbook

Read which InDesign version wrote a file

Find the InDesign build that wrote an IDML file in the <?aid ?> product field of designmap.xml, and the document-model revision in DOMVersion.

Tier: BeginnerBeginnerIhow-to

Open designmap.xml and read two values: product in the <?aid ?> instruction names the InDesign build, DOMVersion names the document-model revision.

In short The second line of designmap.xml is a processing instruction such as <?aid style="50" type="document" readerVersion="6.0" featureSet="257" product="20.0(32)"?>. Its product is the version and build of the InDesign that wrote the package: 20.0(32) is InDesign 20.0, build 32. The Document element right after it carries DOMVersion, here 20.0, which is repeated on the root element of every other part (see DOMVersion). Ignore readerVersion and featureSet: they are the same in every InDesign-written package. Download a sample to try it on.

Steps

  1. Read designmap.xml out of the ZIP. It is at the root of the archive.
  2. Find the <?aid ?> processing instruction before the Document element and read its product. The part before the parenthesis is the application version; the number in parentheses is the build.
  3. Read DOMVersion on the Document element for the document-model revision.

From a shell:

unzip -p two-stories.idml designmap.xml | head -n 3

The top of a design map: the <?aid ?> instruction with product="20.0(32)", then Document with DOMVersion="20.0".

designmap.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?aid style="50" type="document" readerVersion="6.0" featureSet="257" product="20.0(32)"?>
<Document xmlns:idPkg="http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging" DOMVersion="20.0" Self="d" StoryList="ustory1 ustory2" Name="two-stories.indd" CMYKProfile="Coated FOGRA39 (ISO 12647-2:2004)" RGBProfile="sRGB IEC61966-2.1" SolidColorIntent="UseColorSettings" AfterBlendingIntent="UseColorSettings" DefaultImageIntent="UseColorSettings">
  <idPkg:Graphic src="Resources/Graphic.xml"/>
  <idPkg:Fonts src="Resources/Fonts.xml"/>
  <idPkg:Styles src="Resources/Styles.xml"/>
  <idPkg:Preferences src="Resources/Preferences.xml"/>
  <idPkg:Tags src="XML/Tags.xml"/>
  <idPkg:MasterSpread src="MasterSpreads/MasterSpread_umaster.xml"/>
  <idPkg:Spread src="Spreads/Spread_uspread.xml"/>
  <idPkg:Story src="Stories/Story_ustory1.xml"/>
  <idPkg:Story src="Stories/Story_ustory2.xml"/>
  <idPkg:BackingStory src="XML/BackingStory.xml"/>
</Document>

Reading the numbers

DOMVersion follows the application's major and minor version but is not raised by every point release, so InDesign 20.1 writes DOMVersion="20.0". Use product to name the exact release and DOMVersion to know which vocabulary to expect.

Version in productRelease
6.0InDesign CS4, the first to write IDML
7.xInDesign CS5 / CS5.5
8.xInDesign CS6
9.x–19.xInDesign CC through 2024
20.xInDesign 2025
21.xInDesign 2026

A package written by another program may copy these values from an InDesign export, so they say what the program claims to follow, not necessarily what produced the file.

The fields themselves are documented on version markers.

Frequently asked questions

Where is the InDesign version stored in an IDML file? In the product pseudo-attribute of the <?aid ?> processing instruction near the top of designmap.xml, for example product="20.0(32)".

What is the difference between product and DOMVersion? product is the exact build that wrote the file. DOMVersion is the revision of InDesign's document model the file follows; point releases often keep the previous one, so InDesign 20.1 still writes 20.0.

Can I tell the version without unzipping the whole file? Yes. Read only the designmap.xml entry from the ZIP; the instruction is in its first few hundred bytes.

On this page