Primo — Guide for Suppliers
Introduction
Welcome to PRIMO!!!!
Primo is a web based proofing framework which renders the xml file sent by the typesetter into the HTML version thus making it very easy for the authors to access it and edit. To those of us who are used to using word processors, this tool would be quite easy to use (except with a few additional quirks).
By providing extra features which would then help the author to get a glimpse of the final result of the processing, PRIMO ensures a smooth transition throughout the whole proof checking process.
Workflow
Primo Dataset
Primo Dataset of a proof contains the following:
- Article XML
- Strip-ins for equations with non-compliant MathML
- Dataset XML
- Assets (images & supplementary materials)
- Order XML
Article XML
Suppliers are requested use the full-text single XML and not to process datasets with multiple XMLs like abstract, add-ons, batch placeholders etc. via Primo. The file name should be main.xml.
- Directory structure syntax
<dataset_directory>/<pii_number>/main.xml- Directory structure example
XXXXF9999999/S999999992600000X/main.xmlMathml
Use mathml3 line break attributes to indicate equation breaking points. Indent target and indentalign="id" attributes are recommended to indicate horizontal alignment of lines in equations.
Track changes & queries
The proof in XML may contain copy-edit track changes and queries in any one of the below formats.
| Action | Coding |
|---|---|
| Insertion | <!--INS-->xxx<!--/INS-->
|
| Deletion | <!--DEL-->yyy<!--/DEL-->
|
| Replacement | <!--INS-->xxx<!--/INS--><!--DEL-->yyy<!--/DEL-->
|
| Action | Coding | Example |
|---|---|---|
| Query | <!--Q1: Query text.--> |
|
| Check box Query | <!--Q2 replies=“Checked”: Query text.--> |
|
| Boolean Query | <!--Q3 replies=“Yes | No”: Query text.--> |
|
| Multiple Choice Query | <!--Q4 replies=“Option A | Option B | Option C | Option D”: Query text.--> |
Query Identifier
The query identifiers have the form: 'Q' followed by the query number, e.g. Q1, Q5. While generating the query avoid:
- Using the same query identifier for two different queries.
- Calling the same query at two different places.
Strip-ins for equations with non-compliant MathML
As Primo generates strip-ins by itself for rendering equations in Edit View and Proof View, it is no longer mandatory to provide strip-ins.
Dataset XML
- The dataset XML should adhere to New-proof schema. According to the workflow, the supplier can omit both MAIN and EDITED-PROOF PDFs from the dataset. The tags such as
web-pdf,page-fraction-body,page-fraction-trail,pdf-pages, andpdf-pages-webcan be removed from thedataset.xml. - No need to include the proof-uri in the
dataset.xml. Primo will generate the proof url automatically.
Assets
Inside main.assets directory, the XML version JPEG and MMC files should be added.
- Directory structure syntax
<dataset_directory>/<pii_number>/main.assets/ga1.jpg
<dataset_directory>/<pii_number>/main.assets/sc1.jpg
<dataset_directory>/<pii_number>/main.assets/gr1.jpg
...- Directory structure example
XXXXF9999999/S999999992600000X/main.assets/ga1.jpg
XXXXF9999999/S999999992600000X/main.assets/sc1.jpg
XXXXF9999999/S999999992600000X/main.assets/gr1.jpg
...WEB and PRINT
Include the web version (Elsevier RGB spec PDF) images in the web directory. If the journals do not belong to E-only as per the Journal Style Sheet (JSS), add print version (Elsevier CMYK spec PDF) images to the print directory. The images should be placed inside main.assets/web and main.assets/print directories.
- Directory structure syntax
<dataset_directory>/<pii_number>/main.assets/web/ga1.pdf
<dataset_directory>/<pii_number>/main.assets/web/sc1.pdf
<dataset_directory>/<pii_number>/main.assets/web/gr1.pdf
...
<dataset_directory>/<pii_number>/main.assets/print/gr1.pdf
<dataset_directory>/<pii_number>/main.assets/print/sc1.pdf
<dataset_directory>/<pii_number>/main.assets/print/gr1.pdf
...- Directory structure example
XXXXF9999999/S999999992600000X/main.assets/web/ga1.pdf
XXXXF9999999/S999999992600000X/main.assets/web/sc1.pdf
XXXXF9999999/S999999992600000X/main.assets/web/gr1.pdf
...
XXXXF9999999/S999999992600000X/main.assets/print/ga1.pdf
XXXXF9999999/S999999992600000X/main.assets/print/sc1.pdf
XXXXF9999999/S999999992600000X/main.assets/print/gr1.pdf
...Source
To handle the artwork corrections in the subsequent stages, add the original high quality RGB and compressed EPS versions inside the main.assets/eps directory. See the directory structure below.
- Directory structure syntax
<dataset_directory>/<pii_number>/main.assets/eps/ga1.eps.gz
<dataset_directory>/<pii_number>/main.assets/eps/sc1.eps.gz
<dataset_directory>/<pii_number>/main.assets/eps/gr1.eps.gz
...- Directory structure example
XXXXF9999999/S999999992600000X/main.assets/eps/ga1.eps.gz
XXXXF9999999/S999999992600000X/main.assets/eps/sc1.eps.gz
XXXXF9999999/S999999992600000X/main.assets/eps/gr1.eps.gz
...Order XML
The S100 order XML that received at supplier end also need to be included inside the Primo dataset for corresponding e-mail address, remarks. It should be included <dataset_dir>/order as shown below.
- Directory structure syntax
<dataset_directory>/order/_<pii>-<date_stamp>_S100.xml- Directory structure example
XXXXF9999999/order/_S999999992600000X-20260405_190603_S100.xmlSample dataset file structure
XXXXF9999999/
XXXXF9999999/dataset.xml
XXXXF9999999/order/_S999999992600000X-20260405_190603_S100.xml
XXXXF9999999/S999999992600000X/
XXXXF9999999/S999999992600000X/main.xml
XXXXF9999999/S999999992600000X/main.stripin/
XXXXF9999999/S999999992600000X/main.stripin/si1.svg
XXXXF9999999/S999999992600000X/main.stripin/si2.svg
XXXXF9999999/S999999992600000X/main.assets/
XXXXF9999999/S999999992600000X/main.assets/ga1.jpg
XXXXF9999999/S999999992600000X/main.assets/sc1.jpg
XXXXF9999999/S999999992600000X/main.assets/gr1.jpg
XXXXF9999999/S999999992600000X/main.assets/mmc1.docx
XXXXF9999999/S999999992600000X/main.assets/web/
XXXXF9999999/S999999992600000X/main.assets/web/ga1.pdf
XXXXF9999999/S999999992600000X/main.assets/web/sc1.pdf
XXXXF9999999/S999999992600000X/main.assets/web/gr1.pdf
XXXXF9999999/S999999992600000X/main.assets/print/
XXXXF9999999/S999999992600000X/main.assets/print/ga1.pdf
XXXXF9999999/S999999992600000X/main.assets/print/sc1.pdf
XXXXF9999999/S999999992600000X/main.assets/print/gr1.pdf
XXXXF9999999/S999999992600000X/main.assets/eps/
XXXXF9999999/S999999992600000X/main.assets/eps/ga1.eps.gz
XXXXF9999999/S999999992600000X/main.assets/eps/sc1.eps.gz
XXXXF9999999/S999999992600000X/main.assets/eps/gr1.eps.gzPrimo Validation
The input dataset file name should be unique. Once the dataset is uploaded to the sftp, a validation XML will be generated. Download it and check the status. If it is a failure one, correct the error and re-upload the dataset to Primo. The validation XML file name will be UJID-AID-Primo-validation-YYYY-mm-ddTHH-MM-SSZ.xml.
- Example (status=success)
AML-100002-Primo-validation-2026-04-06T05-34-51Z.xml:
<?xml version="1.0"?>
<primo-import-information xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="XML-signal-validation.xsd">
<timestamp>2026-04-06T04-19-32Z</timestamp>
<supplier>
<name>STMDE</name>
</supplier>
<article>
<jid>AML</jid>
<aid>100002</aid>
</article>
<status>success</status>
</primo-import-information>