IDML is not for utilising as a template manager.
IDML was introduced for
1. As a method to save files from later versions of Indesign to be opened in previous versions
2. For problematic old files not opening correctly in a newer version of Indesign
3. General corruption clearing of a file when it misbehaves unexpectedly.
For Templates you should save as an InDesign Template
This will allow you to use the Open commands as you want to.
Open Normal - will open the Template in InDesign ready for Editing
Open Original - will open the Template in InDesign to edit the Template file and resave
Open Copy - opens a copy of the original file to be edited.
@mhandze – No.
IDs are built anew every time you open an IDML in InDesign.
Or if you use IDMS it's the same, if you place the snippets.
method and extract the values in InDesign with:
myValueString = myObject.extractLabel("KeyString");
You can see the labels in IDML or IDMS and could retrieve the labels directly from IDML or IDMS.
Or use advanced editing methods to insert the labels directly in IDML and IDMS.
Ok, it seems like there is no way to force InDesign to not create new IDs for objects on opening .IDML file.
My other idea was to mark Stories with my custom property, so I can reference using that one instead of IDML component name.
<Story Self="u2f98" AppliedTOCStyle="n" TrackChanges="false" StoryTitle="$ID/" AppliedNamedGrid="n" CustomName="customValue">
However, when I put this change into .IDML and open it with InDesign (or with Applescript) and print all properties for this "Story" I can't see that CustomName in here.
Is it possible that InDesign will ignore all properties not defined in specification ?
So, another question came. How can I add new property for .IDML tags ?