PureXML 0.3.0
A conformance-focused release: 37 Apache Xalan XSLT 1.0 cases closed since 0.2.0 (baseline 61 to 24).
XSLT / XPath
- HTML output method (16.2):
<left literal in attribute values; doctype namedHTML; non-null-namespace elements serialized as XML; non-ASCII percent-escaping in URI-valued attributes. document()base-URI resolution (12.1): two-argument and node-set forms, string-form against the stylesheet element's base, anddocument('')in included/imported files.xsl:keyunionmatchpatterns now index every branch;key()returns all non-unique matches.xsl:namespace-aliaskeeps the literal prefix and remaps only the URI (7.1.1).xsl:number:formatis an attribute value template;level="single"counts thefrom-boundary node when it also matchescount.xsl:strip-space/preserve-spacematch by namespace;xml:space="preserve"honored in the stylesheet.disable-output-escapingignored off text nodes (16.4); axis-prefixed match-pattern priority (5.5).- XPath: a lone
/parses as the root before a terminator; large integer-valued numbers format without a decimal point.
Emitting
- Processing-instruction data containing
?>is split with a space (7.3 recovery).
Verification
Green across the full local suite (1655 tests) and all authoritative corpora: Apache Xalan XSLT, the W3C XML 1.0 suite (xmltest, OASIS, IBM, Sun, Eduni, Japanese), the W3C XSD Schema Test Suite (14k+ groups), and the RELAX NG spec suite. swiftformat/swiftlint clean; builds and tests under WASI. Pure Swift, no dependencies, no Foundation in the library.
See CHANGELOG.md for the full list.