Skip to content

Latest commit

 

History

History
111 lines (81 loc) · 4.19 KB

File metadata and controls

111 lines (81 loc) · 4.19 KB

Changelog

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.

[1.0.0] - 2026-03-03

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.

Added

Schema

  • XML Schema (studierendendaten.xsd) with namespace https://schemas.library.ethz.ch/xmlns/studierendendaten/1
  • version="1.0.0" attribute on xsd:schema element
  • Example files in Beispieldateien/:
    • pflichtelemente.xml — mandatory elements only
    • alle-elemente.xml — all permitted elements

Tooling

  • Nix flake (flake.nix) providing libxml2, just, ruby, and bundler via nix develop
  • justfile with recipes: validate-schema, validate-examples, check-encoding, check-no-entities, validate, generate-pages, build-pages, and serve-pages
  • .gitignore for generated content and IDE files

CI/CD

  • Validation workflow (.github/workflows/validate.yml) running nix develop -c just validate on push and pull request
  • Release workflow (.github/workflows/release.yml) triggered on v* tags: creates GitHub release, attaches XSD, builds and deploys GitHub Pages

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

Documentation

  • CONTRIBUTING.md with language conventions, dev setup, branching, conventional commits, versioning strategy, release process, schema hosting, and eCH-0018 compliance rules
  • CHANGELOG.md following Keep a Changelog format
  • Versioning strategy documented in README following eCH-0018 namespace conventions

Changed (relative to nestor schema)

eCH-0018 compliance

  • ComplexType names use UpperCamelCase with Type suffix (Chapter 3.2)
  • SimpleType nonEmptyString renamed to NonEmptyStringType (Chapter 3.2)
  • SimpleType namenszusatz-types renamed to NamenszusatzType (Chapter 3.2)
  • Language markup uses element pairs instead of xml:lang attributes (Chapter 3.7.2)

PersonenstammdatenType

  • Renamed kuenstler_ordensname to abweichenderName
  • Added fruehererName element to NameType
  • Added fruehereGeschlechter element
  • Made geburtsort optional (Swiss citizens use heimatort instead)
  • Made land mandatory instead of ort in GeburtsortType
  • Added heimatorte element with HeimatortType
  • Added herkunftsland element
  • Renamed familienstand to zivilstand (Swiss terminology)
  • Removed religionszugehoerigkeit (not collected in Switzerland)
  • Added maturatyp and schule to hochschulzulassungsberechtigung

StudienverlaufType

  • Made studiensemester repeatable
  • Added semesterwochenstunden element
  • Renamed hoerstatus to hoererstatus
  • Added finanzierung element for scholarships and self-financing (doctoral students)

StudienleistungenType

  • Added studienabteilung element (departement, fakultaet, institut)
  • Added geltendeDoktoratsverordnung element
  • Added auszeichnungen element to leistung
  • Added doktorarbeit element with DoktorarbeitType

New types

  • HeimatortType — Swiss citizenship place of origin
  • DoktorarbeitType — doctoral thesis details
  • StudiengangType — study programme with language element
  • FachrichtungType — field of study with language element
  • GeldbetragType — monetary amounts with currency
  • NamenszusaetzeType — name affixes (prefixed, middle, postfixed)

Removed types

  • AnschriftStud — replaced by separate heimatanschrift/semesteranschrift elements
  • NonEmptyWithLang — replaced by element-pair language markup

Other

  • Renamed landkreis elements to kanton
  • Renamed anschriftenszusatz to adresszusatz in AnschriftType