JATS table structure checks.

Practical guide / tables

Fix a JATS table row with the wrong column count

A table may look aligned in an editor while one XML row occupies fewer columns than its neighbors. Find the row in the source, count the positions its cells occupy, and restore the missing cell or intended span before export.

Count occupied columns, not just cell tags.

In the NISO JATS table model, a th or td without colspan occupies one column. A cell with colspan="2" occupies two.

Separate the wrapper from the grid

<table-wrap> represents the complete table, including its label, caption, table content, and notes. The nested <table> contains the rows and columns. Moving caption text into a grid cell does not repair a short row, and moving a data cell into the caption loses its tabular meaning.

This guide uses the NISO JATS table model with tr, th, and td. If your file uses the alternative OASIS table model, follow that model's column specifications instead.

Find the exact short row

Here the header establishes three columns: Measure, Group A, and Group B. The first body row has three td cells. The second body row has only two, so its value for Group B is missing.

<table-wrap id="tbl-1">
  <label>Table 1</label>
  <caption><title>Response by group</title></caption>
  <table>
    <thead>
      <tr><th>Measure</th><th>Group A</th><th>Group B</th></tr>
    </thead>
    <tbody>
      <tr><td>Enrolled</td><td>20</td><td>20</td></tr>
      <tr><td>Responded</td><td>12</td></tr>
    </tbody>
  </table>
</table-wrap>

The row beginning Responded is the one to inspect in the source data. Do not add a blank cell until you know whether Group B truly has no reported value or a value was dropped during conversion.

Count spans before editing

For each simple row, add the column widths of its th and td cells. An absent colspan contributes one; colspan="2" contributes two. A row with <td colspan="2">No group split</td><td>20</td> occupies three positions, despite having two cell elements.

If the table also uses rowspan, account for positions already occupied by cells from preceding rows before judging the current row. Check the displayed column meaning as well as the total: a row can have the expected width while putting a value under the wrong heading.

Repair the row and retain its table notes

The source for this example confirms that Group B had no reported value. Add an explicit third cell to the Responded row. Keep the caption in table-wrap and place the explanatory note in table-wrap-foot, outside the grid.

<table-wrap id="tbl-1">
  <label>Table 1</label>
  <caption><title>Response by group</title></caption>
  <table>
    <thead>
      <tr><th>Measure</th><th>Group A</th><th>Group B</th></tr>
    </thead>
    <tbody>
      <tr><td>Enrolled</td><td>20</td><td>20</td></tr>
      <tr><td>Responded</td><td>12</td><td>Not reported</td></tr>
    </tbody>
  </table>
  <table-wrap-foot><p>Group B response was not reported.</p></table-wrap-foot>
</table-wrap>

<table-wrap-foot> holds prose notes or footnotes after the table. It is different from <tfoot>, which holds tabular footer rows.

Check the final destination file

  1. 01
    Re-export the article

    Inspect the final XML, since a conversion step can restore an older version of the short row.

  2. 02
    Review each table row

    Check occupied positions, spans, header alignment, and whether the value belongs to the intended column.

  3. 03
    Review the complete table

    Keep the caption and notes with the wrapper. For a PMC destination, compare the final article with its current table tagging guidance and other submission requirements.

  4. 04
    Check references and deliverables

    If text points to this table, verify its xref/@rid against the table wrapper's id. See the broken cross-reference guide for that separate repair.

JATS Verify checks table structure in an uploaded JATS package. Run it on the final XML, then review any table finding against the source data. A passing check does not guarantee acceptance by PMC, a journal, or another destination.

Official sources

Check the final XML

Review table structure before delivery.

Upload one JATS XML package free. No account, email, card, or sales call.

Check a package free