XER vs XML: What to Clean in Each Before You Share
The format question comes up every time a schedule leaves one company for another. XER or XML. Most of the advice available covers which one imports more reliably. Almost none of it covers the part that decides what the recipient can see about you.
That is the question this page answers: what each format carries into the recipient's database, and what needs cleaning before it gets there.
What each format actually contains
Both are exports of a P6 project. They are not the same export with a different extension.
XER is P6's own exchange format, a structured text file of tables. It carries the project and the global objects the project references, including calendars, activity codes, resources and roles, and the POBS tables. It does not carry baselines in a normal export, and it does not carry project layouts. When you import an XER, P6 gives you three project-level options and very little control at the level of an individual calendar or code.
XML is a general data format, and P6's version of it is richer in two respects that matter here. Baselines can be selected and travel with the file, and project activity layouts are included. More usefully for anyone receiving files, an XML import offers per-object control: for each type of global data you can choose to skip it, insert it as new, keep what already exists, update it, or delete it. The import also respects the importing user's security profile, so global objects that the user is not allowed to create are not created.
That difference in import control is the one people miss. P6 Consulting's comparison of the two formats sets it out in detail, and it is the reason an XML import can be safer than an XER import even before anyone cleans anything.
Where the money hides in each
Cost data lives in the same place in both formats, but it arrives differently.
- Resource and role rates. In both formats, attaching a resource to an activity pulls its rate in. If the rate is populated in the sender's dictionary, it lands in the file.
- Cost loading. Budgeted and actual costs on activities and expenses travel in both. An XML export with baselines selected can also carry the baseline's cost figures.
- Expenses and funding. Present in both, easy to forget, and usually the least intentional inclusion.
The difference is not where the data sits, it is how much control you get on the other side. An XER will merge the cost-bearing global objects unless you strip them first. An XML gives the recipient a choice, if the recipient knows to look.
What to clean in an XER
- POBS tables, which bloat the file and slow the import.
- Global calendars and activity codes, converted to project level so they cannot merge with the recipient's.
- Rates, costs and resource names, if the schedule is going somewhere that should not see them.
- Risks and notes, if they contain anything about your commercial position.
Because an XER gives the recipient so little control, cleaning has to happen on the sending side. The recipient cannot fix it during import; by the time they have options, the data is in.
What to clean in an XML
- The same categories: rates, costs, resource names, risks, notes.
- Baselines, if you selected them for the recipient's benefit and they carry cost figures you did not mean to send.
- Layouts, if they contain column sets or filters that reveal internal reporting you would rather keep.
- POBS, though it matters less here: XML does not carry the POBS tables the way XER does.
XML gives you a second chance on import, but do not rely on it. The person importing may not know the controls exist, and the safe default for anything genuinely sensitive is to remove it before the file leaves.
Which format should you send
Send XER when the recipient's P6 release demands it, when the file needs to be small, or when the exchange is routine and both sides already know each other's data.
Send XML when baselines matter to the recipient, when layouts need to survive the trip, or when the recipient's security profile should be doing some of the filtering for you. The cost is size and speed: XML files are larger, imports are slower, and very large projects can fail outright.
Neither format decides the confidentiality question. That is a cleaning decision, and it is the same decision in both.
Cleaning both, from one place
ScheduleCleaner handles XER and XML with the same strip list. Select the categories to remove or convert, and it writes a cleaned copy of the file. Calendars and activity codes move from global to project level, POBS and risks come out, rates and costs come out if you asked for that, and the original file stays as it was.
Since the categories are the same in both formats, the workflow does not change when the recipient asks for one or the other.
If you want the mechanics of what happens on the other side, how P6 handles an XER on import covers the merge behaviour in detail. If you are on the receiving end of a file, what to strip from a schedule you received is the checklist for that.
Start a free trial and run it on the next file you need to send.
Related reading
Ready to clean your next P6 schedule?
Remove, convert and anonymize sensitive data in XER and XML files before you share them.
