Author mode customization

Post here questions and problems related to editing and publishing DITA content.
tmakita
Posts: 100
Joined: Fri Apr 08, 2011 7:58 am

Author mode customization

Post by tmakita »

New to Oxygen customization.
The background:
One of my user is using conref to tgroup element to generate table that is composed of lot of reusable row information.
They explicitly describe that they want to reuse "sequences of row elements". But OASIS CALS table model does not offer the convenient element that expresses "sequences of row elements". For instance a tbody is composed of row elements. But tbody must exists as one child of tgroup element. If we author multiple tbody elements in tgroup, it will be reported as grammar error. The another way is to use @conref and @conrefend attributes to specify "sequences of row elements". However it will be time-consuming for authors because this way needs to author two attributes in using reusable contents.
As a result I've realized that using RAW OASIS table model is not always appropriate to author reusable contents & user specific information types.

What I want to do:
To resolve above problem, I will make DITA specialization to express the user information type. The most important feature of this specialization is to offer the convenient "container element" that store row information. For instance:

Code: Select all

<regtable>
<regrowgroup id="reginfo1">
  <regrow>
    <reg1>...</reg1>
    <reg2>...</reg2>
  </regrow>
  <regrow>
    <reg1>...</reg1>
    <reg2>...</reg2>
  </regrow>
  ...
</regrowgroup>
<regrowgroup id="reginfo2">
  <regrow>
    <reg1>...</reg1>
    <reg2>...</reg2>
  </regrow>
  <regrow>
    <reg1>...</reg1>
    <reg2>...</reg2>
  </regrow>
  ...
</regrowgroup>
</regtable>
In this example, regrowgroup acts to express "sequences of row" information. This authoring will be eligible than adopting OASIS CALS table model.

The Challenges:
In above example regtable element is expected to be authored as tgroup in CALS table model. Also regrow element is expected to be authored as row element in CALS table model. The reg1, reg2 elements are expected to be authored as entry element in CALS table model.
What is the Oxygen customizing information URL to realize above authoring requirement? This is my newbie question.
--
/*--------------------------------------------------
Toshihiko Makita
Development Group. Antenna House, Inc. Ina Branch
Web site:
http://www.antenna.co.jp/
http://www.antennahouse.com/
--------------------------------------------------*/
chrispitude
Posts: 907
Joined: Thu May 02, 2019 2:32 pm

Re: Author mode customization

Post by chrispitude »

Hello Makita-san,

When you specialize a DITA element, the specialized element cannot be used outside the content model requirements of its base element:

http://docs.oasis-open.org/dita/dita/v1 ... s-elements

In this case, because a <table> cannot contain multiple <tgroup> elements, a <table> (or a specialization of it) also cannot contain multiple <regrowgroup> elements.

Perhaps the Oxygen editor could improve how content references to element ranges are handled. In an experiment, I added @id values to some rows in one table:

rows_create_ids.gif
rows_create_ids.gif (61.92 KiB) Viewed 828 times

Then I inserted a content reference to them in another table:

rows_conref.gif
rows_conref.gif (95.45 KiB) Viewed 828 times

Currently, Oxygen inserts individual references to each <row>:

Code: Select all

<row conref="#topic/row_jl4_1kt_jtb">
    <entry/>
</row>
<row conref="#topic/row_kl4_1kt_jtb">
    <entry/>
</row>
<row conref="#topic/row_ll4_1kt_jtb">
    <entry/>
</row>

but perhaps during a content reference insertion of a range, Oxygen could detect when the requirements for @conref/@conrefend are met (elements have the same parent, elements are of the same type) and ask whether the references should be individual or a range. This could be a useful enhancement not just for tables, but in general.

What do you think?
Radu
Posts: 9018
Joined: Fri Jul 09, 2004 5:18 pm

Re: Author mode customization

Post by Radu »

Hi,

For Chris's suggestion on improving our paste as content reference action, I added an internal issue to consider it:

EXM-50421 - Paste as content reference could detect range of consecutive elements

For the original need posted by Makita-san:
The Challenges:
In above example regtable element is expected to be authored as tgroup in CALS table model. Also regrow element is expected to be authored as row element in CALS table model. The reg1, reg2 elements are expected to be authored as entry element in CALS table model.
What is the Oxygen customizing information URL to realize above authoring requirement? This is my newbie question.
Probably a minimum change to be made in the CSS used for DITA editing would be to define regrowgroup as a table row group:

Code: Select all

regrowgroup {
  display:table-row-group;
}
but this might not be enough.
I'm afraid I do not have a precise answer for this, once you step outside of the CALS table model you will probably need to create Java customizations in Oxygen to properly handle the table, modify all Oxygen's table related actions to properly handle this case. I do not have a procedure for this, I also do not know if it is possible without trying to implement something like this. We may encounter some kind of limitation in our API because we never considered that such a case should be covered.
We have lots of table related actions to insert new rows, columns, join and split, table properties, they may all work badly and need to be modified for such a table structure.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
chrispitude
Posts: 907
Joined: Thu May 02, 2019 2:32 pm

Re: Author mode customization

Post by chrispitude »

Hi Radu,

Thanks for filing EXM-50421! This would be a nice way to make a powerful DITA feature more user-friendly.

I forgot to attach my testcase before, so here it is:

oxygen_table_row_conref.zip
(1.39 KiB) Downloaded 160 times
Radu
Posts: 9018
Joined: Fri Jul 09, 2004 5:18 pm

Re: Author mode customization

Post by Radu »

Thanks Chris, we added the samples on the opened issue.
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
tmakita
Posts: 100
Joined: Fri Apr 08, 2011 7:58 am

Re: Author mode customization

Post by tmakita »

Hi Chris and Radu,
Thank you for valuable reply.
My original intention is to specialize DITA for user information type without basing any OASIS CALS table elements. Currently the user is authoring their specific information type by conrefing tgroup. This results following unusual PDF output requirement.
  • Do not insert spaces between tgroup elements in table.
  • Group tgroup elements that are the child of table elements and output footnote at the end of last tgroup.
I have implemented this in DITA to FO stylesheet against my understand of CALS table model.
From Radu's explanation, I fully understand that implementing CALS table model in Oxygen author mode is complex and it may be difficult to apply table authoring to other specialized elements.
Anyway I have learned a lot about background information of table authoring.
I appropriate your help.
Regards,
--
/*--------------------------------------------------
Toshihiko Makita
Development Group. Antenna House, Inc. Ina Branch
Web site:
http://www.antenna.co.jp/
http://www.antennahouse.com/
--------------------------------------------------*/
Post Reply