<feed xmlns='http://www.w3.org/2005/Atom'>
<title>colitur.git/lib/render/emit_xml.mli, branch v1.0.0</title>
<subtitle>deterministic OCaml engine to compute and validate liturgical calendars for multiple rites, template-driven output to year 9999</subtitle>
<id>https://git.labunix.xyz/colitur.git/atom?h=v1.0.0</id>
<link rel='self' href='https://git.labunix.xyz/colitur.git/atom?h=v1.0.0'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/'/>
<updated>2026-08-19T06:57:42Z</updated>
<entry>
<title>feat(render): XML emitter and schema</title>
<updated>2026-08-19T06:57:42Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-19T06:57:42Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=544836cf0f6373a0a753d0953ce7e60fd96337af'/>
<id>urn:sha1:544836cf0f6373a0a753d0953ce7e60fd96337af</id>
<content type='text'>
Element-per-field; attributes carry identity only and there is no mixed
content, so a consumer's XPath never has to distinguish the two.

Schema validation is an opt-in make check-schema via xmllint, not an
in-suite assertion: validating XSD needs an XML library and the
dependency list is frozen. It prints SKIPPED loudly when xmllint is
absent, because a silent skip reads as a pass. The suite asserts
well-formedness properties directly instead.

This corrects the design spec, which claimed in-test validation.
</content>
</entry>
</feed>
