Author mode customization
Post here questions and problems related to editing and publishing DITA content.
-
- Posts: 116
- Joined: Fri Apr 08, 2011 7:58 am
Author mode customization
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:
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.
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>
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/
--------------------------------------------------*/
/*--------------------------------------------------
Toshihiko Makita
Development Group. Antenna House, Inc. Ina Branch
Web site:
http://www.antenna.co.jp/
http://www.antennahouse.com/
--------------------------------------------------*/
-
- Posts: 922
- 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:
Then I inserted a content reference to them in another table:
Currently, Oxygen inserts individual references to each <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?
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
Then I inserted a content reference to them in another table:
rows_conref.gif
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?
You do not have the required permissions to view the files attached to this post.
-
- Posts: 9436
- Joined: Fri Jul 09, 2004 5:18 pm
Re: Author mode customization
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:
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
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:
Probably a minimum change to be made in the CSS used for DITA editing would be to define regrowgroup as a table row group: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.
Code: Select all
regrowgroup {
display:table-row-group;
}
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
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 922
- 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:
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
You do not have the required permissions to view the files attached to this post.
-
- Posts: 116
- Joined: Fri Apr 08, 2011 7:58 am
Re: Author mode customization
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.
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,
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.
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/
--------------------------------------------------*/
/*--------------------------------------------------
Toshihiko Makita
Development Group. Antenna House, Inc. Ina Branch
Web site:
http://www.antenna.co.jp/
http://www.antennahouse.com/
--------------------------------------------------*/
Return to “DITA (Editing and Publishing DITA Content)”
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service