XCU
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.
OpenOffice Registry Configuration.
At a glance
| Original creator | OpenOffice.org |
| Purpose | A configuration delta for OpenOffice.org and LibreOffice: the settings a user or an installation changed, layered over the defaults in a matching .xcs schema. |
| Extensions | .xcu |
| Poka parser | poka-xcu |
| Viewer | poka-tree-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: medium (the reviewer read the code). Basis: Reviewed 2026-10-16: parsers/poka-xcu/src/lib.rs and its unit tests (oor:name labelling, nesting, oor:op, oor:finalized on node and prop, nil versus empty, list separators, repair of undeclared xsi prefix) and tests/samples.rs. The corpus holds 24 .xcu files from LibreOffice core's officecfg registry data (MPL-2.0, pinned to commit 6674610), so the floor of 15 and the prop and finalized counts are met on files a real build ships rather than on hand-made fixtures. Covers oor:component-data configuration deltas. The plugin routes only .xcu; .xcs goes to poka-xml.
What Poka does not read
- Localised values (several value elements distinguished by xml:lang) are joined like a list with the separator, so the language of each value is lost
- oor:mandatory, oor:nillable, oor:localized and oor:external attributes are not shown
- An items root (oor:items with item oor:path) is accepted but each item shows only as the tag name 'item', with its path dropped
- Schema content (oor:component-schema info, descriptions, templates, constraints) is passed through as bare generic nodes, not decoded
- Tree is capped at 8,000 nodes
- Binary-typed values (xs:hexBinary) are shown as raw text, not decoded
Background
The OOo Registry Document Format specification describes an XML format for storing and updating OpenOffice.org configuration data, in the namespace http://openoffice.org/2001/registry: .xcs files hold component schemas and .xcu files hold updates to them. LibreOffice's officecfg module still points to that specification. The XML tags are only node, prop and value; the meaning is in oor: attributes. Poka shows the tree by each element's oor:name, with the delta operation (oor:op: replace, fuse, remove), settings locked with oor:finalized, explicit nil values and list values joined by their separator.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| OOo registry update (component-data) | oor:component-data in http://openoffice.org/2001/registry |
Read | The private-archive samples were removed from poka-samples; the corpus now holds LibreOffice officecfg registry files instead, so the parser is tested on real files a shipping build writes. |
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- roxmltree (used; MIT OR Apache-2.0; Rust)
- LibreOffice configmgr (XcuParser) (candidate; MPL-2.0; C++; https://github.com/LibreOffice/core) — Reference reader in module configmgr; repo carries GPL-3.0, LGPL-3.0 and MPL-2.0 licence files, per-module terms not checked; not a standalone library
- Apache OpenOffice (configmgr) (candidate; Apache-2.0; C++; https://github.com/apache/openoffice) — Original implementation with component-update.dtd schema; not a standalone library