PureXML/Sources
Mihaela Mihaljevic 62e53b0fc1 feat(schema): validate pattern facet regular expressions at compile time
Each pattern facet value is now compiled when the schema is, instead of only
lazily at instance time (try?) where an unparseable pattern was silently
ignored. A structurally malformed pattern (unbalanced parentheses, a quantifier
with nothing to repeat) is rejected.

The check is conservative against over-rejection: it rejects only the
unambiguous structural RegexError kinds (.unbalanced, .danglingQuantifier) and
tolerates the kinds that fire on otherwise-valid patterns the engine cannot
fully handle (.empty for the empty pattern, .unsupported for an untabulated
\p{Is...} block such as a surrogate or historic block, .badQuantifier for the
lenient {,m} form, and .badEscape/.badClass which could fire on valid character-
class subtraction). So a{2,1} and a trailing backslash remain accepted (an
under-rejection), but no valid schema is rejected.

XSTS: invalid schemas accepted 1129 to 1092 (-37); valid schemas rejected held
at 72; instance buckets unchanged.
2026-06-13 23:52:11 +02:00
..
Canonical feat(canonical): C14N 1.0 spec-example vectors, three conformance fixes 2026-06-10 08:51:47 +02:00
Catalog feat(catalog): honor group-level prefer override 2026-06-08 18:05:03 +02:00
Emitting feat(emitting): output encoding for UTF and single-byte families 2026-06-09 09:32:39 +02:00
HTML feat(html): HTML 4 void elements and the ampersand-brace convention 2026-06-10 16:41:54 +02:00
Model docs(model): TreeNode ownership and concurrency contracts 2026-06-10 03:46:44 +02:00
Parsing feat(xpath,parsing): public streaming surface, linear document-order at scale 2026-06-11 06:06:31 +02:00
Pattern
Regex fix(regex): use the XSD definition of \w and \W 2026-06-13 18:31:07 +02:00
Schema feat(schema): validate pattern facet regular expressions at compile time 2026-06-13 23:52:11 +02:00
Stream
Validation refactor(validation): located structured validity findings 2026-06-10 10:45:17 +02:00
XInclude feat(xinclude): range inclusion via XPointer range model (#87) 2026-06-09 04:19:38 +02:00
XPath feat(xpath,xslt,wasm): evaluation budget, tailored collation, WASI runtime proof 2026-06-11 06:26:13 +02:00
XPointer feat(xpointer): range(), range-to(), and string-range() schemes (#88) 2026-06-09 04:16:23 +02:00
XSLT fix(schema,regex): bound NFA state explosion and class-subtraction crash; land XSTS baseline 2026-06-13 18:04:25 +02:00
API.swift feat(validation): standalone validity constraints and entity WFC 2026-06-10 07:13:30 +02:00
Lint.swift
PureXML.swift
QuickFix.swift