A web application to validate XML files encoded in ISO19139.che against the swiss geospatial metadata profile. | Read-only mirror of https://github.com/geoadmin/web-swiss-geometa-validator — Bundesamt für Landestopografie swisstopo. Issues & pull requests at the source.
  • XSLT 87.7%
  • Java 8.4%
  • HTML 1.9%
  • Groovy 1.1%
  • Python 0.6%
  • Other 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-05-20 17:41:04 +02:00
.github/workflows ci: run process_schematron.py before pytest to generate XSL files 2026-04-21 14:07:41 +02:00
api feat: resolve xlink:href on mri:descriptiveKeywords before schematron validation 2026-05-20 17:41:04 +02:00
home switch ui to angular, improve build process, set up environment 2024-03-15 08:28:57 +01:00
schxslt-1.5.2 init repo 2024-01-17 12:52:31 +01:00
test fix(tests): remove _run_in_large_stack import, update exception test to match new behavior 2026-04-21 14:13:17 +02:00
ui feat: migrate schema validation from iso19139.che to iso19115-3.2018.che (eCH-0271) 2026-03-31 16:52:35 +02:00
web feat: migrate schema validation from iso19139.che to iso19115-3.2018.che (eCH-0271) 2026-03-31 16:52:35 +02:00
.dockerignore fix: build errors - upgrade to Python 3.11, fix .dockerignore, fix schematron tuple unpacking 2026-04-01 09:58:55 +02:00
.gitignore chore: ignore compiled schematron XSL files (generated at Docker build time) 2026-04-21 12:04:53 +02:00
.gitmodules feat: migrate schema validation from iso19139.che to iso19115-3.2018.che (eCH-0271) 2026-03-31 16:52:35 +02:00
__init__.py init repo 2024-01-17 12:52:31 +01:00
app.py fix: Saxon GraalVM thread affinity - use persistent worker thread for all Saxon calls 2026-04-21 12:03:00 +02:00
config.py init repo 2024-01-17 12:52:31 +01:00
Dockerfile fix: build errors - upgrade to Python 3.11, fix .dockerignore, fix schematron tuple unpacking 2026-04-01 09:58:55 +02:00
gunicorn.conf.py fix: Saxon GraalVM thread affinity - use persistent worker thread for all Saxon calls 2026-04-21 12:03:00 +02:00
licence init repo 2024-01-17 12:52:31 +01:00
openapi.yaml fix: use source_file instead of source_text for saxonche compatibility 2026-04-16 17:17:47 +02:00
process_schematron.py fix: build errors - upgrade to Python 3.11, fix .dockerignore, fix schematron tuple unpacking 2026-04-01 09:58:55 +02:00
README.md feat: migrate schema validation from iso19139.che to iso19115-3.2018.che (eCH-0271) 2026-03-31 16:52:35 +02:00
requirements-dev.txt feat: migrate schema validation from iso19139.che to iso19115-3.2018.che (eCH-0271) 2026-03-31 16:52:35 +02:00
requirements.txt feat: migrate schema validation from iso19139.che to iso19115-3.2018.che (eCH-0271) 2026-03-31 16:52:35 +02:00

Swiss Geometadata Validator

Static Badge example workflow

The swiss geometadata validator gives a standalone tool in form of a Web application and API to validate XML files encoded in ISO19115-3.2018.che against the swiss geospatial metadata profile.

The ISO19115-3.2018.che is the XML implementation of the swiss geospatial metadata profile.

Running with Docker

Clone the repo

git clone --recurse-submodules https://github.com/geoadmin/web-swiss-geometa-validator.git

cd web-swiss-geometa-validator

Build and run the docker image

docker build -t swiss-geometa-validator .
docker run -d -p 8000:5000 --rm swiss-geometa-validator

Then visist http://localhost:8000 in your browser.

Running on Linux and Mac OS

Installation

Clone the repo and install dependencies in a python virtual environment (recommended).

git clone --recurse-submodules https://github.com/geoadmin/web-swiss-geometa-validator.git

cd web-swiss-geometa-validator

python -m venv .venv
source .venv/bin/activate

pip install -r requirements.txt

Compile the schematrons

python process_schematron.py

Run the application

gunicorn -c gunicorn.conf.py app:app

Then visist http://localhost:8000 in your browser.

Running on Windows

Installation

Clone the repo and install dependencies in a python virtual environment (recommended). Using powershell :

git clone --recurse-submodules https://github.com/geoadmin/web-swiss-geometa-validator.git

cd web-swiss-geometa-validator

python -m venv .venv
.venv/scripts/Activate.ps1

pip install -r requirements.txt

Compile the schematrons

python process_schematron.py

Run the application

waitress-serve --host 127.0.0.1 --port 8000 --threads 20 --call app:app

Then visist http://localhost:8000 in your browser.

Running on Windows at swisstopo

Installation

Clone the repo and install dependencies (using powershell) :

git clone --recurse-submodules https://github.com/geoadmin/web-swiss-geometa-validator.git

cd web-swiss-geometa-validator

& "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Scripts\pip3" install --trusted-host github.com --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --proxy=proxy-bvcol.admin.ch:8080 -r requirements.txt

Compile the schematrons

& "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Scripts\python" process_schematron.py

Run the application

& "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Scripts\waitress-serve" --host 127.0.0.1 --port 8000 --threads 20 --call app:app

Then visist http://localhost:8000 in your browser.