Page 1 of 1

What I see is not what I get - using a subject scheme hierarchy

Posted: Fri May 13, 2016 6:29 pm
by zuza

Code: Select all

		<subjectdef keys="productSbjKey">
<subjectdef keys="SERIES6">
<subjectdef keys="SERIES6L">
<subjectdef keys="prod6L1">
<subjectdef keys="prod6L1_CONFIG0"/>
<subjectdef keys="prod6L1_CONFIG20"/>
</subjectdef>
<subjectdef keys="prod6L2">
<subjectdef keys="prod6L2_CONFIG10"/>
</subjectdef>
<subjectdef keys="prod6L3"/>
</subjectdef>
<subjectdef keys="SERIES6S">
<subjectdef keys="prod6S1">
<subjectdef keys="prod6S1_CONFIG3"/>
</subjectdef>
<subjectdef keys="prod6S2">
<subjectdef keys="prod6S2_CONFIG5"/>
</subjectdef>
</subjectdef>
<subjectdef keys="SERIES6E">
<subjectdef keys="prod6E2">
<subjectdef keys="prod6E2_CONFIG48"/>
</subjectdef>
</subjectdef>
<subjectdef keys="SERIES6T">
<subjectdef keys="prod6T1"/>
<subjectdef keys="prod6T2"/>
</subjectdef>
<subjectdef keys="SERIES6W">
<subjectdef keys="prod6W1"/>
</subjectdef>
</subjectdef>
<subjectdef keys="SERIES7">
<subjectdef keys="SERIES7S">
<subjectdef keys="prod7S1"/>
</subjectdef>
<subjectdef keys="SERIES7E">
<subjectdef keys="prod7E1"/>
<subjectdef keys="prod7E2"/>
</subjectdef>
<subjectdef keys="SERIES7T">
<subjectdef keys="prod7T1"/>
</subjectdef>
<subjectdef keys="SERIES7P">
<subjectdef keys="prod7P1"/>
</subjectdef>
</subjectdef>
<subjectdef keys="SERIES8">
<subjectdef keys="SERIES8E">
<subjectdef keys="prod8E1"/>
</subjectdef>
<subjectdef keys="SERIES8R">
<subjectdef keys="prod8RE1"/>
</subjectdef>
<subjectdef keys="SERIES8T">
<subjectdef keys="prod8T1"/>
</subjectdef>
<subjectdef keys="SERIES8XU"/>
</subjectdef>
<subjectdef keys="VPRODS">
<subjectdef keyref="SERIES8T"/>
<subjectdef keyref="SERIES8U"/>
<subjectdef keyref="SERIES8R"/>
</subjectdef>
<subjectdef keys="RPRODS">
<subjectdef keyref="SERIES6"/>
<subjectdef keyref="SERIES7"/>
<subjectdef keyref="SERIES8E"/>
</subjectdef>
<subjectdef keys="EPRODS">
<subjectdef keyref="SERIES6E"/>
<subjectdef keyref="SERIES7E"/>
<subjectdef keyref="SERIES8E"/>
</subjectdef>
<subjectdef keys="TPRODS">
<subjectdef keyref="SERIES7S"/>
<subjectdef keyref="SERIES7T"/>
<subjectdef keyref="SERIES7P"/>
</subjectdef>
</subjectdef>
<subjectdef keys="productSbjKey">
<subjectdef keys="SERIES6">
<subjectdef keys="SERIES6L">
<subjectdef keys="prod6L1">
<subjectdef keys="prod6L1_CONFIG0"/>
<subjectdef keys="prod6L1_CONFIG20"/>
</subjectdef>
<subjectdef keys="prod6L2">
<subjectdef keys="prod6L2_CONFIG10"/>
</subjectdef>
<subjectdef keys="prod6L3"/>
</subjectdef>
<subjectdef keys="SERIES6S">
<subjectdef keys="prod6S1">
<subjectdef keys="prod6S1_CONFIG3"/>
</subjectdef>
<subjectdef keys="prod6S2">
<subjectdef keys="prod6S2_CONFIG5"/>
</subjectdef>
</subjectdef>
<subjectdef keys="SERIES6E">
<subjectdef keys="prod6E2">
<subjectdef keys="prod6E2_CONFIG48"/>
</subjectdef>
</subjectdef>
<subjectdef keys="SERIES6T">
<subjectdef keys="prod6T1"/>
<subjectdef keys="prod6T2"/>
</subjectdef>
<subjectdef keys="SERIES6W">
<subjectdef keys="prod6W1"/>
</subjectdef>
</subjectdef>
<subjectdef keys="SERIES7">
<subjectdef keys="SERIES7S">
<subjectdef keys="prod7S1"/>
</subjectdef>
<subjectdef keys="SERIES7E">
<subjectdef keys="prod7E1"/>
<subjectdef keys="prod7E2"/>
</subjectdef>
<subjectdef keys="SERIES7T">
<subjectdef keys="prod7T1"/>
</subjectdef>
<subjectdef keys="SERIES7P">
<subjectdef keys="prod7P1"/>
</subjectdef>
</subjectdef>
<subjectdef keys="SERIES8">
<subjectdef keys="SERIES8E">
<subjectdef keys="prod8E1"/>
</subjectdef>
<subjectdef keys="SERIES8R">
<subjectdef keys="prod8RE1"/>
</subjectdef>
<subjectdef keys="SERIES8T">
<subjectdef keys="prod8T1"/>
</subjectdef>
<subjectdef keys="SERIES8XU"/>
</subjectdef>
<subjectdef keys="VPRODS">
<subjectdef keyref="SERIES8T"/>
<subjectdef keyref="SERIES8U"/>
<subjectdef keyref="SERIES8R"/>
</subjectdef>
<subjectdef keys="RPRODS">
<subjectdef keyref="SERIES6"/>
<subjectdef keyref="SERIES7"/>
<subjectdef keyref="SERIES8E"/>
</subjectdef>
<subjectdef keys="EPRODS">
<subjectdef keyref="SERIES6E"/>
<subjectdef keyref="SERIES7E"/>
<subjectdef keyref="SERIES8E"/>
</subjectdef>
<subjectdef keys="TPRODS">
<subjectdef keyref="SERIES7S"/>
<subjectdef keyref="SERIES7T"/>
<subjectdef keyref="SERIES7P"/>
</subjectdef>
</subjectdef>
Hi,

