poka.sh

Docs

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

Sources