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

Subject: Re: [jats-list] Row headers in OASIS table model
From: "Michael Boudreau mboudreau@xxxxxxxxxxxx" <jats-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 15 Sep 2022 20:53:31 -0000
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, Im not sure I can
yet articulate more than Do it if its bold or Youll know when you see
it.

--
Michael R. Boudreau
Electronic Publishing Technology Manager
The University of Chicago Press
1427 E. 60th Street
Chicago, IL 60637
www.journals.uchicago.edu


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


> On Sep 14, 2022, at 5:32 PM, Michael Boudreau mboudreau@xxxxxxxxxxxx
<jats-list-service@xxxxxxxxxxxxxxxxxxxxxx> 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>
>

OASIS THEADS ARE NOT FOR YOU

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:

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

THE CONCEPTUAL PROBLEM

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?

POSSIBLE HACKS

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.

--Debbie

Current Thread