PureXML/Tests
Mihaela Mihaljevic aa7cbb71f8 feat(schema): validate value-bound facet definitions; accept gMonth --MM--
Continue the facet-validity work. Per XSD Part 2 Datatypes 4.3, each
minInclusive/maxInclusive/minExclusive/maxExclusive and enumeration value must
be a valid value of the base type; minInclusive excludes minExclusive and
maxInclusive excludes maxExclusive; and the lower bound may not exceed the upper
bound (nor equal it when either side is exclusive, an empty value space),
compared in the base primitive's value space. Bound and enumeration values were
previously unchecked, so a malformed or out-of-space value (maxInclusive="",
enumeration="" on float) was accepted.

The bound-value check (which validates a bound against its base type) exposed a
gMonth lexical gap: only --MM was recognized, not the XSD 1.0 form --MM-- used
by valid schemas across the corpus. parseMonthOnly now accepts an optional
trailing -- (the --MM erratum form still works), with an optional timezone,
which removes 26 false schema rejections the bound check would otherwise have
caused and also fixes instance-side gMonth validation.

XSTS: invalid schemas accepted 2082 to 1789; valid instances rejected 233 to
214 (the gMonth fix); valid schemas rejected held at 72; invalid instances
accepted held at 165.
2026-06-13 22:10:57 +02:00
..
Fixtures feat(xpath,xslt,wasm): evaluation budget, tailored collation, WASI runtime proof 2026-06-11 06:26:13 +02:00
C14NSpecExampleTests.swift feat(canonical): C14N 1.0 spec-example vectors, three conformance fixes 2026-06-10 08:51:47 +02:00
CanonicalC14N11Tests.swift feat(c14n): Canonical XML 1.1 (xml:base merging, no xml:id inheritance) 2026-06-09 17:59:35 +02:00
CanonicalPrefixRewriteTests.swift feat(canonical): C14N 2.0 sequential prefix rewrite, QName-aware values, node-set selection (#85) 2026-06-09 04:06:02 +02:00
CanonicalSelectionTests.swift feat(canonical): C14N 2.0 sequential prefix rewrite, QName-aware values, node-set selection (#85) 2026-06-09 04:06:02 +02:00
CanonicalSubsetTests.swift feat(canonical): node-subset C14N with ancestor namespace and xml:* inheritance (#85) 2026-06-09 03:55:54 +02:00
CanonicalTests.swift
CatalogBaseURITests.swift feat(catalog): xml:base and RFC 3986 relative-URI resolution of entry URIs 2026-06-08 16:19:45 +02:00
CatalogGroupPreferTests.swift feat(catalog): honor group-level prefer override 2026-06-08 18:05:03 +02:00
CatalogSGMLTests.swift feat(catalog): SGML Open (TR 9401) catalog format 2026-06-08 17:03:06 +02:00
CatalogSuffixPreferTests.swift feat(catalog): systemSuffix/uriSuffix entries and the prefer attribute 2026-06-08 15:31:10 +02:00
CatalogTests.swift feat(validation): eduni errata behaviors, 3.3.3 attribute normalization 2026-06-10 07:50:47 +02:00
ConformanceCanonicalModesTests.swift test(conformance): add a C14N exclusive/2.0 modes corpus 2026-06-10 02:24:30 +02:00
ConformanceCatalogTests.swift test(conformance): add an XML Catalog corpus 2026-06-10 04:44:45 +02:00
ConformanceCorpusTests.swift fix(html): fragment parser reconstructs active formatting elements 2026-06-10 01:59:16 +02:00
ConformanceDTDTests.swift test(conformance): add a DTD content-model corpus 2026-06-10 02:32:58 +02:00
ConformanceEmittingTests.swift test(conformance): serializer options and HTML depth corpora 2026-06-10 03:57:04 +02:00
ConformanceHTMLDepthTests.swift test(conformance): serializer options and HTML depth corpora 2026-06-10 03:57:04 +02:00
ConformanceRegexTests.swift fix(regex): use the XSD definition of \w and \W 2026-06-13 18:31:07 +02:00
ConformanceSchematronTests.swift test(conformance): add a Schematron corpus 2026-06-10 02:18:14 +02:00
ConformanceXIncludeTests.swift test(conformance): add an XInclude/XPointer corpus 2026-06-10 04:40:16 +02:00
ConformanceXPathAxisTests.swift test(conformance): add an XPath axes/predicates corpus 2026-06-10 02:30:56 +02:00
ContentMatcherDifferentialTests.swift refactor(validation): one shared childSteps; matcher and tokenizer differentials 2026-06-10 04:06:26 +02:00
ContentNFAStateBudgetTests.swift fix(schema,regex): bound NFA state explosion and class-subtraction crash; land XSTS baseline 2026-06-13 18:04:25 +02:00
DTDAttributeTests.swift
DTDConditionalNotationTests.swift feat(dtd): conditional sections, notations, NDATA, external parameter entities 2026-06-08 14:39:42 +02:00
DTDDefaultingTests.swift feat(dtd): conditional sections, notations, NDATA, external parameter entities 2026-06-08 14:39:42 +02:00
DTDEntityDeclaredTests.swift feat(parsing): IBM section clean, entity-declared WFC/VC split, declaration recursion 2026-06-10 07:26:50 +02:00
DTDIdentifierTests.swift
DTDLocatedContentTests.swift feat(dtd): located content-model errors with recovery hints 2026-06-09 00:59:25 +02:00
DTDParameterEntityDepthTests.swift test(dtd): verify parameter-entity and external-subset depth 2026-06-09 18:50:54 +02:00
DTDStandaloneTests.swift feat(validation): standalone validity constraints and entity WFC 2026-06-10 07:13:30 +02:00
DTDSubsetStrictnessTests.swift feat(validation): 3.3.3 attribute normalization, 4.3.1 text declarations, 4.4.5 PE char-refs 2026-06-10 06:43:25 +02:00
DTDTests.swift
DTDValidationTests.swift
DTDValidityConstraintTests.swift refactor(validation): located structured validity findings 2026-06-10 10:45:17 +02:00
EncodingMismatchTests.swift feat(parsing): fatal encoding-declaration contradictions, E38 version rule 2026-06-10 08:16:08 +02:00
EncodingTests.swift feat(parsing): EUC-TW (CNS 11643) decoding, closing #108 2026-06-09 17:44:22 +02:00
EntityBaseURITests.swift feat(parsing): per-entity base-URI tracking for nested external entities 2026-06-10 08:24:17 +02:00
EntityResolverTests.swift feat(validation): eduni errata behaviors, 3.3.3 attribute normalization 2026-06-10 07:50:47 +02:00
EntitySplicingTests.swift feat(parsing): splice entity replacement markup into content 2026-06-10 06:55:40 +02:00
ErrataValidityTests.swift feat(validation): eduni errata behaviors, 3.3.3 attribute normalization 2026-06-10 07:50:47 +02:00
EXSLTTests.swift feat(xpath): EXSLT common, math, and sets extension functions 2026-06-09 18:31:50 +02:00
HTMLAdoptionTests.swift fix(html): fragment parser reconstructs active formatting elements 2026-06-10 01:59:16 +02:00
HTMLDocumentTests.swift fix(html): keep template content nested instead of splitting to body (#83) 2026-06-09 06:21:10 +02:00
HTMLForeignContentTests.swift feat(html): SVG HTML integration points switch back to HTML namespace (#83) 2026-06-09 06:06:54 +02:00
HTMLFramesetTests.swift feat(html): frameset documents and void frame element (#83) 2026-06-09 06:17:55 +02:00
HTMLSelectTests.swift feat(html): in-select-in-table closes select on table tags (#83) 2026-06-09 06:37:35 +02:00
HTMLTests.swift feat(xslt): output methods in depth 2026-06-10 13:10:50 +02:00
HTMLTokenizerTests.swift feat(html): vendor the complete WHATWG named entity set (#84) 2026-06-09 07:45:55 +02:00
HTMLValidationTests.swift feat(html): conformance validator as composable Validation rules 2026-06-09 04:39:03 +02:00
LineEndingTests.swift feat(parsing): line-ending normalization and XML 1.1 line terminators 2026-06-08 15:07:21 +02:00
LintTests.swift feat(editor): unified lint surface merging parse and validation diagnostics 2026-06-08 13:18:29 +02:00
ModelTests.swift docs(model): TreeNode ownership and concurrency contracts 2026-06-10 03:46:44 +02:00
NamespaceConstraintTests.swift feat(parsing): Namespaces 1.0 constraint enforcement 2026-06-10 08:06:45 +02:00
NamespaceTests.swift
OutputEncodingTests.swift feat(emitting): CJK output encodings, closing output-encoding parity 2026-06-09 09:41:28 +02:00
ParityEdgeTests.swift
ParsingTests.swift perf(parsing): byte-backed Reader and bulk content runs 2026-06-10 18:48:57 +02:00
PatternTests.swift
PullPushDifferentialTests.swift refactor(validation): one shared childSteps; matcher and tokenizer differentials 2026-06-10 04:06:26 +02:00
PushParserTests.swift
QuickFixTests.swift feat(editor): structured quick-fixes from completions 2026-06-08 13:35:33 +02:00
RecoveringReaderTests.swift
RegexCategoryTests.swift feat(regex): Unicode category escapes and character-class subtraction 2026-06-08 15:15:46 +02:00
RegexTests.swift fix(regex): use the XSD definition of \w and \W 2026-06-13 18:31:07 +02:00
RelaxNGCombineTests.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGCompactAnnotationTests.swift feat(relaxng): handle RNC annotations and div grouping 2026-06-08 17:12:35 +02:00
RelaxNGCompactConcatTests.swift feat(relaxng): fold RNC ~ string concatenation 2026-06-08 17:38:58 +02:00
RelaxNGCompactFollowAnnotationTests.swift feat(relaxng): skip RNC >> follow-annotations, completing #79 2026-06-09 03:20:47 +02:00
RelaxNGCompactParamTests.swift feat(relaxng): compact-syntax datatype parameter blocks 2026-06-08 16:55:57 +02:00
RelaxNGCompactTests.swift
RelaxNGDataParamTests.swift feat(relaxng): resolve datatypeLibrary and nsName subtraction 2026-06-08 17:21:49 +02:00
RelaxNGDatatypeLibraryTests.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGLocatedErrorTests.swift feat(relaxng): distinguish undeclared attribute from invalid value 2026-06-09 01:11:54 +02:00
RelaxNGNameClassTests.swift feat(relaxng): compact name-class subtraction (* - name) 2026-06-08 16:58:24 +02:00
RelaxNGQNameTests.swift feat(relaxng): QName values with dual-context resolution, instance level clean 2026-06-10 10:57:14 +02:00
RelaxNGSchemaCorrectnessTests.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGSpecSuiteTests.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGStreamingTests.swift feat(validation): streaming RELAX NG validation 2026-06-09 10:35:42 +02:00
RelaxNGTests.swift feat(relaxng): resolve datatypeLibrary and nsName subtraction 2026-06-08 17:21:49 +02:00
RelaxNGValueSpaceTests.swift feat(relaxng): compare typed <value> in the datatype value space 2026-06-08 17:36:16 +02:00
SaveOptionsTests.swift
SAXTests.swift
ScalarLexingTests.swift feat(parsing): scalar-level lexing, xmlconf archive fully conformant 2026-06-10 08:40:26 +02:00
SchemaAttributeRefTests.swift fix(schema): resolve <xs:attribute ref> to global attribute declarations 2026-06-13 19:30:11 +02:00
SchemaConformanceTests.swift
SchemaDurationFacetTests.swift style(schema): satisfy swiftlint on the XSTS conformance additions 2026-06-13 18:04:25 +02:00
SchemaElementBlockTests.swift fix(schema): enforce element-level block against xsi:type substitution 2026-06-13 18:04:25 +02:00
SchemaFacetDefinitionTests.swift feat(schema): validate value-bound facet definitions; accept gMonth --MM-- 2026-06-13 22:10:57 +02:00
SchemaIDIDREFTests.swift fix(schema): enforce document-scoped xs:ID uniqueness and xs:IDREF resolution 2026-06-13 19:17:34 +02:00
SchemaListFacetTests.swift fix(schema): enforce document-scoped xs:ID uniqueness and xs:IDREF resolution 2026-06-13 19:17:34 +02:00
SchemaMixedEmptyTests.swift fix(schema): allow character data in a mixed type with no content model 2026-06-13 19:37:24 +02:00
SchemaMultiDocumentTests.swift feat(schema): honor instance xsi:schemaLocation for multi-document validation 2026-06-13 19:54:12 +02:00
SchemaQNameLengthTests.swift fix(schema): treat QName length facets as non-constraining 2026-06-13 18:04:25 +02:00
SchemaStringWhitespaceTests.swift fix(schema): preserve significant whitespace in simple-content values 2026-06-13 20:08:08 +02:00
SchemaSubstitutionBlockTests.swift fix(schema): enforce block="substitution" on substitution-group heads 2026-06-13 18:31:07 +02:00
SchematronAbstractPatternTests.swift feat(schematron): instantiate abstract patterns with is-a/param 2026-06-08 17:58:33 +02:00
SchematronAbstractTests.swift feat(schematron): abstract rules and extends 2026-06-08 16:26:30 +02:00
SchematronDiagnosticTests.swift feat(schematron): diagnostics 2026-06-08 16:30:13 +02:00
SchematronDynamicTests.swift feat(schematron): dynamic message content and phase support 2026-06-08 15:45:27 +02:00
SchematronFunctionTests.swift feat(schematron): support key(), document(), and current() in tests 2026-06-09 03:30:43 +02:00
SchematronLetTests.swift feat(schematron): rule-level let variable bindings 2026-06-08 16:23:26 +02:00
SchematronScopedLetTests.swift feat(schematron): schema- and pattern-level let 2026-06-08 16:52:16 +02:00
SchematronTests.swift refactor(validation): migrate Schematron, retire Issue 2026-06-08 12:49:19 +02:00
SchemaUnionFacetTests.swift style(schema): satisfy swiftlint on the XSTS conformance additions 2026-06-13 18:04:25 +02:00
SchemaValueConstraintTests.swift fix(schema): honor empty-element default/fixed values and replace enumeration on restriction 2026-06-13 18:04:25 +02:00
SerializationEscapeTests.swift feat(emitting): textEscaping round-trip option to preserve carriage returns (#91) 2026-06-09 03:48:20 +02:00
SerializationOptionsTests.swift feat(emitting): attribute quote style, line endings, xml:space, writer namespaces 2026-06-08 15:24:49 +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
StreamingDTDValidationTests.swift feat(validation): streaming DTD ID/IDREF integrity 2026-06-09 10:21:20 +02:00
StreamingXSDTests.swift refactor(xsd): express the streaming content check as a Validation value 2026-06-10 02:14:02 +02:00
StrictRecoveringDifferentialTests.swift test(parsing): strict-vs-recovering differential corpus 2026-06-10 03:49:57 +02:00
StrictSubsetProfileTests.swift feat(parsing): strict internal-subset profile, xmltest 185 of 186 2026-06-10 08:29:54 +02:00
TextReaderBreadthTests.swift feat(parsing): xmlReader breadth: attribute navigation, namespaces, lang, position 2026-06-08 15:01:48 +02:00
TextReaderTests.swift
TreeNodeEditingTests.swift feat(model): TreeNode editing helpers (attributes, shallow copy, order, normalize) 2026-06-08 15:19:33 +02:00
TreeNodeIdentityTests.swift feat(model): first-class doctype/entity-reference/namespace nodes, ownerDocument, adoption (#90) 2026-06-09 03:43:24 +02:00
TreeNodeTests.swift
ValidationFrameworkTests.swift test(validation): cover the Bool forms of the && and || combinators 2026-06-09 09:08:27 +02:00
ValidationRuleTests.swift refactor(validation): decompose DTD attribute checks into per-constraint rules (#101) 2026-06-09 04:28:03 +02:00
ValidationTests.swift
W3CEduniSuiteTests.swift feat(parsing): scalar-level lexing, xmlconf archive fully conformant 2026-06-10 08:40:26 +02:00
W3CIBMSuiteTests.swift feat(parsing): scalar-level lexing, xmlconf archive fully conformant 2026-06-10 08:40:26 +02:00
W3CJapaneseSuiteTests.swift test(conformance): japanese section runner, fully clean 2026-06-10 07:30:30 +02:00
W3COasisSuiteTests.swift feat(parsing): strict DTD subset grammar, oasis section of xmlconf fully clean 2026-06-10 06:29:13 +02:00
W3CSunSuiteTests.swift feat(validation): standalone validity constraints and entity WFC 2026-06-10 07:13:30 +02:00
W3CXMLSuiteTests.swift feat(parsing): scalar-level lexing, xmlconf archive fully conformant 2026-06-10 08:40:26 +02:00
WriterTests.swift
XalanConfSuiteTests.swift feat(xslt): top-level stylesheet parameters 2026-06-10 17:35:11 +02:00
XIncludeNegotiationTests.swift feat(xinclude): content-negotiation hints, cycle detection, text+fragment 2026-06-08 15:52:18 +02:00
XIncludeTests.swift feat(xinclude): range inclusion via XPointer range model (#87) 2026-06-09 04:19:38 +02:00
XMLCharacterTests.swift
XMLDeclarationTests.swift feat(parsing): surface the XML declaration (version, encoding, standalone) 2026-06-08 14:53:04 +02:00
XPathAxisTests.swift
XPathContextTests.swift
XPathExpressionTests.swift
XPathFunctionTests.swift
XPathNamespaceTests.swift feat(xpath): eval-time namespace context and XPointer xmlns()/xpath1() schemes 2026-06-08 16:00:15 +02:00
XPathTests.swift
XPointerRangeTests.swift feat(xpointer): range(), range-to(), and string-range() schemes (#88) 2026-06-09 04:16:23 +02:00
XPointerTests.swift
XSDCategoryTests.swift feat(xsd): located, recovering content-model errors 2026-06-09 00:55:17 +02:00
XSDCompletionTests2.swift feat(editor): schema-driven completions and what-is-missing 2026-06-08 13:27:37 +02:00
XSDComplexTypeTests.swift
XSDCompositionTests.swift
XSDDatatypeTests.swift feat(schema): validate value-bound facet definitions; accept gMonth --MM-- 2026-06-13 22:10:57 +02:00
XSDDerivationControlTests.swift feat(schema): XSD derivation control (abstract, block, final, redefine) 2026-06-08 14:14:23 +02:00
XSDIdentityTests.swift feat(schema): built-in xsi:type resolution gated by substitution validity 2026-06-13 21:21:35 +02:00
XSDImportTests.swift feat(schema): XSD derivation control (abstract, block, final, redefine) 2026-06-08 14:14:23 +02:00
XSDLocatedContentTests.swift feat(xsd): located, recovering content-model errors 2026-06-09 00:55:17 +02:00
XSDNamespaceTests.swift feat(schema): XSD namespace qualification and xs:all constraints 2026-06-08 14:24:17 +02:00
XSDParticleRestrictionTests.swift feat(xsd): Particle Valid (Restriction) 2026-06-10 04:13:54 +02:00
XSDSchemaTests.swift
XSDSchemaValidationTests.swift refactor(xsd): schema-consistency checks through the validation framework 2026-06-10 06:04:40 +02:00
XSDTypeResolutionTests.swift fix(xsd): error on unknown xsi:type; cycle-detect type references 2026-06-10 03:10:00 +02:00
XSDValueConstraintTests.swift feat(xsd): xsi:nil/nillable and fixed/default value constraints 2026-06-08 13:03:06 +02:00
XSDWildcardTests.swift feat(schema): XSD wildcards and list built-in datatypes 2026-06-08 13:53:22 +02:00
XSLTApplyImportsTests.swift feat(xslt): implement xsl:apply-imports 2026-06-09 01:49:33 +02:00
XSLTAttributeSetTests.swift feat(xslt): implement xsl:attribute-set and use-attribute-sets 2026-06-09 01:39:45 +02:00
XSLTCDATASectionTests.swift feat(xslt): implement xsl:output cdata-section-elements 2026-06-09 02:58:34 +02:00
XSLTCompositionTests.swift fix(xslt): composition cycles terminate; id() gains a per-document index 2026-06-10 18:07:02 +02:00
XSLTCreatedNamesTests.swift feat(xslt): literal result element namespace copying 2026-06-10 12:55:48 +02:00
XSLTDecimalFormatTests.swift fix(xslt): no fatal traps on extreme format-number and xsl:number values 2026-06-10 15:35:36 +02:00
XSLTDoctypeOutputTests.swift feat(xslt): emit xsl:output doctype-public/doctype-system 2026-06-09 02:53:50 +02:00
XSLTDocumentFunctionTests.swift feat(xslt): document() fragments and base-URI resolution, completing #82 2026-06-09 03:12:49 +02:00
XSLTFallbackTests.swift feat(xslt): implement xsl:fallback for forwards-compatible processing 2026-06-09 01:52:21 +02:00
XSLTFunctionTests.swift feat(xslt): add generate-id, system-property, *-available functions 2026-06-09 02:20:36 +02:00
XSLTHTMLOutputTests.swift feat(xslt): serialize method=html output by the HTML rules 2026-06-09 02:48:00 +02:00
XSLTKeyNodeSetTests.swift feat(xslt): key() over a node-set second argument 2026-06-09 02:50:24 +02:00
XSLTMatchCacheTests.swift perf(xpath): compile patterns once per run, not per node 2026-06-10 03:24:38 +02:00
XSLTMessageTests.swift feat(xslt): implement xsl:message with terminate 2026-06-09 01:29:37 +02:00
XSLTNamespaceAliasTests.swift feat(xslt): literal result element namespace copying 2026-06-10 12:55:48 +02:00
XSLTNumberingTests.swift fix(xslt): no fatal traps on extreme format-number and xsl:number values 2026-06-10 15:35:36 +02:00
XSLTOutputMethodTests.swift feat(xslt): global variable scope and precedence, NCName:* name tests 2026-06-10 16:38:03 +02:00
XSLTParityTests.swift feat(xslt): output methods in depth 2026-06-10 13:10:50 +02:00
XSLTParserTests.swift feat(xslt): output methods in depth 2026-06-10 13:10:50 +02:00
XSLTResultFragmentTests.swift feat(xslt): make result-tree fragments usable as node-sets 2026-06-09 03:04:56 +02:00
XSLTSortCaseOrderTests.swift feat(xslt): implement xsl:sort case-order 2026-06-09 02:37:43 +02:00
XSLTTests.swift feat(xslt): output methods in depth 2026-06-10 13:10:50 +02:00
XSLTWhitespaceTests.swift feat(xslt): implement xsl:strip-space and xsl:preserve-space 2026-06-09 01:22:59 +02:00
XSTSSuiteTests.swift feat(schema): validate value-bound facet definitions; accept gMonth --MM-- 2026-06-13 22:10:57 +02:00