All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
First public release of the XML schema for archiving student data, based on the nestor schema (Version 1.0) and adapted for Swiss institutions following eCH-0018 best practices.
- XML Schema (
studierendendaten.xsd) with namespacehttps://schemas.library.ethz.ch/xmlns/studierendendaten/1 version="1.0.0"attribute onxsd:schemaelement- Example files in
Beispieldateien/:pflichtelemente.xml— mandatory elements onlyalle-elemente.xml— all permitted elements
- Nix flake (
flake.nix) providinglibxml2,just,ruby, andbundlervianix develop justfilewith recipes:validate-schema,validate-examples,check-encoding,check-no-entities,validate,generate-pages,build-pages, andserve-pages.gitignorefor generated content and IDE files
- Validation workflow (
.github/workflows/validate.yml) runningnix develop -c just validateon push and pull request - Release workflow (
.github/workflows/release.yml) triggered onv*tags: creates GitHub release, attaches XSD, builds and deploys GitHub Pages
- Jekyll-based site (minimal theme) with auto-generated landing pages per major schema version
- Schema version template (
pages/_templates/schema-version.md) with__MAJOR__placeholder for automatic generation - Release data fetched from GitHub API at build time
CONTRIBUTING.mdwith language conventions, dev setup, branching, conventional commits, versioning strategy, release process, schema hosting, and eCH-0018 compliance rulesCHANGELOG.mdfollowing Keep a Changelog format- Versioning strategy documented in README following eCH-0018 namespace conventions
- ComplexType names use UpperCamelCase with
Typesuffix (Chapter 3.2) - SimpleType
nonEmptyStringrenamed toNonEmptyStringType(Chapter 3.2) - SimpleType
namenszusatz-typesrenamed toNamenszusatzType(Chapter 3.2) - Language markup uses element pairs instead of
xml:langattributes (Chapter 3.7.2)
- Renamed
kuenstler_ordensnametoabweichenderName - Added
fruehererNameelement toNameType - Added
fruehereGeschlechterelement - Made
geburtsortoptional (Swiss citizens useheimatortinstead) - Made
landmandatory instead ofortinGeburtsortType - Added
heimatorteelement withHeimatortType - Added
herkunftslandelement - Renamed
familienstandtozivilstand(Swiss terminology) - Removed
religionszugehoerigkeit(not collected in Switzerland) - Added
maturatypandschuletohochschulzulassungsberechtigung
- Made
studiensemesterrepeatable - Added
semesterwochenstundenelement - Renamed
hoerstatustohoererstatus - Added
finanzierungelement for scholarships and self-financing (doctoral students)
- Added
studienabteilungelement (departement,fakultaet,institut) - Added
geltendeDoktoratsverordnungelement - Added
auszeichnungenelement toleistung - Added
doktorarbeitelement withDoktorarbeitType
HeimatortType— Swiss citizenship place of originDoktorarbeitType— doctoral thesis detailsStudiengangType— study programme with language elementFachrichtungType— field of study with language elementGeldbetragType— monetary amounts with currencyNamenszusaetzeType— name affixes (prefixed, middle, postfixed)
AnschriftStud— replaced by separateheimatanschrift/semesteranschriftelementsNonEmptyWithLang— replaced by element-pair language markup
- Renamed
landkreiselements tokanton - Renamed
anschriftenszusatztoadresszusatzinAnschriftType