Skip to main content
Inspiring
July 16, 2015
Answered

User variables being renamed to fmv1, fmv2, fmv3, etc.

  • July 16, 2015
  • 1 reply
  • 591 views

Working with DITA 1.3 in FrameMaker 2015. Had added several user variables, but after relaunching FrameMaker and loading the XML files, found that the variables had been renamed to fmv1, fmv2, fmv3, etc.

Is this because I'm working with the DITA structure?

This topic has been closed for replies.
Correct answer Eager Beager

I realized that I had spaces in my variable names, which was causing FrameMaker to perform substitution of fmv#

For example, instead of:

  • Color lowercase
  • Colors lowercase
  • Color uppercase
  • Colors uppercase

I should have used:

  • Color_lowercase
  • Colors_lowercase
  • Color_uppercase
  • Colors_uppercase

The FrameMaker 2015 documentation doesn't explicitly state that spaces are not allowed in variable names, and the FrameMaker interface permits spaces when typing name in the Add/Edit Variable pod. All the system variables have spaces in the name, so I didn't see issue with user variables having spaces. However, I notice that the documentation examples use underscores instead of spaces....

1 reply

Inspiring
July 16, 2015

Looking at an example XML file, one can see where the user variables have been renamed to fmv1, fmv2, fmv3, etc. This occurred when opening the file into FrameMaker, which looks like a bug.


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA 1.3 Composite//EN" "technicalContent/dtd/ditabase.dtd" [

<!-- Begin Document Specific Declarations -->

<!ENTITY fmv1 "color">

<!ENTITY fmv2 "colors">

<!ENTITY fmv3 "Color">

<!ENTITY fmv4 "Colors">

<!-- End Document Specific Declarations -->

]>

<dita><topic id = "id157GA0K0FD6"><title>Variable Definitions</title>

<body><p>&fmv1;</p>

<p>&fmv2;</p>

<p>&fmv3;</p>

<p>&fmv4;</p></body></topic></dita>


ScottPrentice
Inspiring
July 16, 2015

Without doing a bit of work, I don't think you'll get variables to work well in DITA files using the default support in FM. Also, it's typically best to avoid document-defined entities (which is how FM deals with variables in XML) if you plan to use XSLT. This is working "as designed".

However, if you use DITA-FMx, it does support FM variables with DITA. Might want to take a look ..

     http://leximation.com/dita-fmx/

Cheers,

Scott Prentice

Leximation, Inc.

www.leximation.com