Re: [jats-list] Row headers in OASIS table model

Subject: Re: [jats-list] Row headers in OASIS table model
From: "Lizzi, Vincent vincent.lizzi@xxxxxxxxxxxxxxxxxxxx" <jats-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 19 Sep 2022 16:33:07 -0000
Hi Michael and all,

Another option might be to affix an attribute on an element inside oasis:entry
to identify the cell contents as a row header. For example:

<oasis:entry><bold specific-use="row-header">label text</bold></oasis:entry>

<oasis:entry><italic specific-use="row-header">label

<oasis:entry><styled-content specific-use="row-header">label

Then the attribute could be used to transform the cell into a row header in
HTML. For example:

<xsl:template match="oasis:entry[*/@specific-use='row-header']">
    <th scope="row"><xsl:apply-templates/></th>

Would this be useful in your situation?

Kind regards,

Vincent M. Lizzi
Head of Information Standards | Taylor & Francis Group

Information Classification: General
From: Gareth Oakes goakes@xxxxxxx <jats-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Saturday, September 17, 2022 3:39 PM
To: jats-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [jats-list] Row headers in OASIS table model

I'm not sure of the sort of subject matter you are thinking of but I think of
row headings as labels for the row. That means they are not part of the data
in the grid. In a table representing data on person heights you might have
column headers for male/female (and other?) and row headers for each country
in the study. The data would be average heights.

A good test is that if you had a wide table and clipped the table off halfway
through, would it make sense to repeat the row headers on the next page where
the remainder of the table displays? If I clipped the example table between
male and female then I'd for sure want the country labels (row headers) to
display against the female column too.

Does that help at all?


From: Michael Boudreau mboudreau@xxxxxxxxxxxx<mailto:mboudreau@xxxxxxxxxxxx>
Sent: Friday, 16 September 2022 8:54 AM
To: jats-list@xxxxxxxxxxxxxxxxxxxxxx<mailto:jats-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [jats-list] Row headers in OASIS table model

Thanks, Debbie. On the question of recognizing whether a row entry needs to
designated a header, do you know of any good guides for training editors to
make this judgment? Without having thought much about it, I'm not sure I can
yet articulate more than "Do it if it's bold" or "You'll know when you see

Michael R. Boudreau
Electronic Publishing Technology Manager
The University of Chicago Press
1427 E. 60th Street
Chicago, IL 60637<>

From: Debbie Lapeyre
Date: Wednesday, September 14, 2022 at 5:34 PM
To: jats-list@xxxxxxxxxxxxxxxxxxxxxx<mailto:jats-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [jats-list] Row headers in OASIS table model

> On Sep 14, 2022, at 5:32 PM, Michael Boudreau
<jats-list-service@xxxxxxxxxxxxxxxxxxxxxx<mailto:jats-list-service@xxxxxxxxxx>> wrote:
> We use the OASIS table model in our JATS 1.2 XML for in-house editing with
Arbortext Editor. Is there a way to tag a table row so that the first cell in
the row is designated as a row header, so that this
> <row>
>     <entry>Row header</entry>
>     <entry>Some value</entry>
>     <entry>Another value</entry>
> </row>
> can be converted to this
> <tr>
>     <th scope="row">Row header</th>
>     <td>Some value</td>
>     <td>Another value</td>
> </tr>


Not directly. OASIS <tgroup>s hold both <header> and <body>
elements, but OASIS table header elements are COLUMN
headers and you want a ROW header. That is, the OASIS
headers are not in the same row; they expect the header
to be its own (first) row.  So here is a typical OASIS table,
which does NOT help you a bit:

<tgroup cols="3">
<colspec colnum="1" .../>
<colspec colnum="2" .../>
<colspec colnum="3" .../>
<entry>Row header</entry>
<entry>Some value</entry>
<entry>Another value</entry>


How do you recognize an entry that needs to become a <th>?
Should every first entry in a row become a <tr>? Only if
it has content? How?


IFF you can ALWAYS recognize a potential row header entry,
you can probably hack this.

I suggest attribute(s) on the first entry in each row, or
however else you are recognizing that you want this entry
to become a <th>.

You might want to just set up your @scope attribute.

The attributes that already attach to <entry> are:
        colname         NMTOKEN          #IMPLIED
        namest          NMTOKEN          #IMPLIED
        nameend         NMTOKEN          #IMPLIED
        morerows        NMTOKEN          #IMPLIED
        colsep          %yesorno;        #IMPLIED
        rowsep          %yesorno;        #IMPLIED
        align           (left|right|center|justify|char)        #IMPLIED
        char            CDATA            #IMPLIED
        charoff         NMTOKEN          #IMPLIED
        valign          (top|middle|bottom)                     #IMPLIED

And there also is a parameter entity (%tbl.entry.att;) that lets you
add any attributes you want. You need to set the parameter entity
in a customization module or in the DTD BEFORE calling the OASIS table model.

It would be easy enough to add a @scope attribute, but
if the value is not always "row", I do not know how you
would decide the value.

Hope this helps. CALS is just not set up in the way
you would like it to be.

JATS-List info and archive<>
EasyUnsubscribe<> (by
JATS-List info and archive<>
EasyUnsubscribe<> (by

Current Thread