JATS package asset checks.

Practical guide / figures and assets

Your XML can validate while the JATS package is still missing a figure.

A schema can confirm that an xlink:href is allowed. It usually cannot confirm that the named image, media file, or supplement is present in the package with the exact expected filename.

Check the files, not only the XML.

Package validation needs the JATS XML and the actual asset directory or ZIP that will be delivered.

The common failure patterns

  • The XML references figures/Fig01.tif, but the package contains figures/fig01.tif.
  • A figure was renamed after the XML was generated.
  • A supplement or media file was omitted from the delivery ZIP.
  • An absolute path from a workstation was written into xlink:href.
  • A relative path escapes the intended package directory.

Why filename case matters

Windows and macOS workflows can appear to tolerate case differences. A Linux production or archive system may treat Fig01.tif and fig01.tif as different files. The package can therefore work locally and fail after handoff.

A reliable preflight

  1. 01
    Freeze the release package

    Use the exact XML and asset files intended for delivery.

  2. 02
    Resolve every local link

    Check each href and xlink:href against the package root.

  3. 03
    Compare exact case

    Report a case mismatch separately from a completely missing file.

  4. 04
    Retain evidence

    Record the canonical XML hash plus each referenced asset path, size, media type, and SHA-256.

What JATS Verify reports

JATS Verify distinguishes unresolved assets, filename case mismatches, unsafe paths, and files outside the package root. Paid results include every finding, an asset inventory, deterministic JSON evidence, and a reproducible release ZIP.

The public reproducible example demonstrates a real XML-to-PDF filename mismatch using an openly available PMC package.

Run the package check

Upload the XML and assets together.

Check one package free. No account, email, card, or sales call.

Check a package free