XER
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Primavera P6 XER Preview.
At a glance
| Original creator | Primavera Systems; Oracle since 2008 |
| Purpose | The Primavera P6 export: a project schedule's tables (projects, WBS, activities, relationships, calendars) as tab-separated text. |
| Extensions | .xer |
| Poka parser | poka-xer |
| Viewer | poka-workbook-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B2 Broad (see Breadth tiers) |
How much Poka reads
B2 Broad. The common content of the current and the common older versions is decoded. Some named features or versions are not, and are listed.
Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: poka-xer lib.rs (reader, caps, encoding handling, assemble, about 25 unit tests) and tests/samples.rs over 5 corpus exports (P6 8.2.0, 8.3, 8.4, 20.12 x2, including a 15-project file, Windows-1252 text and short rows). Covers every ERMHDR version, since the reader is generic over the table, field and row records.
What Poka does not read
- Row cap of 500 per table (rows beyond it are counted, not shown): real schedules with thousands of activities are truncated
- Tables are raw field dumps: no WBS tree, no predecessor/successor joins, no resolution of activity codes or resource assignments
- Calendar definitions (clndr_data) and memo text are shown as raw strings
- No Gantt, critical path or float analysis
- Over 400 columns per table and over 256 tables are cut
Background
Primavera was founded in 1983; its products P3 and SureTrak were joined by P6, and Oracle continues P6 after ceasing sales of P3 and SureTrak at the end of 2010 (Wikipedia). XER is how P6 schedules travel between clients, contractors and planners. The file is an ERMHDR header line, then for each table a %T line, a %F line of field names and %R rows, ending with %E. Poka shows one sheet per table, leading with the activities, and a sheet with the export header. The encoding is not declared; text that is not valid UTF-8 is read as Windows-1252 and marked as assumed.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| P6 XER export | ERMHDR |
Read |
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- PyP6Xer (candidate; LGPL-2.1; Python; https://github.com/EnverMT/PyP6Xer) — Python XER parser (xerparser); work in progress per README
- MPXJ (candidate; LGPL-2.1; Java; https://github.com/joniles/mpxj) — Reads and writes XER among many schedule formats; also packaged for .NET, Ruby and Python
- Aspose.Tasks (candidate; Commercial; C#/.NET; https://products.aspose.com/tasks/supported-formats/xer/) — Reads XER; also Java, C++ and Python (via .NET); paid with trial
- Alt-Ctrl-Proj (candidate; licence unconfirmed; Python; https://alt-ctrl-proj.readthedocs.io) — Parses, edits and writes XER; docs page gave no licence or repository URL
Sources
- https://en.wikipedia.org/wiki/Primavera_(software)
- parsers/poka-xer/src/lib.rs