This is a simplified version of our subject schema that shows the hierarchy of products. There are 3 major series (Series6, Series7 and Series8). Each of the series has 4-5 families (SERIES6E, SERIES7P, etc.). Each family has a number of products, which each product having one or more possible configurations. The last part of the schema, which defines VPRODS, RPRODS, EPRODS and TPRODS I have recently added (notice the @keyref), and this is when I noticed the problem that I am trying to explain here.

The subject schema is automatically generated from a database (there are currently approx 200 product configurations and more than 500 features, which are also part of the schema, but using a different attribute).

For each configuration, a .ditaval file is automatically generated - this explicitly shows which features are included and which features are excluded. The 'product' part of the DITAVAL changes the default behaviour to exclude, then goes on including the family and the product, and excluding the other products from the same family. Like this:

Code: Select all

  <prop action="include" att="product" val="prod6L1_CONFIG0"/>
<prop action="exclude" att="product"/>
<prop action="include" att="product" val="SERIES6L"/>
<prop action="exclude" att="product" val="prod6L2"/>
<prop action="exclude" att="product" val="prod6L3"/>
<prop action="include" att="product" val="prod6L1"/>
In oXygen (v 17.1), I have created a condition set for prod6L1 by importing the corresponding DITAVAL file.
In Author mode I use the options of showing the profiling attributes and the excluded content.
The transformation scenario uses the DITAVAL file as filter, but I tried with using the profiling condition set and the result is obviously the same.

After the latest changes in the schema and marking up some paragraphs with product="RPRODS" and others with product="VPRODS" (without updating the DITAVAL), I noticed in Author mode that the paragraphs with product="RPRODS" were included, and paragraphs with product="VPRODS" were excluded.

This was the _desired_ output, but not the _actual_ output. When running the transformation scenario, the paragraphs with product="RPRODS" were not included (which is correct, since RPRODS was not explicitly included in the DITAVAL file, where the default action for product is 'exclude').
Similarly, I noticed that oXygen was showing a paragraph with product="SERIES6" as being included, which was not appearing in the pdf because of the same reason as with RPRODS.

I couldn't find anything wrong with what I am doing, so my best guess is that there is a problem with oXygen, which interprets the subject schema and shows content as included, although the DITAVAL file doesn't include it.

Given the complexity of the project, this has a lot of potential for creating trouble for us in the future, because what you see is not what you get.

What are your thoughts on it? Is this an oXygen bug?

Many thanks,
Ozana

Re: What I see is not what I get - using a subject scheme hierarchy

Posted: Mon May 16, 2016 10:30 am
by Radu
Hi Ozana,

Based on your sample snippets I tried to create a small DITA Map project to reproduce the problem but had trouble doing so.
Would it be possible for you to create a small DITA project (map + 2-3 topics + DITAVAL + Subject scheme) which exhibits this problem and send it to us (support@oxygenxml.com)?
I'm not interested in your actual DITA text content, just in the XML structure of the files.


Regards,
Radu