SOLVED: Structured FM and Index Markers

Lofthouse Marsha-PT1816 Marsha.Lofthouse at motorola.com
Tue Jan 2 11:10:32 PST 2007


Thanks to Rick Quatro and Scott Prentice for their replies to my query
below.

I ended up writing an XSL identity transform to take care of the issue
of having three attributes. The identity transforms processes all
elements and attributes by copying them. It then overrides the existing
IndexTerm element with the following template:

	<!-- Match all <IndexTerm> elements and place all LevelTwo
		and LevelThree attribute values in the LevelOne
attribute,
		separated by a colon. -->
	<xsl:template match = "IndexTerm">
		<xsl:element name = "IndexTerm">
			<xsl:attribute name = "LevelOne">
				<xsl:value-of select = "@LevelOne"/>
				<xsl:if test =
"@LevelTwo">:<xsl:value-of select = "@LevelTwo"/>
				</xsl:if>
				<xsl:if test =
"@LevelThree">:<xsl:value-of select = "@LevelThree"/>
				</xsl:if>
			</xsl:attribute>
			<xsl:apply-templates/>
		</xsl:element>
	</xsl:template>

The template creates a new IndexTerm element with only one attribute,
LevelOne. The transform reads the value of the existing LevelOne
attribute. If a LevelTwo attribute exists, the transform adds a colon
and the value of the LevelTwo attribute to the new LevelOne attribute.
It then checks for the existance of a LevelThree attribute and, if
found, adds another colon and the value of the LevelThree attribute.
Bottom line is that the new IndexTerm element has a single attribute
created by getting the value of the old LevelOne attribute, adding a
colon, adding the value of the old LevelTwo attribute, adding another
colon, and finally, adding the value of the old LevelThree attribute.

I run the transform before opening the XML in FrameMaker. I have to do
this manually because I'm still using FM 7.1. If you have 7.2 you can
automate this process.

The read/write rule for IndexTerm looks like this:
	element "IndexTerm" 
	{
	is fm marker element "IndexTerm";
	attribute "LevelOne" is fm property marker text;
	}


I hope this helps someone else.

M
Marsha Lofthouse
Motorola, Inc., Public Safety Applications
North America Government & Commercial Markets Division
Boulder Design Center
Marsha.Lofthouse at motorola.com
303.527.4178
  


----- Original Message -----
From: "Lofthouse Marsha-PT1816" <Marsha.Lofthouse at motorola.com>
To: <framers at lists.frameusers.com>
Sent: Wednesday, December 20, 2006 4:26 PM
Subject: Structured FM and Index Markers


I'm in the process of converting some XML documents created with an
application that is not FrameMaker using a DTD that does not match ours.
I'm close, thanks to the generous help of people on this list.

Today's issue is index markers. The source XML looks like this:
<IndexTerm LevelOne="location management screen" LevelTwo="edit location
attributes" />
where Index Term is the element and LevelOne and LevelTwo are
attributes. There can also be a LevelThree.

My read/write rules relating to IndexTerm are:
element "IndexTerm"
{
is fm marker element "IndexTerm";
attribute "LevelOne" is fm property marker text;
attribute "LevelTwo" is fm property marker text;
attribute "LevelThree" is fm property marker text;
}

However, only the LevelOne text is coming into the FM index marker.

So the questions are:
1. How do I get the values of LevelTwo and LevelThree attributes to also
translate into the FM index marker?
2. How do I place the appropriate punctuation in the index marker?
(e.g., The index marker for the example above should be "location
management screen:edit location attributes". Notice the colon between
the LevelOne and LevelTwo attribute values.)

Thanks in advance to anyone who has time to look at this at this busy
time of the year.

M

Marsha Lofthouse
Motorola, Inc., Public Safety Applications
North America Government & Commercial Markets Division
Boulder Design Center
Marsha.Lofthouse at motorola.com
303.527.4178


_______________________________________________


You are currently subscribed to Framers as frameexpert at truevine.net.

Send list messages to framers at lists.frameusers.com.

To unsubscribe send a blank email to
framers-unsubscribe at lists.frameusers.com
or visit 
http://lists.frameusers.com/mailman/options/framers/frameexpert%40truevi
ne.net

Send administrative questions to listadmin at frameusers.com. Visit
http://www.frameusers.com/ for more resources and info.




More information about the framers mailing list