On 10/09/2015 11:37 AM, Ignacio García Soblechero wrote:
Hello,I'm rebuilding my product's documentation so it's better structured. For this reason, Where I had one sublevel of ditamaps and every conditional processing attibute in each topic, now I'm having two or even three levels of ditamaps and some of the conditional attributes (I use mainly audience, although others may be used later) are moved to the ditamap, so I can exclude or include several files (the corresponding branch of the index tree) with only one declaration. I'm having problems with this workaround. Here I give you an example of something that doesn't work as I expect: map1.ditamap: ... <topicref format="ditamap" href="map2.ditamap"/> ... map2.ditamap: ... <topicref format="ditamap" href="map3.ditamap" audience="role1 role2"/> ... map3.ditamap: ... <topicref href="topic.dita" audience="role3"/> ... val.ditaval: ... <prop action="include" att="audience" val="role1"/> <prop action="include" att="audience" val="role2"/> <prop action="exclude" att="audience" val="role3"/> ... I suppose this example should work as follows: 1. ditac processes map1.ditamap. It finds map2.ditamap, that hasn't got any conditional processing attributes, so it reads it. 2. ditac processes map2.ditamap. It finds map3.ditamap, that has a conditional processing attribute, audience, with values role1 and role2. As both values are included in val.ditaval, it reads map3.ditamap (this would work also if only one of the values were included and the rest excluded). 3. ditac processes map3.ditamap. It finds topic.dita, that has a conditional processing attribute, audience, with value role3. This value is excluded in val.ditaval, so it should be not processed. Here lies my problem: it is processed. Is there any failure in my example? Have I forgotten anything? Is there any bug there? I can't find where's the problem.
I would say that ditac is conforming to the DITA spec in the above use case. The "audience" attribute is additive and cascade from map to map. See 2.1.2.3.5 Map-to-map cascading behaviors http://docs.oasis-open.org/dita/v1.2/os/spec/archSpec/map-to-map-cascading-of-metadata.html#map-to-map-cascading-of-metadata Therefore by specifying: --- <topicref format="ditamap" href="map3.ditamap" audience="role1 role2"/> --- and in map3.ditamap: --- <topicref href="topic.dita" audience="role3"/> --- You end up with the equivalent of: --- <topicref href="topic.dita" audience="role1 role2 role3"/> --- Hence topic.dita is included by ditac in the realized document. -- XMLmind DITA Converter Support List [email protected] http://www.xmlmind.com/mailman/listinfo/ditac-support

