Skip to content

Fix inherited simpleContent scalar types and runtime text slots - #144

Merged
nth-bailey merged 3 commits into
mainfrom
fix/inherited-simple-content
Oct 4, 2026
Merged

nth-bailey merged 3 commits into
mainfrom
fix/inherited-simple-content

Conversation

@nth-bailey

Copy link
Copy Markdown
Collaborator

Derived simpleContent fields were typed as their complex base model rather than its inherited scalar, so valid numeric/string text failed generated Python construction and native record lookup returned an empty inherited slot. Resolve text references after import/include merging, retain named scalar constraints and complex bases, reject textual inheritance cycles, and keep one most-derived runtime text slot. TypeScript now inherits objects only from complex bases.

Stacked on #143. Tested source: 4421e3ce9f76024121919cc3d2f7fa5a1ecced24; later changes retain documentation/evidence only. Main is unchanged.

Validation:

  • Full gate: 340 Rust tests, 115 Python tests, 100% statement/branch wrapper coverage; fmt, strict workspace Clippy and Ruff clean.
  • Five core regressions plus compiled/executed consumers in all seven languages. Rust owned/borrowed XML + Serde, Python dataclass/Pydantic, Go and C# record/class XML/JSON round trips. Strict C++ and TypeScript compilation. The older Java decimal consumer now verifies scalar text directly.
  • Independent libxml2 validation: three valid fixtures accepted and three invalid scalar/facet fixtures rejected; all-seven CLI emission smoke passes.
  • Fresh matching CLI/native probes pass. Bounded W3C CType improves 23/28 → 26/28 round trips, removing all three targeted failures; schemas remain 31/31. AttrDecl remains 50/50 and NIST 447/452.

C# net8.0 consumers execute on .NET 10 with major roll-forward, not the minimum .NET 8 runtime. This does not implement extra facets inside simpleContent restrictions, empty/list text codecs, optional C# scalar attribute proxies, or full W3C conformance. The remaining two CType substitution-root failures and one NIST scalar group remain separate.

Report: research/runtime-simple-content-2026-10-03.md; raw logs, artifact hashes, toolchain versions, replay scripts and SHA256SUMS are retained under research/data/runtime-followups-2026-10-03/simple-content/. No additional performance claim is made for this schema fix.

@nth-bailey
nth-bailey changed the base branch from integration/xml-runtime-correctness to main October 4, 2026 03:59
@nth-bailey
nth-bailey marked this pull request as ready for review October 4, 2026 03:59
@nth-bailey
nth-bailey merged commit b5566d4 into main Oct 4, 2026
@nth-bailey
nth-bailey deleted the fix/inherited-simple-content branch October 4, 2026 04:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant