PureXML/Sources/Schema
Mihaela Mihaljevic 4765af0624 refactor(validation): migrate XSD validation onto the framework
Slice 4 of #92. The XSD complex-type and identity-constraint validators move
onto the validation framework, producing located results.

- ComplexValidator threads a coding path through its (inherently recursive)
  descent, so every content-model, attribute, and simple-type violation is now
  a ValidationError located by path ("... at path: order/qty"). Child steps
  carry a sibling index only when a name repeats.
- IdentityValidator returns ValidationError instead of Issue.
- A new XSD rules enum wraps both as Validation<Node, XSDContext> values gated to
  the document root, combined by Validator<XSDContext>. XSDContext carries the
  type table, the identity constraints, and the root declaration.
- Schema.Document.validate builds the context and runs the validator, returning
  [ValidationError].

XSD content-model validation is recursive by nature (a child's type depends on
its position), so the rules delegate to the recursion while contributing to one
error collection. Schematron is the last validator on Issue and migrates next.
2026-06-08 12:43:20 +02:00
..
BuiltinType.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
ComplexType.swift feat(schema): XSD schema-document parser and end-to-end validation 2026-06-08 06:40:03 +02:00
ComplexValidator.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00
ContentMatcher.swift feat(schema): XSD complex types and particles 2026-06-08 06:33:51 +02:00
DateTimeParser.swift chore: silence clean-build warnings 2026-06-08 07:32:28 +02:00
DateTimeValue.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
DecimalValue.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
IdentityConstraint.swift feat(xsd): add identity constraints (unique, key, keyref) 2026-06-08 08:58:36 +02:00
IdentityValidator.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00
Lexical.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
Primitive.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
RelaxNGCompactLexer.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
RelaxNGCompactParser.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
RelaxNGDerivative.swift feat(schema): RELAX NG pattern model, parser, and derivative validation 2026-06-08 06:49:37 +02:00
RelaxNGParser.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
RelaxNGPattern.swift feat(schema): RELAX NG pattern model, parser, and derivative validation 2026-06-08 06:49:37 +02:00
RelaxNGSchema.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
SchemaDocument.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00
SimpleType.swift feat(xsd): add list/union simple types, attribute groups, and element/group refs 2026-06-08 08:28:17 +02:00
XSDContext.swift feat(xsd): add identity constraints (unique, key, keyref) 2026-06-08 08:58:36 +02:00
XSDParser.swift feat(xsd): add identity constraints (unique, key, keyref) 2026-06-08 08:58:36 +02:00
XSDSimpleParser.swift feat(xsd): add include/import/redefine, substitution groups, and xsi:type 2026-06-08 08:46:24 +02:00
XSDValidations.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00