A document variable can change without changing Word text
A Word document can persist a named document-variable value separately from
the text stored in its body. A field can refer to that variable while retaining
the same stored field result. A text-only comparison can therefore miss the
state change, while package-level review can report it without trying to
evaluate a field.
Document Change Assurance Benchmark 0.8.0
adds its nineteenth deterministic paired package:
binding.document_variable_value_changed. Both sides retain the
same DOCVARIABLE field reference, stored field result, variable
name, package-member set, and stored w:t sequence. Only
word/settings.xml changes, in the persisted value of one
synthetic document variable.
Stored state, not field execution
The Open XML document-variables element
belongs in document settings and persists a collection of name/value pairs. Its
document-variable child
carries an individual name and value. Microsoft’s Word Variable documentation
describes the document-stored data and its matching DOCVARIABLE
field use.
DCAB fixes a synthetic variable name, field instruction, and stored result,
then changes only the synthetic w:docVars/w:docVar value. Its
builder, verifier, scorer, and adapter do not update a field, open Word, load a
macro, start an application, or claim what any client will display. This is a
static-review case, not a rendering or automation test.
A deterministic settings boundary
The independent verifier checks the exact variable container, name/value
shape, field instruction, deterministic package bytes, stable members,
unchanged stored Word text, and the one-member pair boundary. Standard
python-docx opens all 36 .docx fixtures, and its
lower-level OPC reader opens all 38 packages.
The optional local DocFence 0.27.0
adapter maps aggregate word_document_variable_inventory_changed
evidence. It additionally checks that there is still one stored variable and
one literal variable-field reference matching the stored name. It uses only
counts and structural matching, never the variable name or value.
DCAB 0.8.0 retains fixture schema version 1 and extends the corpus from 18 to
19 cases. It does not claim a value is safe, sensitive, active, evaluated,
synchronized with a field result, or visible in a particular client.
The source, generated corpus, and verifier are MIT-licensed on
GitHub. Read the
canonical release note
for the full boundary and install command.
Top comments (0)