DITA and XMetaL Discussion
sgrayson May 6, 2011 at 4:41 pm
Creating a conditional inside a conrefMay 6, 2011 at 4:41 pmParticipants 4Replies 5Last Activity 11 years, 7 months ago
I've searched through the DITA documentation but can't find the answer. I'm using XMetal Author Enterprise 6.0.
I would like to be able to use a conref for a phrase but be able to insert content into that phrase. For example, I would like to conref this sentence and have the datatype name be a variable I can insert into the conref:
See the [datatype name] datatype for more information.
Creating the conref for the sentence is easy; I just don't know how to add one of the many datatype names each time I use the sentence without creating two conrefs, one on each side of the datatype name. Any ideas?
SteveDerek Read May 6, 2011 at 8:30 pm
Reply to: Creating a conditional inside a conrefMay 6, 2011 at 8:30 pm
Most likely what you are looking for is what our documentation refers to as “conditional text”. Can you have a look at that and see if it sounds like what you want?sgrayson May 7, 2011 at 12:00 am
Reply to: Creating a conditional inside a conrefMay 7, 2011 at 12:00 am
No, that's not quite it I believe. What I would like is more of something like this:
The [parameter] API section provides
the necessary response.
The Product API section provides the necessary response.
The Order API section provides the necessary response.Derek Read May 9, 2011 at 8:49 pm
Reply to: Creating a conditional inside a conrefMay 9, 2011 at 8:49 pm
Conditional text will do this for you. You just need to decide which conditional text attribute makes the most sense for your usage. My first instinct would be to use @product, but that is really intended to produce different outputs for similar but different products.
In your case you could use any of the standard ones, including @otherprops. See the DITA Language Reference topic
Here's your DITA rewritten to use the otherprops conditional text attribute:
The Product OrderAPI section provides the necessary response.
Then when you produce your output you would create a ditaval file that says “include” @otherprops=”product” and “exclude @otherprops=”order” (or the opposite, or both, or neither). XMetaL can be configured so that it will display a dialog for you to pick from and will then automatically generate the ditaval file for you based on your choices.
If you configure XMetaL's conditional text feature you can then set conditional text values and generate output based on them by selecting radio buttons in dialogs:
1) You can use the first two items on the Reuse menu to:
a) Set conditional text value(s) for the current element.
b) Style contional text so that the background of different elements with different conditional text values appear with colours of your choosing.
2) When you generate output you can select the button labelled Show/Hide Conditional Text to change your output based on these values and have XMetaL automatically generate the right ditaval file settings for you.
See these help topics:
Creating and modifying conditions
Apply a condition
Show conditional text in previews and output
Style conditional textsgrayson May 9, 2011 at 10:06 pm
Reply to: Creating a conditional inside a conrefMay 9, 2011 at 10:06 pm
Sorry, Derek, I don't seem to be explaining myself. I want to use the conref multiple times in a document, and have a parameter I provide in each use inserted as the variable in the conref. We have to use lots of conrefs where the only change is one word, and I was looking for a solution where I didn't have to create a conref on each side of a word. I was looking to make the word the variable inside a single conref.
SteveDerek Read May 9, 2011 at 11:12 pm
Reply to: Creating a conditional inside a conrefMay 9, 2011 at 11:12 pm
Sounds to me like what you want just doesn't exist in DITA 1.1. I think the closest you can get is to use conditional text as I have described here.
Perhaps what you really wish to have might be solved using DITA 1.2 and its keyref, keydef, keyword elements and the notion of “key spaces”.
- You must be logged in to reply to this topic.