PureXML/Sources/Schema
Mihaela Mihaljevic fe19b0b1ea feat(xsd): add identity constraints (unique, key, keyref)
Validate XSD identity constraints over the instance document in a pass that
walks the tree alongside type validation:

- xs:unique requires the selected nodes' field tuples to be distinct, excluding
  any node that is missing a field.
- xs:key additionally requires every field to be present.
- xs:keyref requires each tuple to equal a tuple of the named key or unique
  visible in an enclosing scope, resolved through a stack of scope frames so a
  keyref and the key it refers to may sit on the same element.

The selector and field XPaths run on the existing XPath engine, relative to the
declaring element and each selected node. Constraints are gathered for every
element declaration at any depth, keyed by element name.

Closes #67
2026-06-08 08:58:36 +02:00
..
BuiltinType.swift
ComplexType.swift
ComplexValidator.swift feat(xsd): add include/import/redefine, substitution groups, and xsi:type 2026-06-08 08:46:24 +02:00
ContentMatcher.swift
DateTimeParser.swift chore: silence clean-build warnings 2026-06-08 07:32:28 +02:00
DateTimeValue.swift
DecimalValue.swift
IdentityConstraint.swift feat(xsd): add identity constraints (unique, key, keyref) 2026-06-08 08:58:36 +02:00
IdentityValidator.swift feat(xsd): add identity constraints (unique, key, keyref) 2026-06-08 08:58:36 +02:00
Lexical.swift
Primitive.swift
RelaxNGDerivative.swift feat(schema): RELAX NG pattern model, parser, and derivative validation 2026-06-08 06:49:37 +02:00
RelaxNGParser.swift feat(schema): RELAX NG pattern model, parser, and derivative validation 2026-06-08 06:49:37 +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(schema): RELAX NG pattern model, parser, and derivative validation 2026-06-08 06:49:37 +02:00
SchemaDocument.swift feat(xsd): add identity constraints (unique, key, keyref) 2026-06-08 08:58:36 +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