Page 1 of 1

Specialization Breaking the Maps Manager Title

Posted: Wed Jul 27, 2011 9:35 pm
by bpopp
I'm having an issue where the Maps Manager can no longer parse a document's title if I specialize DITA's composite element (dita). I've created my own composite wrapper called fxdita which defines all my custom topic types (fxtopic, fxprocedure, etc.) If I use this wrapper, the maps manager no longer displays the file's title correctly, ie:

Image

Interestingly enough, if I remove the wrapper and just use one of my specialized topic types, the Maps Manager parses the title correctly.

Any help would be greatly appreciated!

Brian

Re: Specialization Breaking the Maps Manager Title

Posted: Thu Jul 28, 2011 2:35 pm
by sorin_ristache
Hello,

Oxygen looks at the class attribute of the root element of the file referenced in the map and if it contains

Code: Select all

 topic/topic 

it will look at the class attribute of the first child of the root element. If it contains

Code: Select all

 topic/title 

or

Code: Select all

 topic/titlealts 

the text child node of that element is displayed as the title of that topicref in the map. If the root element does not have a class attribute that file will have a title in the DITA Maps Manager view only if the root element is called dita.

Does your specialization keep the

Code: Select all

 topic/topic 

string in the class attribute? Can you send us (using the Technical Support form) some sample files of your specialization including the DTD files in order to look into the problem?


Thank you,
Sorin

Re: Specialization Breaking the Maps Manager Title

Posted: Thu Jul 28, 2011 9:52 pm
by bpopp
Good information, but that's not really what I'm seeing. You must be making an exception for composite wrappers (like dita). For example, if I have a file in a map that looks like this:

Code: Select all

<!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd">
<dita>
<topic id="DFS" >
<title>Blah</title>
<body/>
</topic>
</dita>
The icon changes and the "Blah" shows correctly in the Maps Manager. There is no "class" attribute for the root element (dita in this case). If I replace the composite with my comparable specialization:

Code: Select all

<!DOCTYPE fxdita PUBLIC "-//FEDEX//DTD DITA Composite//EN" "fxditabase.dtd">
<fxdita>
<fxtopic id="DFS" >
<title>Blah</title>
<fxbody/>
</fxtopic>
</fxdita>
The icon changes back and the title disappears (as shown above). The class attribute for my specialized topic (fxtopic) shows as:

Code: Select all

"- topic/topic fxtopic/fxtopic "
and the class attribute for my topic (not specialized) remains as:

Code: Select all

"- topic/title "

Re: Specialization Breaking the Maps Manager Title

Posted: Fri Jul 29, 2011 10:20 am
by sorin_ristache
bpopp wrote:The icon changes back and the title disappears (as shown above). The class attribute for my specialized topic (fxtopic) shows as:

Code: Select all

"- topic/topic fxtopic/fxtopic "
In the current version (12.2) only the files with a dita root element are accepted as DITA composites. I think Oxygen should relax this condition and accept any root element name as long as the class attribute of each child element of the root contains

Code: Select all

 topic/topic 
We will consider that for a future version of Oxygen.


Thank you for the example,
Sorin

Re: Specialization Breaking the Maps Manager Title

Posted: Mon Aug 01, 2011 3:02 pm
by Radu
Hi Brian,

The DITA 1.2 specification (true also for older DITA versions) for <dita> composites:
http://docs.oasis-open.org/dita/v1.2/os ... .html#dita

states:
Inheritance

Not a specializable DITA element.
So according to the specification you cannot specialize on <dita> to become <fxdita> as it has no class attribute.

Regards,
Radu

Re: Specialization Breaking the Maps Manager Title

Posted: Tue Aug 02, 2011 12:17 am
by bpopp
I did not know that. I guess the only way to add specializations to the composite would be to change the ditabase.dtd. Seems kinda cludgy. I think I'll just avoid using composites. Thanks for the information.