Page 1 of 1

differences in dita table validation between Oxygen 18 and 19

Posted: Thu Dec 07, 2017 5:59 pm
by areilly
Hello,

Just recently got my upgrade to version 19, looking forward to testing out the new features.

Can you give me some insight into the following error?

In Oxygen 18, the following table is validated as correct. In 19, it is validated with an error: "This cell overlaps previous cell." The problem entry is highlighted in bold below. This xml does not affect our PDF build, so wondering if it is something that we need to fix. We are in the middle of a DITA migration, and now have a few thousand files, i think we probably have a fair number of these overlapping rows in our tables.

Code: Select all

         <table id="table_wzr_t3t_x1b">
            <title>Communication Modules</title>
            <tgroup cols="9">
               <colspec colnum="1" colname="col1" rowheader="headers" colwidth="1*"/>
               <colspec colnum="2" colname="col2" rowheader="headers" colwidth="1.5*"/>
               <colspec colnum="3" colname="col3" rowheader="headers" colwidth="1*"/>
               <colspec colnum="4" colname="col4" rowheader="headers" colwidth="1*"/>
               <colspec colnum="5" colname="col5" rowheader="headers" colwidth="1*"/>
               <colspec colnum="6" colname="col6" rowheader="headers" colwidth="1*"/>
               <colspec colnum="7" colname="col7" rowheader="headers" colwidth="1*"/>
               <colspec colnum="8" colname="col8" rowheader="headers" colwidth="1*"/>
               <colspec colnum="9" colname="col9" rowheader="headers" colwidth="1*"/>
               <thead>
                  <row>
                     <entry>Model</entry>
                     <entry namest="col2" nameend="col6">Description</entry>
                     <entry>Size</entry>
                     <entry>Supv.</entry>
                     <entry>Alarm</entry>
                  </row>
               </thead>
               <tbody>
                  <row>
                     <entry>
                        <ph keyref="4100-6078"/>
                     </entry>
                     <entry namest="col2" nameend="col4">For Master Controller; mounts in Slot
                        3</entry>
                   [b] <entry namest="col3" nameend="col4" morerows="1">[/b]Modular network interface
                        card; Class B or Class X (requires up to two media modules ordered
                        separately, see below)</entry>
                     <entry>1Slot</entry>
                     <entry>46 mA</entry>
                     <entry>46 mA</entry>
                  </row>

Re: differences in dita table validation between Oxygen 18 and 19

Posted: Fri Dec 08, 2017 9:11 am
by Radu
Hi,

So on the same table row you have a cell which spans from column 2 to column 4 (<entry namest="col2" nameend="col4">) and a cell which spans from column 3 to column 4 (<entry namest="col3" nameend="col4"). So indeed they seem to be overlapping and in my opinion this should be something you should look into at some point in the future, try to decide which of the cells should span less in order to avoid this overlap.
The PDF might work fine in this case but there is no indication other output formats might work the same or if at some point you update the publishing engine, as your tables have these problems, there is the possibility that a future publishing engine will no longer produce a good PDF from the table structure.

Regards,
Radu

Re: differences in dita table validation between Oxygen 18 and 19

Posted: Fri Dec 08, 2017 12:09 pm
by areilly
thanks Radu, I was expecting you might say something like that :). In your opinion, does this sound like a problem that could be fixed with some XSL processing?

Also, can you tell me which validation file has changed? I would like to be able to revert to the older validation for now.

Aidan

Re: differences in dita table validation between Oxygen 18 and 19

Posted: Fri Dec 08, 2017 12:20 pm
by Radu
Hi Aidan,

In your opinion, does this sound like a problem that could be fixed with some XSL processing?


Do you mean some XSLT processing which would be applied on each topic having such a table and which would automatically rewrite the table structure? Maybe, Oxygen does have XML refactoring capabilities so you could write an XSLT stylesheet and apply it on all your DITA topics to refactor them:

https://www.oxygenxml.com/doc/versions/19.1/ug-editor/topics/refactoring-xml-documents.html

Also, can you tell me which validation file has changed? I would like to be able to revert to the older validation for now.


This particular aspect of validation is done with Java code which resides in the main Oxygen libraries so this is not something to revert.
Oxygen has support for plugins and it has API which can be used to filter out certain problems from being reported. I made such a plugin implementation called validationProblemsFilter here:

https://github.com/oxygenxml/wsaccess-javascript-sample-plugins

Regards,
Radu

Re: differences in dita table validation between Oxygen 18 and 19

Posted: Fri Dec 08, 2017 12:59 pm
by areilly
OK, thank you Radu! I will have to look into our DITA code in more detail, so how extent the problem is.

Re: differences in dita table validation between Oxygen 18 and 19

Posted: Fri Dec 08, 2017 2:01 pm
by areilly
FYI, just a bit more on this. Take this table that has come from a conversion. It is a valid table.

