Duplicate IDs when Saving as XML

Jeremy H. Griffith jeremy at omsys.com
Thu Mar 2 11:09:27 PST 2006


On Thu, 2 Mar 2006 16:20:48 -0000, "Karen West" <klw at cyberscience.com> 
wrote:

>Rick suggested:
>
>> I would suggest trying Mif2Go (http://www.omsys.com) to 
>> generate your XML from unstructured FrameMaker. It is 
>> easier to customize the output you get and it should 
>> resolve the duplicate ID problem. 

Thanks, Rick!

If you actually have duplicate IDs, meaning the same number as
the ObjectID of two paragraphs (in the MIF <Unique 123456> tag),
then no, Mif2Go will not correct this problem.  But it is very
uncommon in unstructured Frame.  (Structured is another story.)

Frame assigns a new ID whenever you copy/paste or create a new
para.  However, if you cut/paste (within the same file), it 
retains the previous ID, correctly so.  So if you do run into 
this unlikely problem, the fix is to select one of the paras
with the duplicate ID, copy (not cut) it, delete it, then paste
it back.  It will get a new ID and all will be well.

However, that's not the problem in the original post, where
you had:
  <A href="install.xml#id(Installation)" ... 
Here the problem is purely with Frame's XML output, which
seems to be using the paratext as the ID, a Really Bad Idea.
Mif2Go uses the <Unique> ObjectID instead, which is safer...

>Thanks for the suggestion Rick. Unfortunately I'm getting invalid xml
>generated by Mif2Go.  
>
><code80> </code80>
>
>Viewed in Internet Explorer it says "Reference to undefined entity 'nbsp'."

It's a good idea to define at least the common entities in your
XML DTD; else this will bite you elsewhere too.

>I guess I shall have to email their technical support and see if they can
>help. I don't know why there's a non-breaking space there as there isn't in
>the Frame document. It's just a blank line in a table...

We add the   because some browsers will not render the
borders, margins, and padding of a completely empty cell
correctly.  If you are sure this is not needed for your use,
you can remove it with:

[Table]
EmptyTbCellContent=

The empty value disables the  , or you can put in any
other content you want.  Note that 0 inserts an actual "0".

HTH!

-- Jeremy H. Griffith, at Omni Systems Inc.
  <jeremy at omsys.com>  http://www.omsys.com/



More information about the framers mailing list