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.
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
- 01Linked files
Every local figure, table image, media file, supplement, and PDF reference exists with matching filename case.
- 02Cross-references
Every
xref/@ridresolves to one unique XML ID. - 03Identifiers
Article IDs, reference IDs, DOI syntax, PMID syntax, and ORCID checksums are internally consistent.
- 04Journal rules
Required metadata and article-type rules match the journal or destination profile.
- 05Release 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.