PureXML/Tests
Mihaela Mihaljevic 4659ea33c8 feat(editor): source spans on the tree, mapping findings to positions
Slice 1 of #94 (editor integration). The keystone: a located validation finding
can now be mapped back to a source range.

- TreeNode gains a sourceRange (start/end Mark); SourceRange is a half-open span.
- PureXML.readTree builds a mutable, parent-aware, best-effort tree whose every
  node carries its span (an element from the < of its start tag to past its end
  tag; leaves over the text they consumed). Never throws, recovers in place,
  returns located diagnostics.
- TreeNode.node(at:) navigates a validation coding path to its node using the
  same canonical convention the validators build paths with (a sibling index
  only when a name repeats), and sourceRange(at:) returns the span. So
  Document.validate's ValidationError.codingPath resolves to characters in the
  document.

Tests prove the spans, the navigation, the end-to-end bridge (an XSD finding to
a source range), and that ranged reading of invalid input never crashes.
2026-06-08 13:14:29 +02:00
..
Fixtures
CanonicalTests.swift feat(canonical): Canonical XML (C14N) serialization 2026-06-08 06:13:02 +02:00
CatalogTests.swift feat(catalog): OASIS XML Catalog resolution 2026-06-08 06:03:02 +02:00
DTDAttributeTests.swift refactor(validation): migrate DTD validation onto the framework 2026-06-08 12:36:56 +02:00
DTDIdentifierTests.swift refactor(validation): migrate DTD validation onto the framework 2026-06-08 12:36:56 +02:00
DTDTests.swift
DTDValidationTests.swift refactor(validation): migrate DTD validation onto the framework 2026-06-08 12:36:56 +02:00
EncodingTests.swift
EntityResolverTests.swift
HTMLDocumentTests.swift feat(html): add HTML5 document tree construction with insertion modes 2026-06-08 09:24:11 +02:00
HTMLTests.swift feat(html): lenient HTML parser and serializer 2026-06-08 07:12:42 +02:00
ModelTests.swift
NamespaceTests.swift
ParityEdgeTests.swift feat(parity): C14N 2.0 text trimming, catalog delegation, XPath number formatting 2026-06-08 09:37:16 +02:00
ParsingTests.swift
PatternTests.swift feat(pattern): streaming xmlPattern matching 2026-06-08 05:49:13 +02:00
PushParserTests.swift feat(parsing): resumable push / feed streaming API 2026-06-08 07:21:22 +02:00
RecoveringReaderTests.swift feat(parsing): in-reader recovery keeps elements and pops to matching tags 2026-06-08 12:24:43 +02:00
RegexTests.swift feat(regex): XML Schema regular-expression engine 2026-06-08 06:18:50 +02:00
RelaxNGCompactTests.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
RelaxNGTests.swift feat(schema): RELAX NG pattern model, parser, and derivative validation 2026-06-08 06:49:37 +02:00
SaveOptionsTests.swift
SAXTests.swift
SchemaConformanceTests.swift test(schema): schema conformance fixtures, completing XSD and RELAX NG 2026-06-08 06:52:43 +02:00
SchematronTests.swift refactor(validation): migrate Schematron, retire Issue 2026-06-08 12:49:19 +02:00
SerializerTests.swift
SourceSpanTests.swift feat(editor): source spans on the tree, mapping findings to positions 2026-06-08 13:14:29 +02:00
TextReaderTests.swift
TreeNodeTests.swift
ValidationFrameworkTests.swift feat(validation): composable validation framework + structural rule 2026-06-08 12:00:34 +02:00
ValidationTests.swift feat(validation): composable validation framework + structural rule 2026-06-08 12:00:34 +02:00
WriterTests.swift
XIncludeTests.swift feat(xinclude): XInclude, URI resolution, and xml:base 2026-06-08 06:08:31 +02:00
XMLCharacterTests.swift
XPathAxisTests.swift feat(xpath): all thirteen axes via parent-aware navigation 2026-06-08 05:15:14 +02:00
XPathContextTests.swift feat(xpath): explicit evaluation context entry point 2026-06-08 05:40:52 +02:00
XPathExpressionTests.swift feat(xpath): expression engine and the four-type model 2026-06-08 05:33:13 +02:00
XPathFunctionTests.swift feat(xpath): full XPath 1.0 function library 2026-06-08 05:38:39 +02:00
XPathTests.swift feat(xpath): all thirteen axes via parent-aware navigation 2026-06-08 05:15:14 +02:00
XPointerTests.swift feat(xpointer): element() and xpointer() schemes 2026-06-08 05:52:23 +02:00
XSDComplexTypeTests.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00
XSDCompositionTests.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00
XSDDatatypeTests.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
XSDIdentityTests.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00
XSDImportTests.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00
XSDSchemaTests.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00
XSDValueConstraintTests.swift feat(xsd): xsi:nil/nillable and fixed/default value constraints 2026-06-08 13:03:06 +02:00
XSLTParityTests.swift feat(xslt): add xsl:include/import, xsl:output, comment, and processing-instruction 2026-06-08 08:08:38 +02:00
XSLTParserTests.swift feat(xslt): stylesheet model and parser 2026-06-08 06:57:11 +02:00
XSLTTests.swift feat(xslt): add xsl:include/import, xsl:output, comment, and processing-instruction 2026-06-08 08:08:38 +02:00