A practical OJS and JATS preflight.

Practical guide / OJS and JATS

How to validate a JATS XML package for OJS.

Start by identifying the XML format, validate against the intended JATS model, then inspect the package that will actually be uploaded or delivered.

Do not confuse two different XML formats.

OJS Native XML is an import and export format for OJS records. JATS XML represents journal-article content. A file can be valid for one purpose and unusable for the other.

1. Confirm that the file is JATS

A JATS article normally has an article root and sections such as front, body, and back. OJS Native XML uses a different schema for submissions, publications, users, and related OJS records.

If your source is only DOCX or PDF, validation is not the next step. You first need a conversion workflow that produces JATS XML.

2. Validate against the intended model

Use the JATS DTD, XSD, or RELAX NG model required by the receiving workflow. A generic well-formedness check only proves that the XML syntax is balanced. It does not prove that elements and attributes are permitted in the selected JATS model.

The official NLM JATS Publishing resources provide the tag libraries and schema packages. Keep the exact version with your validation configuration.

3. Check the package, not just the XML

  1. 01
    Linked files

    Every local figure, table image, media file, supplement, and PDF reference exists with matching filename case.

  2. 02
    Cross-references

    Every xref/@rid resolves to one unique XML ID.

  3. 03
    Identifiers

    Article IDs, reference IDs, DOI syntax, PMID syntax, and ORCID checksums are internally consistent.

  4. 04
    Journal rules

    Required metadata and article-type rules match the journal or destination profile.

  5. 05
    Release changes

    Compare the candidate XML with the last approved version so an unrelated conversion change does not slip through.

4. Separate OJS display from destination acceptance

A JATS galley that renders in an OJS viewer has passed a useful display test, but that is not a universal acceptance certificate. PubMed Central, SciELO, a hosting platform, or a journal profile may apply additional rules.

Use each destination's own validator where available, then keep a package-level report for the checks that destination validation does not cover.

5. Keep evidence with the handoff

Record the exact XML hash, asset hashes, selected schema or profile, finding codes, and pass or fail threshold. This lets a production team reproduce the decision instead of relying on a screenshot or an email saying “validated.”

See a public package example where the XML declared a PDF filename that the distributed package did not contain.

Useful community references

Run the preflight

Check one existing JATS package free.

Upload the XML and an optional ZIP of linked files. No account, card, or sales call.

Start free diagnostic