7e56265ed2
Merge #83 (stage 10): select content model
2026-06-09 06:32:25 +02:00
3ebbaff07c
feat(html): select content model (optgroup/nested-select/input close) ( #83 )
2026-06-09 06:32:24 +02:00
936a3900d2
Merge: unify head builder onto live TreeNode model
2026-06-09 06:29:00 +02:00
7add3b3fa5
refactor(html): build head on the live TreeNode model, remove DocFrame
2026-06-09 06:29:00 +02:00
b1a15639c0
Merge #83 (stage 9): template content nesting
2026-06-09 06:21:12 +02:00
b245640ee2
fix(html): keep template content nested instead of splitting to body ( #83 )
2026-06-09 06:21:10 +02:00
b234319657
Merge #83 (stage 8): frameset documents
2026-06-09 06:17:56 +02:00
f637b8e154
feat(html): frameset documents and void frame element ( #83 )
2026-06-09 06:17:55 +02:00
eb44eb3a49
Merge #83 (stage 7): HTML integration points
2026-06-09 06:06:55 +02:00
2945de0855
feat(html): SVG HTML integration points switch back to HTML namespace ( #83 )
2026-06-09 06:06:54 +02:00
6dab33a89f
Merge #83 (stage 6): table foster-parenting
2026-06-09 06:04:02 +02:00
47e0e3e644
feat(html): table foster-parenting for stray content ( #83 )
2026-06-09 06:04:01 +02:00
8c168857e1
Merge #83 (stage 5): SVG attribute-name case adjustment
2026-06-09 05:52:26 +02:00
038774cfc2
feat(html): SVG attribute-name case adjustment in foreign content ( #83 )
2026-06-09 05:52:26 +02:00
2af445dd09
Merge #83 (stage 4b): adoption agency algorithm
2026-06-09 05:46:13 +02:00
9092ab3dbd
feat(html): adoption agency algorithm and active formatting elements ( #83 )
2026-06-09 05:46:12 +02:00
66e510aca9
Merge #83 (stage 4a): live TreeNode body builder
2026-06-09 05:35:27 +02:00
fccb407797
refactor(html): build body as a live mutable TreeNode open-elements stack ( #83 )
2026-06-09 05:35:26 +02:00
8062dea342
Merge #83 (stage 3): SVG element-name case adjustment
2026-06-09 05:29:15 +02:00
40c5973d5a
feat(html): SVG element-name case adjustment in foreign content ( #83 )
2026-06-09 05:29:14 +02:00
d084e3521f
Merge #83 (stage 2): HTML foreign content namespaces
2026-06-09 05:22:38 +02:00
d64bcaf2fa
feat(html): SVG/MathML foreign-content namespace switching ( #83 )
2026-06-09 05:22:37 +02:00
acf1efe366
Merge #83 (stage 1): HTML table tree construction
2026-06-09 05:18:13 +02:00
b7f7e15fbc
feat(html): table tree construction with implied tbody/tr ( #83 )
2026-06-09 05:18:13 +02:00
e978da9b41
Merge #84 (partial): HTML tokenizer states and reference handling
2026-06-09 05:11:18 +02:00
e86c87af3c
feat(html): numeric-ref validation, NUL, RCDATA decoding, semicolon-less refs ( #84 )
2026-06-09 05:11:18 +02:00
704370c779
Merge: HTML conformance validator in the Validation idiom
2026-06-09 04:39:03 +02:00
3a55eeeaa6
feat(html): conformance validator as composable Validation rules
2026-06-09 04:39:03 +02:00
31c6fb6e0b
Merge #101 : DTD attribute rule decomposition
2026-06-09 04:28:04 +02:00
506c502602
refactor(validation): decompose DTD attribute checks into per-constraint rules ( #101 )
2026-06-09 04:28:03 +02:00
3391f595a2
Merge #87 : XInclude range inclusion
2026-06-09 04:19:38 +02:00
ecb9b8c881
feat(xinclude): range inclusion via XPointer range model ( #87 )
2026-06-09 04:19:38 +02:00
3bd810dc2c
Merge #88 : XPointer range model
2026-06-09 04:16:23 +02:00
8871fee977
feat(xpointer): range(), range-to(), and string-range() schemes ( #88 )
2026-06-09 04:16:23 +02:00
47d071ab8e
Merge #85 : C14N node-subset, xml:* inheritance, C14N 2.0 prefix rewrite and selection
2026-06-09 04:06:11 +02:00
b3bbacb4e8
feat(canonical): C14N 2.0 sequential prefix rewrite, QName-aware values, node-set selection ( #85 )
2026-06-09 04:06:02 +02:00
e77b39a449
feat(canonical): node-subset C14N with ancestor namespace and xml:* inheritance ( #85 )
2026-06-09 03:55:54 +02:00
aca0181be9
Merge #91 : serialization round-trip text escaping
2026-06-09 03:48:21 +02:00
87fd7ba889
feat(emitting): textEscaping round-trip option to preserve carriage returns ( #91 )
2026-06-09 03:48:20 +02:00
a8cf4d2d76
Merge #90 : DOM node kinds, ownerDocument, adoption
2026-06-09 03:43:32 +02:00
46131bff1b
feat(model): first-class doctype/entity-reference/namespace nodes, ownerDocument, adoption ( #90 )
2026-06-09 03:43:24 +02:00
a71178ba9b
docs: move closed Schematron #80 to done in roadmap
2026-06-09 03:31:29 +02:00
5c9c6366bd
docs: refresh test count to 666
2026-06-09 03:30:44 +02:00
4256670758
Merge: Schematron key/document/current functions ( #80 )
2026-06-09 03:30:44 +02:00
2db9915fb2
feat(schematron): support key(), document(), and current() in tests
...
Schematron tests, lets, and message expressions can now use key() backed
by xsl:key declarations parsed from the schema, document() loading an
external file through an injected documentLoader, and current() resolving
to the rule context node. A node-keyed function-table factory threads
through the evaluation. Completes the Schematron audit.
2026-06-09 03:30:43 +02:00
e1a0b5698c
docs: move closed RELAX NG #79 to done in roadmap
2026-06-09 03:21:37 +02:00
259aa251fd
docs: refresh test count to 662
2026-06-09 03:20:48 +02:00
7487f50e0e
Merge: RNC follow-annotations ( #79 )
2026-06-09 03:20:48 +02:00
dbdf98e231
feat(relaxng): skip RNC >> follow-annotations, completing #79
...
A >> follow-annotation after a pattern (a foreign element name with
optional [ ... ] content) is skipped, chaining and combining with leading
annotations; neither carries schema semantics. Namespace declarations
inside annotations were already dropped by the annotation skipper, so the
RNC compact syntax is now fully covered.
2026-06-09 03:20:47 +02:00
45001f3422
docs: bring the shipped-overview roadmap node current with catalog #86 and XSLT #81 #82
2026-06-09 03:16:05 +02:00