The ISO/TC 211 XML Schemas site publishes XML schemas from ISO/TC 211 standards at https://schemas.isotc211.org. Each schema package has:
-
Downloadable XSD files at their canonical URLs (no
/schemas/prefix) -
Interactive schema browsers (lutaml-xsd SPA) per standard+part+version
-
Per-standard landing pages at
/{standard}/with namespace dereference pages -
A resource catalog at
/resources/(transforms, schematron, examples, codelists, bundles) -
A card-based index page with filter by standard/name/description
This repository is jointly managed by ISO/TC 211 and operated by Ribose.
All schemas are served at canonical top-level URLs — there is NO /schemas/ prefix in any URL.
This is critical because XML parsers, validators, and schemaLocation attributes depend on these URLs.
| Resource | URL Pattern | Example |
|---|---|---|
XML namespace |
|
|
XSD file |
|
|
JSON schema |
|
|
Schema browser |
|
|
Namespace hub |
|
|
Standard page |
|
|
XML examples |
|
|
JSON examples |
|
|
Transforms |
|
|
Codelists |
|
|
Bundles |
|
|
- Standard
-
5 digits (e.g.,
19115) - Part
-
-1,-2,-3, or-for standalone (no part) - Module
-
3 lowercase letters (e.g.,
cit,mdb,gml) - Version
-
semantic version (e.g.,
1.0,1.3.0)
Some schemas were previously available at paths without the part number
(e.g., /19155/gpi/1.0/ instead of /19155/-/gpi/1.0/).
These are redirected to the canonical URLs above:
-
Data files (.xsd, .xml, etc.) — the actual file is copied to the old path (XML parsers can’t follow HTML redirects)
-
HTML/directory paths — HTML meta-refresh redirect to the canonical URL
Legacy redirects are defined in _data/redirects.yml.
# Full build + local dev server (the standard test command)
make clean all serve
# Individual steps
make configs # Generate per-package lutaml-xsd configs + indexes
make lxr-spas # Build all LXR packages + SPA HTMLs
make _site # Build the Jekyll site into _site/
# Build a single LXR package
make build/19136-gml-1.0.lxr
# Clean all build artifacts
make clean
# Update git submodules (schemas)
make updateThe site is a Jekyll site using the jekyll-theme-isotc211 gem with Vite + Tailwind CSS v4.
Architecture: 1 standard+part+version → 1 LXR package → 1 SPA HTML file, all listed on the index page.
| Directory | Purpose |
|---|---|
|
Git submodule (ISO-TC211/schemas). MECE directory structure:
|
|
Helper schemas for LXR builds (xlink, w3c/xml.xsd, OGC sensorML/sweCommon) |
|
XSD package manifest — title, description, status, file paths |
|
JSON schema package manifest |
|
Reads manifests + auto-discovers resources from filesystem.
Outputs: per-package configs in |
|
Auto-generated per-package lutaml-xsd configs (generated, gitignored) |
|
Intermediate LXR packages |
|
SPA HTML output from lutaml-xsd (generated, gitignored) |
|
jekyll-vite frontend source |
|
Jekyll plugins (build_source_generator, schema_pages_generator, redirect_generator) |
|
Jekyll pages (index, resources, docs, news) |
|
Old→new URL redirect mappings |
|
Final deployable output (generated, gitignored) |
| Plugin | Purpose |
|---|---|
|
Registers SPA HTMLs from |
|
Generates per-standard listing pages ( |
|
Post-write hook: copies data files to legacy paths (for XML parsers), generates HTML meta-refresh redirects for directory paths. |