aboutsummaryrefslogtreecommitdiff
path: root/lib/render/emit_xml.mli
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-19 08:57:42 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-19 08:57:42 +0200
commit544836cf0f6373a0a753d0953ce7e60fd96337af (patch)
treea3d22c5d754c435ad2e65203d60690e6b1dea039 /lib/render/emit_xml.mli
parent9608e49a0956c8228a022454751765404d46daa5 (diff)
downloadcolitur-544836cf0f6373a0a753d0953ce7e60fd96337af.tar.gz
colitur-544836cf0f6373a0a753d0953ce7e60fd96337af.zip
feat(render): XML emitter and schema
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.
Diffstat (limited to 'lib/render/emit_xml.mli')
-rw-r--r--lib/render/emit_xml.mli8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/render/emit_xml.mli b/lib/render/emit_xml.mli
new file mode 100644
index 0000000..4d539d6
--- /dev/null
+++ b/lib/render/emit_xml.mli
@@ -0,0 +1,8 @@
+(* emit_xml.mli *)
+(** Element-per-field XML. Attributes carry identity only (rite, year, date);
+ everything else is an element, and there is no mixed content -- so a
+ consumer's XPath never has to distinguish the two. Shape pinned by
+ schema/colitur-v1.xsd. *)
+
+val escape : string -> string
+val year : Template.value -> string