If i open it in the author mode and do the following, i get an error:
* place cursor in the first row
* right click and insert a new row above
* join the leftmost cells in the newly created row

Oxygen now reports a cell overlaps error. If i join the right most cells, i do not get the error.

Code: Select all

         <table frame="all" rowheader="firstcol" id="ID-table-00000002">
            <title>Power Ratings</title>
            <tgroup cols="9">
               <colspec colname="C1" colwidth="8.34*" rowheader="headers"/>
               <colspec colname="C2" colwidth="1*" rowheader="headers"/>
               <colspec colname="C3" colwidth="1.09*" rowheader="headers"/>
               <colspec colname="C4" colwidth="2.6*" rowheader="headers"/>
               <colspec colname="C5" colwidth="3.69*" rowheader="headers"/>
               <colspec colname="C6" colwidth="5.29*" rowheader="headers"/>
               <colspec colname="C7" colwidth="14.19*" rowheader="headers"/>
               <colspec colname="C8" colwidth="10.83*" rowheader="headers"/>
               <colspec colname="C9" colwidth="12.51*" rowheader="headers"/>
               <tbody>
                  <row>
                     <entry valign="middle" colname="C1" colsep="0" morerows="2" rowsep="1"
                        align="left">
                        <p>
                           <b>AC Input Ratings</b>
                        </p>
                     </entry>
                     <entry align="left" valign="middle" colsep="1" namest="C2" nameend="C5"
                        rowsep="1">
                        <p>Input Voltage</p>
                     </entry>
                     <entry valign="middle" colsep="1" namest="C6" nameend="C9" rowsep="1"
                        align="left">
                        <p>120 VAC, 60 Hz; 220/230/240 VAC, 50/60 Hz, auto-select</p>
                     </entry>
                  </row>
                  <row>
                     <entry align="left" valign="middle" colsep="1" namest="C2" nameend="C5"
                        rowsep="1">
                        <p>Input Current, Standard</p>
                     </entry>
                     <entry valign="middle" colsep="1" namest="C6" nameend="C9" rowsep="1"
                        align="left">
                        <p>2 A maximum @ 120 VAC input; 1.5 A maximum @ 240 VAC input</p>
                     </entry>
                  </row>
                  <row>
                     <entry align="left" valign="middle" colsep="1" namest="C2" nameend="C5"
                        rowsep="1">
                        <p>Input Current with Expansion Power Supply</p>
                     </entry>
                     <entry valign="middle" colsep="1" namest="C6" nameend="C9" rowsep="1"
                        align="left">
                        <p>4 A maximum @ 120 VAC input; 3 A maximum @ 240 VAC input</p>
                     </entry>
                  </row>
                  <row>
                     <entry valign="middle" colsep="1" namest="C1" nameend="C5" rowsep="1"
                        align="left">
                        <b>Power Supply Output Rating</b>
                     </entry>
                     <entry valign="middle" colsep="1" namest="C6" nameend="C9" rowsep="1"
                        align="left">
                        <p>3 A maximum @ 24 VDC in alarm (see NAC details on <xref
                              href="detailed_nac_ratings.dita#Detailed_NAC_Ratings"/>)</p>
                     </entry>
                  </row>
                  <row>
                     <entry valign="middle" colsep="1" namest="C1" nameend="C5" rowsep="0"
                        align="left">
                        <b>Battery Charger</b>
                     </entry>
                     <entry valign="middle" colsep="1" namest="C6" nameend="C9" rowsep="0"
                        align="left">
                        <p>Temperature compensated charger is rated for up to 25 Ah per UL 864; up
                           to 12.7 Ah per ULC-S527</p>
                     </entry>
                  </row>
                  <row>
                     <entry valign="middle" colsep="1" namest="C1" nameend="C5" rowsep="0"
                        align="left">
                        <b>Standby Current</b>
                     </entry>
                     <entry valign="middle" colsep="1" namest="C6" nameend="C9" rowsep="0"
                        align="left">
                        <p>130 mA; with 5 IDCs fully loaded, tone-alert silenced, trouble LED on
                        </p>
                     </entry>
                  </row>
               </tbody>
            </tgroup>
         </table>

Re: differences in dita table validation between Oxygen 18 and 19

Posted: Fri Dec 08, 2017 2:44 pm
by Radu
Hi Aidan,

Good point, we fixed this problem a couple of weeks in our development code. Indeed when joining those cells the Oxygen code should have removed that colname="C1" specified on the first cell. We'll have a fix for this in Oxygen 20 (Spring 2018). I will try to update this thread after the release.

Regards,
Radu

Re: differences in dita table validation between Oxygen 18 and 19

Posted: Fri Dec 08, 2017 3:47 pm
by areilly
Great! thank you.