Practical guide / internal links
How to fix broken JATS cross-references
A citation, figure callout, affiliation marker, or table reference can look correct in the article text while its xref/@rid points nowhere. The reliable fix is to match every reference token to one unique id in the same document.
The text inside <xref> is what a reader sees. The rid value is what connects that reference to its target.
Start with one failing reference
NISO JATS defines <xref> as a reference to an object within the document. Its rid attribute contains one or more target identifiers, and the target element carries the matching id.
<p>Results are shown in
<xref ref-type="fig" rid="fig-2">Figure 2</xref>.
</p>
<fig id="fig-02">
<label>Figure 2</label>
...
</fig>
This reference is broken because fig-2 and fig-02 are different identifiers. Correct either value so the pair matches exactly.
Check four failure patterns
- 01No matching target
Search the whole document for an
idequal to eachridtoken. Case, punctuation, and leading zeros matter. - 02Duplicate target IDs
An
idmust be unique across the document, not merely within figures, references, tables, or affiliations. - 03Several targets in one rid
JATS permits an
xref/@ridvalue to contain more than one identifier. Split the value on whitespace and resolve every token. - 04The wrong reference type
Compare
ref-typewith the target. A figure reference should not silently point to a bibliography entry just because the identifier exists.
Repair the source, not only the display text
Changing “Figure 2” to “Figure 3” inside <xref> does not change the target. Update the rid, the target id, or both, then check every other reference to the renamed target.
Keep internal IDs separate from external identifiers. NISO distinguishes the document-wide id attribute from elements such as <article-id> and <contrib-id>, which can hold values such as a DOI or ORCID iD.
Run the release check on the final XML
Regenerate or export the article first, then validate the exact XML intended for delivery. JATS Verify checks duplicate IDs and resolves every whitespace-separated xref/@rid token. It does not guarantee acceptance by a journal, PubMed Central, or another archive.
If the delivery also includes figures or supplements, follow the missing figure and asset guide to check the package files separately.
Official sources
Check the final XML
Find unresolved cross-references before delivery.
Upload one JATS XML package free. No account, email, card, or sales call.