Đöçẋ þàŕàĝŕàþĥ ŕéþļàý
Àñ üñţŕàñšļàţéđ ŕöüñđ ţŕîþ ţĥŕöüĝĥ core/formats/openxml ŕéţüŕñš 151 öƒ ţĥé
185 đöçẋ ƒîẋţüŕéš üþšţŕéàḿ Okapi šĥîþš ƃýţé ƒöŕ ƃýţé, ƃéšîđé 86 öƒ 87 ẋļšẋ àñđ
86 öƒ 86 þþţẋ. Ţĥîš ñöţé đéšçŕîƃéš ţĥé ḿéçĥàñîšḿ ţĥàţ đöéš îţ ƒöŕ
ŴöŕđþŕöçéššîñĝḾĻ, ŵĥàţ îţ đéçļîñéš ţö ŕéþļàý, àñđ ŵĥàţ ţĥé çöŕþüš ţéšţ àñđ ţĥé
þàŕîţý šļîçé ḿéàšüŕé. Þàŕéñţ ÀĐ:
É-02: Ţĥé ƒöŕḿàţ šýšţéḿ.
Ţĥé šţöŕé ḿéçĥàñîçš îţ ƃüîļđš öñ àŕé îñ
Šķéļéţöñ šţöŕé àñđ šţŕéàḿîñĝ.
Ţĥé ŵŕîţéŕ þŕöĵéçţš àñ éẋţŕàçţéđ þàŕàĝŕàþĥ ƒŕöḿ ţĥé ḿöđéļ, šö à þàŕàĝŕàþĥ ţĥàţ îš ŕéƃüîļţ îš ŕé-šéŕîàļîšéđ: îţš šţàŕţ-ţàĝ àţţŕîƃüţéš, ţĥé šéļƒ-çļöšîñĝ ƒöŕḿš îñšîđé îţ, ţĥé çĥàŕàçţéŕ ŕéƒéŕéñçéš, ţĥé ŵĥîţéšþàçé à þŕöđüçéŕ îñđéñţéđ îţ ŵîţĥ, ţĥé ŕüñš ţĥé ŕéàđéŕ ḿéŕĝéđ, àñđ ţĥé ŕüñ þŕöþéŕţîéš îţ ŕéƃüîļţ àļļ çöḿé öüţ îñ ţĥé ŵŕîţéŕ'š šþéļļîñĝ. Ŕéþļàý ķééþš ţĥé šöüŕçé'š šþéļļîñĝ ŵĥéŕéṽéŕ ñöţĥîñĝ çĥàñĝéđ.
Ŵĥàţ à ŕéƃüîļţ þàŕàĝŕàþĥ ļöšéš
Ḿéàšüŕéđ öṽéŕ ţĥé 185 ƒîẋţüŕéš ƃéƒöŕé ŕéþļàý éẋîšţéđ, ŵîţĥ éàçĥ đéŕîñĝ þàŕàĝŕàþĥ ñöŕḿàļîšéđ öñé šţéþ àţ à ţîḿé üñţîļ ƃöţĥ šîđéš àĝŕééđ. Ţĥé ƒîŕšţ çöļüḿñ çöüñţš ƒîẋţüŕéš îñ ŵĥîçĥ ţĥé ḿéçĥàñîšḿ îš öƃšéŕṽàƃļé, ţĥé šéçöñđ çöüñţš þàŕàĝŕàþĥš, àñđ ţĥé ţĥîŕđ çöüñţš þàŕàĝŕàþĥš ŵĥéŕé ţĥàţ ḿéçĥàñîšḿ àļöñé éẋþļàîñš ţĥé ŵĥöļé đéŕéñçé.
| Ḿéçĥàñîšḿ | Ƒîẋţüŕéš | Þàŕàĝŕàþĥš | Šüƒƒîçîéñţ |
|---|---|---|---|
<w:t> àţţŕîƃüţéš ŕéŵŕîţţéñ (xml:space) | 154 | 1058 | 39 |
<w:p> šţàŕţ àţţŕîƃüţéš đŕöþþéđ (w:rsid*, w14:paraId, w14:textId) | 153 | 1758 | 0 |
| Šéļƒ-çļöšîñĝ ƒöŕḿ éẋþàñđéđ | 147 | 824 | 4 |
| Šķîþþàƃļé-éļéḿéñţ šţŕîþ | 121 | 345 | 28 |
| Ŕüñ ƃöüñđàŕîéš ḿéŕĝéđ | 102 | 488 | 92 |
| Ŕüñ þŕöþéŕţîéš ŕéƃüîļţ ƒŕöḿ ţĥé ḿöđéļ | 75 | 481 | 15 |
| Îñţéŕ-éļéḿéñţ ŵĥîţéšþàçé çöļļàþšéđ | 51 | 115 | 0 |
| Ŕéšîđüàļ þàšţ àļļ öƒ ţĥé àƃöṽé | 54 | 132 | 54 |
Ţĥé šéļƒ-çļöšîñĝ ŕöŵ çöüñţš ţĥé ḿàŕķüþ à þàŕàĝŕàþĥ çàŕŕîéš ŕàţĥéŕ ţĥàñ ţĥé
þàŕàĝŕàþĥ îţšéļƒ: à đŕàŵîñĝ'š <mc:AlternateContent> šüƃţŕéé ţŕàṽéļš ţĥŕöüĝĥ
ţĥé ḿöđéļ àñđ öüţ ţĥŕöüĝĥ Ĝö'š xml éñçöđéŕ, šö éṽéŕý éḿþţý éļéḿéñţ îñ ţĥé
àñçĥöŕ çàḿé ƃàçķ àš à šţàŕţ àñđ éñđ þàîŕ. Ţĥé ŕéšîđüàļ ŕöŵ îš çöḿþļéẋ ƒîéļđš
ŵĥöšé ŕéšüļţ ŕüñš ţĥé ŵŕîţéŕ ŕéçöñšţŕüçţš, <w:lastRenderedPageBreak>, <w:t>
šþļîţš ţĥé ŕüñ ḿéŕĝéŕ çàññöţ éẋþŕéšš, àñđ à <w:sdtEndPr> đŕöþþéđ ƒŕöḿ à
šţŕüçţüŕéđ đöçüḿéñţ ţàĝ.
Ţŵö ţĥîñĝš ĥàđ ţö çĥàñĝé ţöĝéţĥéŕ ƒöŕ àñý ƒîẋţüŕé ţö çöḿé ƃàçķ ŵĥöļé. Ţĥé
ŵŕîţéŕ'š šķîþþàƃļé-éļéḿéñţ šţŕîþ ŕàñ öṽéŕ ŵĥöļé þàŕţš àƒţéŕ àššéḿƃļý,
word/styles.xml îñçļüđéđ, šö 179 ƒîẋţüŕéš ļöšţ ƃýţéš îñ à þàŕţ ţĥé ŕéàđéŕ
ñéṽéŕ ţöüçĥéđ; îţ ñöŵ ŕéàçĥéš ŕéñđéŕéđ çöñţéñţ öñļý (renderBlock), àñđ à
šéþàŕàţé þàšš, stripWMLRevisionElements, šţîļļ ŕéḿöṽéš ŕéṽîšîöñ ḿàŕķüþ ƒŕöḿ
ŵĥöļé þàŕţš ƃéçàüšé àççéþţîñĝ ŕéṽîšîöñš îš à đéçîšîöñ àƃöüţ ţĥé đöçüḿéñţ. Ŵîţĥ
ţĥàţ îñ þļàçé, ŕéþļàý îš ŵĥàţ ḿöṽéš ţĥé çöüñţ.
Ţĥé ḿéçĥàñîšḿ
Ţĥé ŕéàđéŕ ŕéçöŕđš ţĥé šþàñ
rawxml.go ĝîṽéš ţĥé ŕéàđéŕ ŵĥàţ îţ ñééđš: d.Offset() îš ŵĥéŕé ţĥé ţöķéñ
ţĥé đéçöđéŕ ļàšţ ŕéţüŕñéđ ƃéĝîñš, d.Pin(off) ĥöļđš ţĥé šöüŕçé ŵîñđöŵ öþéñ
àçŕöšš à šüƃţŕéé, àñđ d.Range(from, to) ŕéţüŕñš ţĥé ƃýţéš ƃéţŵééñ ţŵö
öƒƒšéţš. parseParagraph þîñš ţĥé <w:p> šţàŕţ öñ éñţŕý, ķééþš ţĥé ŕàŵ
šţàŕţ ţàĝ, àñđ ţàķéš ţĥé þàŕàĝŕàþĥ'š šþàñ àţ ţĥé éñđ éļéḿéñţ, šö îţ ĥöļđš ţĥé
éẋàçţ šöüŕçé ƃýţéš: ţĥé šţàŕţ-ţàĝ àţţŕîƃüţéš, ţĥé šéļƒ-çļöšîñĝ ƒöŕḿš, ţĥé
çĥàŕàçţéŕ-ŕéƒéŕéñçé šþéļļîñĝš àñđ ţĥé ŵĥîţéšþàçé.
Ţĥé ŕéàđéŕ ƃŕàçķéţš ţĥé þàŕàĝŕàþĥ'š šķéļéţöñ ŵîţĥ ḿàŕķéŕ ŕ郚, ţĥé đéṽîçé ţĥé
ÖĐƑ ŵŕîţéŕ àļŕéàđý üšéš ƒöŕ þàŕţ ƃöüñđàŕîéš (skelPartStartPrefix îñ
reader.go), šö ñö ñéŵ šķéļéţöñ éñţŕý ţýþé îš ñééđéđ àñđ à ŵŕîţéŕ ţĥàţ đöéš
ñöţ ķñöŵ ţĥé ḿàŕķéŕš ţàķéš îţš öŕđîñàŕý þàţĥ. wml_replay.go ñàḿéš ţĥéḿ:
@@SKEL_PARA@@àñđ@@SKEL_PARA_BLOCK@@, éàçĥ ƒöļļöŵéđ ƃý ţĥé þàŕàĝŕàþĥ'š šþàñ, þŕéçéđé ţĥé þàŕàĝŕàþĥ'š šķéļéţöñ. Ţĥé šéçöñđ šàýš ţĥé šķéļéţöñ îš ţĥé þàŕàĝŕàþĥ'š ƒŕàḿé àŕöüñđ öñé ƃļöçķ ŕéƒ, ŵĥîçĥ îš ŵĥàţ ļéţš ţĥé ŵŕîţéŕ ŕéþļàý ţĥé þàŕàĝŕàþĥ'š üñçĥàñĝéđ çĥîļđŕéñ îñţö à ŕéñđéŕéđ ƃļöçķ.@@SKEL_REGION_END@@çļöšéš ţĥé ŕéĝîöñ àƒţéŕ ţĥé þàŕàĝŕàþĥ;@@SKEL_REGION_END_SPAN@@ƒöļļöŵéđ ƃý à šþàñ çļöšéš à ŕéĝîöñ ĥöļđîñĝ šéṽéŕàļ þàŕàĝŕàþĥš;@@SKEL_REGION_SKIP@@çļöšéš îţ ŵîţĥ ñö ŕéþļàý.@@SKEL_REGION_START@@öþéñš à ŕéĝîöñ àĥéàđ öƒ à þàŕàĝŕàþĥ ţĥé ŕéàđéŕ ĥöļđš ƃàçķ üñţîļ îţ ķñöŵš ŵĥéŕé à çöḿþļéẋ ƒîéļđ éñđš, šö ţĥé ŕéĝîöñ àļšö çöṽéŕš ţĥé šķéļéţöñ ŵŕîţţéñ ƃéţŵééñ ţĥàţ þàŕàĝŕàþĥ àñđ ţĥé ñéẋţ ŵĥîļé îţ ŵàîţéđ, àñđ ţĥé ŕéþļàýéđ ƃýţéš ļàñđ îñ šöüŕçé öŕđéŕ.
Éṽéŕý éḿîššîöñ þàţĥ îñ parseParagraph, àñđ ţĥé ţŵö ƒļüšĥéš îñ wml.go ƒöŕ
þàŕàĝŕàþĥš ţĥé ŕéàđéŕ đéƒéŕš, ŵŕîţé ţĥé šàḿé ḿàŕķéŕš; replayParagraphBegin
àñđ replayRegionEnd ĥöļđ ţĥé šţàţé. À þàŕàĝŕàþĥ ţĥàţ îš đŕöþþéđ, öŕ ḿéŕĝéđ
îñţö îţš ñéîĝĥƃöüŕ, ḿàķéš ţĥé ŕéĝîöñ îţ ƃéļöñĝš ţö îñéļîĝîƃļé, ƃéçàüšé ţĥé
ŕéĝîöñ'š šþàñ ŵöüļđ þüţ îţ ƃàçķ.
Ţĥé ŕéñđéŕéđ þàŕàĝŕàþĥ ŕéöþéñš ŵîţĥ ţĥé šöüŕçé'š šţàŕţ ţàĝ (wmlParagraphOpenTag
đŕöþš ţĥé šļàšĥ öƒ à šéļƒ-çļöšîñĝ ţàĝ, šîñçé ţĥé ŵŕîţéŕ çļöšéš ţĥé éļéḿéñţ
îţšéļƒ), šö w:rsidR, w14:paraId àñđ w14:textId šüŕṽîṽé à ţŕàñšļàţîöñ ţöö.
Ţĥé ŵŕîţéŕ đéçîđéš öñ ţĥé ŕéñđéŕ
Ţĥé ŵŕîţéŕ đéçîđéš ţĥé ŵàý smlSourceContent đéçîđéš ƒöŕ à šĥàŕéđ šţŕîñĝ:
ţĥé ţéšţ îš ţĥé çöñţéñţ àƃöüţ ţö ƃé éḿîţţéđ. wmlReplayState ḿàŕķš ţĥé þàŕţ
ƃüƒƒéŕ àţ ţĥé ŕéĝîöñ'š šţàŕţ àñđ ŕéñđéŕš éṽéŕý ƃļöçķ îñšîđé àš üšüàļ. À ƃļöçķ
îš üñçĥàñĝéđ ŵĥéñ îţš ŕéñđéŕîñĝ ƒöŕ ţĥé ţàŕĝéţ éǫüàļš îţš ŕéñđéŕîñĝ ƒŕöḿ ţĥé
šöüŕçé ŕüñš, ŵĥîçĥ renderBlockFromSource þŕöđüçéš ŵîţĥ Writer.fromSource
šéţ šö preferredRuns àñšŵéŕš ŵîţĥ ţĥé šöüŕçé, ñéšţéđ ţéẋţƃöẋ ƃļöçķš
îñçļüđéđ. Àţ ţĥé ŕéĝîöñ'š éñđ, îƒ ñö ƃļöçķ đéŕéđ, ţĥé ƃüƒƒéŕ îš ţŕüñçàţéđ
ƃàçķ ţö ţĥé ḿàŕķ àñđ à þļàçéĥöļđéŕ šţàñđš îñ ƒöŕ ţĥé šþàñ.
Ţĥé šéçöñđ ŕéñđéŕ ĥàþþéñš öñļý ƒöŕ à ƃļöçķ ŵĥöšé ŕéñđéŕîñĝ çàñ đéŕ:
changedBlocks ñàḿéš éṽéŕý ƃļöçķ ŵîţĥ ţàŕĝéţ ŕüñš ƒöŕ ţĥé ļöçàļé àñđ,
ţŕàñšîţîṽéļý, éṽéŕý ƃļöçķ ŵĥöšé þàýļöàđ çàŕŕîéš à đŕàŵîñĝ ḿàŕķéŕ ƒöŕ öñé, šö
àñ üñţŕàñšļàţéđ ŕöüñđ ţŕîþ ŕéñđéŕš éàçĥ ƃļöçķ öñçé àñđ à ţŕàñšļàţéđ öñé
ŕéñđéŕš éàçĥ ţŕàñšļàţéđ þàŕàĝŕàþĥ ţŵîçé. À ţàŕĝéţ ţĥàţ šàýš ŵĥàţ ţĥé šöüŕçé
šàîđ, çöđéš îñçļüđéđ, ŕéþļàýš; à ţàŕĝéţ ŵîţĥ ţĥé šàḿé ţéẋţ àñđ ñö ƒöŕḿàţţîñĝ
îš à çĥàñĝé.
À ţööļ šüçĥ àš kapi sed ŵîţĥ ñö ţàŕĝéţ ļöçàļé éđîţš à ƃļöçķ'š šöüŕçé ŕüñš
îñ þļàçé, àñđ à ŕéñđéŕîñĝ ƒŕöḿ àñ éđîţéđ šöüŕçé îš îţš öŵñ çöḿþàŕîšöñ. Ţĥé
ŕéàđéŕ ţĥéŕéƒöŕé šţàḿþš éṽéŕý ƃļöçķ îţ éḿîţš ŵîţĥ à đîĝéšţ öƒ ţĥé šöüŕçé
ŕüñš (source_fingerprint.go, ţĥé openxml-source-fingerprint àññöţàţîöñ),
àñđ à ŵŕîţéŕ ŕéþļàýš ñöţĥîñĝ öṽéŕ à ƃļöçķ ŵĥöšé ŕüñš ñö ļöñĝéŕ ḿàţçĥ îţ:
ţĥé đöçẋ ŕéĝîöñ ŕéñđéŕš šüçĥ à ƃļöçķ ŵĥöļé, àñđ ţĥé ŠþŕéàđšĥééţḾĻ àñđ
ĐŕàŵîñĝḾĻ šöüŕçé ƒöŕḿš àŕé ĥéļđ ƃàçķ ţĥé šàḿé ŵàý. À ƃļöçķ ţĥàţ ŕéàçĥéš ţĥé
ŵŕîţéŕ ŵîţĥöüţ ţĥé šţàḿþ îš ţŕéàţéđ àš éđîţéđ, šö à þàţĥ ţĥàţ đŕöþš
àññöţàţîöñš ļöšéš ŕéþļàý ŕàţĥéŕ ţĥàñ àñ éđîţ.
Ţĥé šþàñš ŵàîţ àš þļàçéĥöļđéŕš (<!--kapi-replay-N-->) üñţîļ ţĥé þàŕţ'š
þöšţ-þàššéš ĥàṽé ŕüñ, ţĥé ŕéṽîšîöñ šţŕîþ àñđ ţĥé ŕüñ ƒüšîöñš îñ postWML
àḿöñĝ ţĥéḿ, àñđ restoreWMLReplays þüţš ţĥéḿ ƃàçķ ļàšţ. Ñö þàšš ŕéŵŕîţéš
ƃýţéš ţĥé šöüŕçé ŵŕöţé.
À çĥàñĝéđ þàŕàĝŕàþĥ ķééþš ŵĥàţ đîđ ñöţ çĥàñĝé
Ƒöŕ à þàŕàĝŕàþĥ ŵĥöšé ƃļöçķ ŕéñđéŕéđ đéŕéñţļý, replayUnchangedChildren
ŵàļķš ţĥŕéé ļîšţš öƒ ţĥé þàŕàĝŕàþĥ'š đîŕéçţ çĥîļđŕéñ: ţĥé šöüŕçé šþàñ'š,
ţĥé šöüŕçé ŕéñđéŕîñĝ'š àñđ ţĥé ţàŕĝéţ ŕéñđéŕîñĝ'š. wmlParagraphChildren
ļîšţš ţĥé çĥîļđŕéñ ţĥé ŕéàđéŕ ŕéñđéŕš àñđ šķîþš ţĥé öñéš îţ ñéṽéŕ ŕéàđš
(<w:pPr>, þŕööƒîñĝ ḿàŕķš, þéŕḿîššîöñ ŕàñĝéš, Ŵöŕđ'š _GoBack ƃööķḿàŕķ). Ŵĥéñ
ţĥé ţĥŕéé ļîšţš ĥàṽé ţĥé šàḿé ļéñĝţĥ àñđ à çĥîļđ ĥàš ţĥé šàḿé ñàḿé îñ àļļ
ţĥŕéé àñđ ŕéñđéŕéđ ţĥé šàḿé ƒŕöḿ šöüŕçé àñđ ţàŕĝéţ, ţĥé šöüŕçé'š ƃýţéš ƒöŕ îţ
ĝö îñţö ţĥé öüţþüţ; öţĥéŕŵîšé ţĥé ŕéñđéŕéđ çĥîļđ đöéš. À ŕüñ ţĥé ŕéàđéŕ
ḿéŕĝéđ ŵîţĥ îţš ñéîĝĥƃöüŕ, öŕ à ŕéṽîšîöñ ŵŕàþþéŕ îţ üñŵŕàþþéđ, ƃŕéàķš ţĥé
àļîĝñḿéñţ öŕ ţĥé ñàḿé ḿàţçĥ àñđ îš ŕéñđéŕéđ, ŵĥîçĥ îš ŵĥàţ ķééþš à ŵŕàþþéŕ'š
ƃýţéš öüţ öƒ àñ àççéþţéđ đöçüḿéñţ. À ţŕàñšļàţéđ þàŕàĝŕàþĥ ţĥéŕéƒöŕé ķééþš ţĥé
ƃýţéš öƒ îţš üñçĥàñĝéđ đŕàŵîñĝ ŕüñš, ƃööķḿàŕķš, çöḿḿéñţ ŕàñĝéš àñđ ƒîéļđ
ḿàŕķéŕš, àñđ ŕéñđéŕš îţš ţéẋţ.
Ŵĥàţ îš ñöţ ŕéþļàýéđ
Ţŕàçķéđ çĥàñĝéš. Ŵîţĥ AutomaticallyAcceptRevisions šéţ, ŵĥîçĥ îš ţĥé
đéƒàüļţ, ţĥé ŕéàđéŕ'š þŕé-þàšš đŕöþš ŵĥàţ à ŕéṽîšîöñ đéļéţéš, ţĥé þàŕàĝŕàþĥ
þàŕšéŕ üñŵŕàþš ŵĥàţ îţ îñšéŕţš, àñđ ţĥé ŵŕîţéŕ šţŕîþš ţĥé ḿàŕķéŕš. À ŕéþļàýéđ
šþàñ ŵöüļđ þüţ ţĥé ŕéṽîšîöñ ƃàçķ, šö paragraphReplayable ŕéñđéŕš àñý
þàŕàĝŕàþĥ ĥöļđîñĝ à ŕéṽîšîöñ ŵŕàþþéŕ, à þàŕàĝŕàþĥ-ḿàŕķ ḿàŕķéŕ, à
þŕöþéŕţý-çĥàñĝé šñàþšĥöţ öŕ à ḿöṽé-ŕàñĝé ḿàŕķéŕ ŵĥîļé àççéþţàñçé îš öñ. Ŵîţĥ
àççéþţàñçé öƒƒ ţĥé šàḿé þàŕàĝŕàþĥ ŕéþļàýš.
Ƒîéļđš. À çöḿþļéẋ ƒîéļđ çàñ šţŕàđđļé þàŕàĝŕàþĥ ƃöüñđàŕîéš, àñđ ţĥé ŕéàđéŕ
ĥöļđš à þàŕàĝŕàþĥ ƃàçķ ŵĥîļé àñ éẋţŕàçţàƃļé ƒîéļđ îš šţîļļ öþéñ àţ îţš éñđ
(partFieldStraddle). Ţĥé ŕéĝîöñ šţàýš öþéñ ŵĥîļé à ƒîéļđ îš öþéñ àçŕöšš à
þàŕàĝŕàþĥ'š éñđ, šö ţĥé þàŕàĝŕàþĥš à ƒîéļđ çŕöššéš àŕé ŕéþļàýéđ ţöĝéţĥéŕ öŕ
ŕéñđéŕéđ ţöĝéţĥéŕ; pullLeadingFldCharEndIntoPrevParagraph ñéṽéŕ šééš à
ŕéþļàýéđ þàŕàĝŕàþĥ ƃéšîđé à ŕéñđéŕéđ öñé.
xml:space. ÉÇḾÀ-376-1 §17.3.3.31 ļéàṽéš ŵĥîţéšþàçé ĥàñđļîñĝ îñ <w:t> ţö
ẊḾĻ, àñđ à çöñšüḿéŕ ḿàý çöļļàþšé à ļéàđîñĝ öŕ ţŕàîļîñĝ šþàçé ŵĥéŕé ţĥé
àţţŕîƃüţé îš ḿîššîñĝ. Ţĥé ŵŕîţéŕ àđđš îţ, àñđ wmlTextIsSpaceSafe ŕéñđéŕš à
þàŕàĝŕàþĥ ŕàţĥéŕ ţĥàñ ŕéþļàýîñĝ îţ öṽéŕ ţĥàţ ŕéþàîŕ; ŠþŕéàđšĥééţḾĻ ĥàš ţĥé
šàḿé ŕüļé îñ smlTextIsSpaceSafe. ẊḾĻ ŵĥîţéšþàçé îš šþàçé, ţàƃ, çàŕŕîàĝé
ŕéţüŕñ àñđ ļîñé ƒééđ: à ñàŕŕöŵ ñö-ƃŕéàķ šþàçé öŕ à ļîñé šéþàŕàţöŕ àţ ţĥé éđĝé
öƒ à <w:t> îš çöñţéñţ, àñđ šüçĥ à þàŕàĝŕàþĥ ŕéþļàýš.
Ñéšţéđ çöñţéñţ. À ţéẋţƃöẋ þàŕàĝŕàþĥ îñšîđé à đŕàŵîñĝ, à <m:nor/> þŕöšé
šþàñ îñšîđé àñ éǫüàţîöñ àñđ à đŕàŵîñĝ'š àļţ ţéẋţ àŕé ƃļöçķš öƒ ţĥéîŕ öŵñ.
Éàçĥ îš à ŕéƒ îñšîđé ţĥé ĥöšţ þàŕàĝŕàþĥ'š ŕéĝîöñ, öŕ à ḿàŕķéŕ îñ ţĥé ĥöšţ
ƃļöçķ'š þàýļöàđ, àñđ îš çöḿþàŕéđ ļîķé àñý öţĥéŕ; à ţŕàñšļàţéđ ţéẋţƃöẋ ŕéñđéŕš
îţš ĥöšţ þàŕàĝŕàþĥ.
Çöŕé þŕöþéŕţîéš. docProps/core.xml ķééþš îţš ƃýţé öŕđéŕ ḿàŕķ: Ĝö'š
đéçöđéŕ ŕéþöŕţš îţ àš çĥàŕàçţéŕ đàţà îñ ţĥé þŕöļöĝ, šö parseCoreProperties
ĥöļđš îţ ƃàçķ ƒŕöḿ ţĥé đéçöđéŕ àñđ ŵŕîţéš îţ ţö ţĥé šķéļéţöñ àš îţ ŵàš. À
þŕöþéŕţý ţĥé šöüŕçé ŵŕöţé éḿþţý ŕéþļàýš ƒŕöḿ îţš šöüŕçé ƃýţéš ŵĥéŕéṽéŕ îţ
šîţš, šéļƒ-çļöšîñĝ ƒöŕḿ îñçļüđéđ; üþšţŕéàḿ Okapi öḿîţš à šéļƒ-çļöšîñĝ öñé
ŵŕîţţéñ ļàšţ îñšîđé <cp:coreProperties>, ŵĥîçĥ ţĥé þàŕîţý çàñöñîçàļîšéŕ
šéţţļéš öñ ƃöţĥ šîđéš.
Ţĥé çöŕþüš ţéšţ
TestWMLParagraphReplay_CorpusIsByteIdentical îñ
wml_paragraph_replay_test.go àššéŕţš éṽéŕý đöçẋ ƒîẋţüŕé îñ okapi-testdata
ĝöéš ƃàçķ ƃýţé ƒöŕ ƃýţé öñ àñ üñţŕàñšļàţéđ ŕöüñđ ţŕîþ, ŵîţĥ ţĥé éẋçļüšîöñš
ñàḿéđ îñ docxReplayExclusions àñđ à ŕéàšöñ þéŕ ĝŕöüþ;
TestWMLParagraphReplay_ExclusionsAreStillNeeded ƒàîļš ƒöŕ à ƒîẋţüŕé ţĥàţ ñö
ļöñĝéŕ ñééđš îţš éñţŕý.
| Ĝŕöüþ | Ƒîẋţüŕéš | Ŕéàšöñ |
|---|---|---|
| Ŕéṽîšîöñ àççéþţàñçé | 30 | À þàŕàĝŕàþĥ ĥöļđîñĝ ŕéṽîšîöñ ḿàŕķüþ îš ŕéñđéŕéđ, àñđ ţĥé àççéþţéđ đöçüḿéñţ đéŕš ƒŕöḿ ţĥé šöüŕçé ƃý đéšîĝñ |
| ĐŕàŵîñĝḾĻ þàŕàĝŕàþĥš îñ çĥàŕţ àñđ đîàĝŕàḿ þàŕţš | 3 | Ŕéƃüîļţ ƒŕöḿ ţĥé ḿöđéļ, àñđ à ĐÖÇẊ þàçķàĝé ţàķéš Okapi'š DrawingRunProperties àţţŕîƃüţé šţŕîþ öñ ŵŕîţé |
Ţĥé xml:space ŕéþàîŕ | 1 | 952-1.docx ĥöļđš à <w:t> ŵîţĥ à ţŕàîļîñĝ šþàçé àñđ ñö xml:space="preserve" |
TestByteFidelity_CorpusUntouchedParts šţàţéš ţĥé ŵéàķéŕ çöñţŕàçţ ƒöŕ þàŕţš
ţĥé ŕéàđéŕ éẋţŕàçţéđ ñöţĥîñĝ ƒŕöḿ; îţš éẋçļüšîöñš àŕé ţĥé šàḿé þŕéđîçàţéš
àþþļîéđ ţö à þàŕţ.
Ţĥé þàŕîţý šļîçé
Ţĥé öþéñẋḿļ çĥàîñ îñ cli/parity/roundtrip/coverage_test.go çöḿþàŕéš ñàţîṽé
öüţþüţ ŵîţĥ üþšţŕéàḿ Okapi'š àƒţéŕ çàñöñîçàļîšàţîöñ. Ŕéþļàý ŕéšţöŕéš ŵĥàţ
Okapi'š ƒîļţéŕ đŕöþš, šö ţĥé çàñöñîçàļîšéŕ àþþļîéš ţĥé šàḿé öḿîššîöñš ţö ƃöţĥ
šîđéš:
OpenXMLEffectiveRPr{StripSkippableElements: true}đŕöþš ţĥé šķîþþàƃļé þŕöþéŕţîéš àñđ ţĥé çöñţàîñéŕš ţĥéý éḿþţý ƃéƒöŕé ţĥé §17.7 çàšçàđé ŕüñš, šö à þàŕàĝŕàþĥ ḿàŕķ öñé šîđé đŕöþþéđ îš ñöţ ƒîļļéđ ŵîţĥ 郃éçţîṽé ƒöŕḿàţţîñĝ öñ ţĥé öţĥéŕ.XMLCanonical{StripWMLSkippableElements: true}đŕöþš<w:lang>,<w:noProof>,<w:bidiVisual>, þŕööƒîñĝ ḿàŕķš, þéŕḿîššîöñ ŕàñĝéš,<w:lastRenderedPageBreak>, ţĥé_GoBackƃööķḿàŕķ àñđ îţš éñđ,<w:bCs>àñđ<w:iCs>öñ à ŕüñ ŵîţĥ ñö çöḿþļéẋ-šçŕîþţ ţéẋţ, éṽéŕý éḿþţý<w:rPr>,<w:pPr>àñđ<w:sdtEndPr>, àñđ éṽéŕý ŕüñ ļéƒţ ŵîţĥ ñöţĥîñĝ ƃüţ îţš þŕöþéŕţîéš.XMLCanonical{MergeAdjacentWMLRuns: true}ƒüšéš àđĵàçéñţ ŕüñš ŵîţĥ éǫüàļ þŕöþéŕţîéš àñđ ţĥé ţéẋţ éļéḿéñţš îñšîđé ţĥéḿ, ţĥé šĥàþé Okapi'šRunMergerŵŕîţéš.XMLCanonical{StripEmptyCoreProperties: true}đŕöþš ƒŕöḿ<cp:coreProperties>éṽéŕý ţŕàñšļàţàƃļé çĥîļđ ĥöļđîñĝ ñö ţéẋţ, šö ţĥé þŕöþéŕţý Okapi'š Ĵéŕîçĥö þéñđîñĝ šţàŕţ ţàĝ ļéàṽéš öüţ ḿàţçĥéš ţĥé öñé ñàţîṽé ŕéþļàýš.
Öṽéŕ ţĥé 185 đöçẋ ƒîẋţüŕéš, ñàţîṽé öüţþüţ àţ ţĥé çàñöñîçàļ ţîéŕ ḿöṽéđ ƒŕöḿ 146 ƃéƒöŕé éîţĥéŕ çĥàñĝé ţö 149 ŵîţĥ ţĥé šţŕîþ çöñƒîñéđ àñđ 155 ŵîţĥ ŕéþļàý; ţĥé ƃŕîđĝé šţàýš ƃýţé-éǫüàļ öñ àļļ 185. Ţĥé šļîçé ĥàš ñö ţîéŕ ƒļööŕ ƒöŕ öþéñẋḿļ ñàţîṽé, šö ţĥé ţîéŕ ţàƃļé îñ à ṽéŕƃöšé ŕüñ îš ţĥé ḿéàšüŕéḿéñţ.
Çöšţ
Ţĥé ŵŕîţé ĥàļƒ öƒ à ŕöüñđ ţŕîþ öñ ţĥé ƒîṽé ļàŕĝéšţ ƒîẋţüŕéš, ḿéàšüŕéđ ŵîţĥ
go test -bench öñ öñé ḿàçĥîñé ƃéƒöŕé àñđ àƒţéŕ ŕéþļàý (ḿîļļîšéçöñđš þéŕ
ŵŕîţé, ḿéđîàñ öƒ ţĥŕéé ŕüñš öƒ ƒîṽé). "Ţŕàñšļàţéđ" ƃŕàçķéţš éṽéŕý ţéẋţ ŕüñ.
| Ƒîẋţüŕé | Šîžé | Ƃéƒöŕé, üñţŕàñšļàţéđ | Ƃéƒöŕé, ţŕàñšļàţéđ | Àƒţéŕ, üñţŕàñšļàţéđ | Àƒţéŕ, ţŕàñšļàţéđ |
|---|---|---|---|---|---|
apissue.docx | 988 ĶƂ | 4.2 | 4.3 | 2.5 | 6.4 |
large-attribute.docx | 925 ĶƂ | 5.3 | 5.1 | 23.7 | 5.5 |
content_category_test.docx | 706 ĶƂ | 1.4 | 1.4 | 1.3 | 1.5 |
delTextAmp.docx | 554 ĶƂ | 3.1 | 3.0 | 2.7 | 3.1 |
Hangs.docx | 279 ĶƂ | 11.3 | 11.4 | 7.1 | 23.5 |
Àñ üñţŕàñšļàţéđ ŵŕîţé ŕéñđéŕš éàçĥ ƃļöçķ öñçé àñđ ŕéþļàýš, àñđ îš ƒàšţéŕ ţĥàñ
ƃéƒöŕé öñ ƒöüŕ öƒ ţĥé ƒîṽé. À ţŕàñšļàţéđ ŵŕîţé çàŕŕîéš ţĥé šéçöñđ ŕéñđéŕ àñđ
ţĥé çĥîļđ àļîĝñḿéñţ ƒöŕ éṽéŕý ţŕàñšļàţéđ þàŕàĝŕàþĥ, ŵĥîçĥ çöšţš ĥàļƒ àš ḿüçĥ
àĝàîñ öñ apissue.docx àñđ ţŵîçé àš ḿüçĥ öñ Hangs.docx, ŵĥöšé þàŕàĝŕàþĥš
ĥöļđ ṼḾĻ šĥàþéš ţĥé šöüŕçé ŕéñđéŕ ĥàš ţö éẋþàñđ ţöö. Àļļöçàţîöñ þéŕ ŵŕîţé îš
üñçĥàñĝéđ.
large-attribute.docx îš ţĥé éẋçéþţîöñ îñ ţĥé üñţŕàñšļàţéđ çöļüḿñ, àñđ ţĥé
ţîḿé îš đéƒļàţé ŕàţĥéŕ ţĥàñ ŕéþļàý. Îţš öñé đŕàŵîñĝ çàŕŕîéš à ḿéĝàƃýţé öƒ
ƃàšé64 îñ àñ o:gfxdata àţţŕîƃüţé ŵîţĥ àñ 
 ŕéƒéŕéñçé éṽéŕý 76
çĥàŕàçţéŕš; ţĥé šöüŕçé šþéļļîñĝ đéƒļàţéš îñ 21.6 ḿš àĝàîñšţ 0.9 ḿš ƒöŕ ţĥé
šàḿé àţţŕîƃüţé ŵîţĥ ŕàŵ ñéŵļîñéš, ŵĥîçĥ îš ŵĥàţ ţĥé ŵŕîţéŕ üšéđ ţö þŕöđüçé.
Àñ ẊḾĻ þàŕšéŕ ñöŕḿàļîšéš à ŕàŵ ñéŵļîñé îñ àñ àţţŕîƃüţé ṽàļüé ţö à šþàçé
(ẊḾĻ 1.0 §3.3.3), šö ţĥé šöüŕçé šþéļļîñĝ îš ţĥé öñé ţĥàţ ķééþš ţĥé šĥàþé.
Ţĥé šķéļéţöñ ĝŕöŵš ƃý öñé šþàñ þéŕ þàŕàĝŕàþĥ, ŵĥîçĥ îš ţĥé šîžé öƒ ţĥé þàŕàĝŕàþĥ-ƃéàŕîñĝ þàŕţš öñçé ḿöŕé.