diff --git a/Makefile b/Makefile index b6d6de3d..0bad2233 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,7 @@ +.DEFAULT_GOAL := all + JSONSCHEMA ?= jsonschema SHELLCHECK ?= shellcheck -JQ ?= jq -PYTHON ?= python3 -CURL ?= curl TAR ?= tar ZIP ?= zip UNZIP ?= unzip @@ -14,91 +13,15 @@ RMRF ?= rm -rf SCHEMAS = $(shell find schemas/ -type f -name '*.json') TESTS = $(shell find test/ -type f -name '*.json') +# TODO: Add a version property to `jsonschema.json` VERSION = $(shell tr -d '\n\r' < VERSION) -GENERATED = \ - schemas/iso/currency/2015/alpha-code.json \ - schemas/iso/currency/2015/alpha-currency.json \ - schemas/iso/currency/2015/alpha-fund.json \ - schemas/iso/currency/2015/alpha-precious-metal.json \ - schemas/iso/currency/2015/alpha-test.json \ - schemas/iso/currency/2015/alpha-unknown.json \ - schemas/iso/currency/2015/numeric-code-additional.json \ - schemas/iso/currency/2015/numeric-code.json \ - schemas/iso/currency/2015/numeric-currency.json \ - schemas/iso/currency/2015/numeric-fund.json \ - schemas/iso/currency/2015/numeric-precious-metal.json \ - schemas/iso/currency/2015/numeric-test.json \ - schemas/iso/currency/2015/numeric-unknown.json \ - schemas/iso/currency/2015/historical/alpha-code.json \ - schemas/iso/currency/2015/historical/alpha-currency.json \ - schemas/iso/currency/2015/historical/numeric-code.json \ - schemas/iso/currency/2015/historical/numeric-currency.json \ - schemas/xbrl/utr/area-item-type-normative.json \ - schemas/xbrl/utr/area-item-type.json \ - schemas/xbrl/utr/duration-item-type-normative.json \ - schemas/xbrl/utr/duration-item-type.json \ - schemas/xbrl/utr/electric-charge-item-type-normative.json \ - schemas/xbrl/utr/electric-charge-item-type.json \ - schemas/xbrl/utr/electric-current-item-type-normative.json \ - schemas/xbrl/utr/electric-current-item-type.json \ - schemas/xbrl/utr/energy-item-type-normative.json \ - schemas/xbrl/utr/energy-item-type.json \ - schemas/xbrl/utr/energy-per-monetary-item-type-normative.json \ - schemas/xbrl/utr/energy-per-monetary-item-type.json \ - schemas/xbrl/utr/flow-item-type-normative.json \ - schemas/xbrl/utr/flow-item-type.json \ - schemas/xbrl/utr/force-item-type-normative.json \ - schemas/xbrl/utr/force-item-type.json \ - schemas/xbrl/utr/frequency-item-type-normative.json \ - schemas/xbrl/utr/frequency-item-type.json \ - schemas/xbrl/utr/ghg-emissions-item-type-normative.json \ - schemas/xbrl/utr/ghg-emissions-item-type.json \ - schemas/xbrl/utr/ghg-emissions-per-monetary-item-type-normative.json \ - schemas/xbrl/utr/ghg-emissions-per-monetary-item-type.json \ - schemas/xbrl/utr/length-item-type-normative.json \ - schemas/xbrl/utr/length-item-type.json \ - schemas/xbrl/utr/mass-item-type-normative.json \ - schemas/xbrl/utr/mass-item-type.json \ - schemas/xbrl/utr/memory-item-type-normative.json \ - schemas/xbrl/utr/memory-item-type.json \ - schemas/xbrl/utr/monetary-item-type-normative.json \ - schemas/xbrl/utr/monetary-item-type.json \ - schemas/xbrl/utr/per-share-item-type-normative.json \ - schemas/xbrl/utr/per-share-item-type.json \ - schemas/xbrl/utr/per-unit-item-type-normative.json \ - schemas/xbrl/utr/per-unit-item-type.json \ - schemas/xbrl/utr/plane-angle-item-type-normative.json \ - schemas/xbrl/utr/plane-angle-item-type.json \ - schemas/xbrl/utr/power-item-type-normative.json \ - schemas/xbrl/utr/power-item-type.json \ - schemas/xbrl/utr/pressure-item-type-normative.json \ - schemas/xbrl/utr/pressure-item-type.json \ - schemas/xbrl/utr/pure-item-type-normative.json \ - schemas/xbrl/utr/pure-item-type.json \ - schemas/xbrl/utr/shares-item-type-normative.json \ - schemas/xbrl/utr/shares-item-type.json \ - schemas/xbrl/utr/temperature-item-type-normative.json \ - schemas/xbrl/utr/temperature-item-type.json \ - schemas/xbrl/utr/voltage-item-type-normative.json \ - schemas/xbrl/utr/voltage-item-type.json \ - schemas/xbrl/utr/volume-item-type-normative.json \ - schemas/xbrl/utr/volume-item-type.json \ - schemas/xbrl/utr/volume-per-monetary-item-type-normative.json \ - schemas/xbrl/utr/volume-per-monetary-item-type.json \ - schemas/iso/country/2020/alpha-2.json \ - schemas/iso/country/2020/alpha-3.json \ - schemas/iso/country/2020/numeric.json \ - schemas/iso/language/2023/set-1.json \ - schemas/iso/language/2023/set-2-bibliographic.json \ - schemas/iso/language/2023/set-2-terminologic.json \ - schemas/iso/language/2023/set-3.json \ - schemas/iso/language/2023/set-5.json +include generated.mk # TODO: Make `jsonschema fmt` automatically detect test files all: common test - $(JSONSCHEMA) fmt schemas meta --verbose - $(JSONSCHEMA) fmt test --verbose --default-dialect "https://json-schema.org/draft/2020-12/schema" + $(JSONSCHEMA) fmt schemas meta + $(JSONSCHEMA) fmt test --default-dialect "https://json-schema.org/draft/2020-12/schema" .PHONY: common common: $(GENERATED) @@ -121,76 +44,6 @@ lint: common test: $(JSONSCHEMA) test ./test -build/iso/currency/list-%.json: \ - scripts/xml2json.py \ - vendor/data/iso/currency/list-%.xml - $(PYTHON) $< $(word 2,$^) $@ -schemas/iso/currency/2015/historical/alpha-code.json: \ - build/iso/currency/list-three.json \ - templates/iso/currency/2015/historical/alpha-code.jq - $(MKDIRP) $(dir $@) - $(JQ) --from-file $(word 2,$^) $< > $@ - $(JSONSCHEMA) fmt $@ -schemas/iso/currency/2015/historical/alpha-currency.json: \ - build/iso/currency/list-three.json \ - templates/iso/currency/2015/historical/alpha-currency.jq - $(MKDIRP) $(dir $@) - $(JQ) --from-file $(word 2,$^) $< > $@ - $(JSONSCHEMA) fmt $@ -schemas/iso/currency/2015/historical/numeric-code.json: \ - build/iso/currency/list-three.json \ - templates/iso/currency/2015/historical/numeric-code.jq - $(MKDIRP) $(dir $@) - $(JQ) --from-file $(word 2,$^) $< > $@ - $(JSONSCHEMA) fmt $@ -schemas/iso/currency/2015/historical/numeric-currency.json: \ - build/iso/currency/list-three.json \ - templates/iso/currency/2015/historical/numeric-currency.jq - $(MKDIRP) $(dir $@) - $(JQ) --from-file $(word 2,$^) $< > $@ - $(JSONSCHEMA) fmt $@ -schemas/iso/currency/2015/%.json: \ - build/iso/currency/list-one.json \ - templates/iso/currency/2015/%.jq - $(MKDIRP) $(dir $@) - $(JQ) --from-file $(word 2,$^) $< > $@ - $(JSONSCHEMA) fmt $@ - -build/xbrl/utr/%.json: scripts/xml2json.py vendor/data/xbrl/utr/%.xml - $(PYTHON) $< $(word 2,$^) $@ -schemas/xbrl/utr/%.json: build/xbrl/utr/utr.json templates/xbrl/utr/%.jq - $(MKDIRP) $(dir $@) - $(JQ) --from-file $(word 2,$^) $< > $@ - $(JSONSCHEMA) fmt $@ - -schemas/iso/country/2020/%.json: \ - vendor/iso3166/all/all.json \ - templates/iso/country/2020/%.jq - $(MKDIRP) $(dir $@) - $(JQ) --from-file $(word 2,$^) $< > $@ - $(JSONSCHEMA) fmt $@ - -build/iso/language/iso-639-2.json: \ - vendor/data/iso/language/ISO-639-2_utf-8.txt \ - scripts/csv2json.py - $(PYTHON) $(word 2,$^) --delimiter '|' --encoding utf-8-sig --no-header \ - --field-names "part2b,part2t,part1,name,name_french" $< $@ -build/iso/language/iso-639-3.json: \ - vendor/data/iso/language/iso-639-3_Code_Tables/iso-639-3_Code_Tables_20251015/iso-639-3.tab \ - scripts/csv2json.py - $(PYTHON) $(word 2,$^) --tab $< $@ -build/iso/language/enriched.json: \ - build/iso/language/iso-639-2.json \ - build/iso/language/iso-639-3.json \ - scripts/iso-language-enrich.jq - $(JQ) --slurpfile iso2 $< --slurpfile iso3 $(word 2,$^) -n -f $(word 3,$^) > $@ -schemas/iso/language/2023/%.json: \ - build/iso/language/enriched.json \ - templates/iso/language/2023/%.jq - $(MKDIRP) $(dir $@) - $(JQ) --from-file $(word 2,$^) $< > $@ - $(JSONSCHEMA) fmt $@ - # TODO: Add a `jsonschema pkg` command instead .PHONY: dist dist: diff --git a/generated.mk b/generated.mk new file mode 100644 index 00000000..48ce64e6 --- /dev/null +++ b/generated.mk @@ -0,0 +1,114 @@ +PYTHON ?= python3 +JQ ?= jq + +define MAKE_SCHEMA +schemas/$1.json: templates/schemas/$1.jq $2.json + $(MKDIRP) $$(dir $$@) + $(JQ) --from-file $$< $$(word 2,$$^) > $$@ + $(JSONSCHEMA) fmt $$@ +GENERATED += schemas/$1.json +endef + +build/iso/currency/list-%.json: \ + scripts/xml2json.py \ + vendor/data/iso/currency/list-%.xml + $(PYTHON) $< $(word 2,$^) $@ + +$(eval $(call MAKE_SCHEMA,iso/currency/2015/historical/alpha-code,build/iso/currency/list-three)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/historical/alpha-currency,build/iso/currency/list-three)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/historical/numeric-code,build/iso/currency/list-three)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/historical/numeric-currency,build/iso/currency/list-three)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/alpha-code,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/alpha-currency,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/alpha-fund,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/alpha-precious-metal,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/alpha-test,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/alpha-unknown,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/numeric-code-additional,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/numeric-code,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/numeric-currency,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/numeric-fund,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/numeric-precious-metal,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/numeric-test,build/iso/currency/list-one)) +$(eval $(call MAKE_SCHEMA,iso/currency/2015/numeric-unknown,build/iso/currency/list-one)) + +build/xbrl/utr/%.json: scripts/xml2json.py vendor/data/xbrl/utr/%.xml + $(PYTHON) $< $(word 2,$^) $@ + +$(eval $(call MAKE_SCHEMA,xbrl/utr/area-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/area-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/duration-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/duration-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/electric-charge-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/electric-charge-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/electric-current-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/electric-current-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/energy-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/energy-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/energy-per-monetary-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/energy-per-monetary-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/flow-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/flow-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/force-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/force-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/frequency-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/frequency-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/ghg-emissions-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/ghg-emissions-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/ghg-emissions-per-monetary-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/ghg-emissions-per-monetary-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/length-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/length-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/mass-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/mass-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/memory-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/memory-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/monetary-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/monetary-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/per-share-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/per-share-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/per-unit-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/per-unit-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/plane-angle-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/plane-angle-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/power-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/power-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/pressure-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/pressure-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/pure-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/pure-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/shares-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/shares-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/temperature-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/temperature-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/voltage-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/voltage-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/volume-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/volume-item-type,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/volume-per-monetary-item-type-normative,build/xbrl/utr/utr)) +$(eval $(call MAKE_SCHEMA,xbrl/utr/volume-per-monetary-item-type,build/xbrl/utr/utr)) + +$(eval $(call MAKE_SCHEMA,iso/country/2020/alpha-2,vendor/iso3166/all/all)) +$(eval $(call MAKE_SCHEMA,iso/country/2020/alpha-3,vendor/iso3166/all/all)) +$(eval $(call MAKE_SCHEMA,iso/country/2020/numeric,vendor/iso3166/all/all)) + +build/iso/language/iso-639-2.json: \ + vendor/data/iso/language/ISO-639-2_utf-8.txt \ + scripts/csv2json.py + $(PYTHON) $(word 2,$^) --delimiter '|' --encoding utf-8-sig --no-header \ + --field-names "part2b,part2t,part1,name,name_french" $< $@ +build/iso/language/iso-639-3.json: \ + vendor/data/iso/language/iso-639-3_Code_Tables/iso-639-3_Code_Tables_20251015/iso-639-3.tab \ + scripts/csv2json.py + $(PYTHON) $(word 2,$^) --tab $< $@ +build/iso/language/%.json: \ + build/iso/language/iso-639-2.json \ + build/iso/language/iso-639-3.json \ + templates/build/iso/language/%.jq + $(JQ) --slurpfile iso2 $< --slurpfile iso3 $(word 2,$^) -n -f $(word 3,$^) > $@ + +$(eval $(call MAKE_SCHEMA,iso/language/2023/set-1,build/iso/language/enriched)) +$(eval $(call MAKE_SCHEMA,iso/language/2023/set-2-bibliographic,build/iso/language/enriched)) +$(eval $(call MAKE_SCHEMA,iso/language/2023/set-2-terminologic,build/iso/language/enriched)) +$(eval $(call MAKE_SCHEMA,iso/language/2023/set-3,build/iso/language/enriched)) +$(eval $(call MAKE_SCHEMA,iso/language/2023/set-5,build/iso/language/enriched)) diff --git a/scripts/quality-templates-xbrl-utr-mirror.sh b/scripts/quality-templates-xbrl-utr-mirror.sh index 4ffdad5c..7f2482e0 100755 --- a/scripts/quality-templates-xbrl-utr-mirror.sh +++ b/scripts/quality-templates-xbrl-utr-mirror.sh @@ -4,7 +4,7 @@ set -o errexit set -o nounset UTR_DATA="$(pwd)/build/xbrl/utr/utr.json" -TEMPLATES_DIR="$(pwd)/templates/xbrl/utr" +TEMPLATES_DIR="$(pwd)/templates/schemas/xbrl/utr" EXIT_CODE=0 # Create temporary directory diff --git a/scripts/iso-language-enrich.jq b/templates/build/iso/language/enriched.jq similarity index 100% rename from scripts/iso-language-enrich.jq rename to templates/build/iso/language/enriched.jq diff --git a/templates/iso/country/2020/alpha-2.jq b/templates/schemas/iso/country/2020/alpha-2.jq similarity index 100% rename from templates/iso/country/2020/alpha-2.jq rename to templates/schemas/iso/country/2020/alpha-2.jq diff --git a/templates/iso/country/2020/alpha-3.jq b/templates/schemas/iso/country/2020/alpha-3.jq similarity index 100% rename from templates/iso/country/2020/alpha-3.jq rename to templates/schemas/iso/country/2020/alpha-3.jq diff --git a/templates/iso/country/2020/numeric.jq b/templates/schemas/iso/country/2020/numeric.jq similarity index 100% rename from templates/iso/country/2020/numeric.jq rename to templates/schemas/iso/country/2020/numeric.jq diff --git a/templates/iso/currency/2015/alpha-code.jq b/templates/schemas/iso/currency/2015/alpha-code.jq similarity index 100% rename from templates/iso/currency/2015/alpha-code.jq rename to templates/schemas/iso/currency/2015/alpha-code.jq diff --git a/templates/iso/currency/2015/alpha-currency.jq b/templates/schemas/iso/currency/2015/alpha-currency.jq similarity index 100% rename from templates/iso/currency/2015/alpha-currency.jq rename to templates/schemas/iso/currency/2015/alpha-currency.jq diff --git a/templates/iso/currency/2015/alpha-fund.jq b/templates/schemas/iso/currency/2015/alpha-fund.jq similarity index 100% rename from templates/iso/currency/2015/alpha-fund.jq rename to templates/schemas/iso/currency/2015/alpha-fund.jq diff --git a/templates/iso/currency/2015/alpha-precious-metal.jq b/templates/schemas/iso/currency/2015/alpha-precious-metal.jq similarity index 100% rename from templates/iso/currency/2015/alpha-precious-metal.jq rename to templates/schemas/iso/currency/2015/alpha-precious-metal.jq diff --git a/templates/iso/currency/2015/alpha-test.jq b/templates/schemas/iso/currency/2015/alpha-test.jq similarity index 100% rename from templates/iso/currency/2015/alpha-test.jq rename to templates/schemas/iso/currency/2015/alpha-test.jq diff --git a/templates/iso/currency/2015/alpha-unknown.jq b/templates/schemas/iso/currency/2015/alpha-unknown.jq similarity index 100% rename from templates/iso/currency/2015/alpha-unknown.jq rename to templates/schemas/iso/currency/2015/alpha-unknown.jq diff --git a/templates/iso/currency/2015/historical/alpha-code.jq b/templates/schemas/iso/currency/2015/historical/alpha-code.jq similarity index 100% rename from templates/iso/currency/2015/historical/alpha-code.jq rename to templates/schemas/iso/currency/2015/historical/alpha-code.jq diff --git a/templates/iso/currency/2015/historical/alpha-currency.jq b/templates/schemas/iso/currency/2015/historical/alpha-currency.jq similarity index 100% rename from templates/iso/currency/2015/historical/alpha-currency.jq rename to templates/schemas/iso/currency/2015/historical/alpha-currency.jq diff --git a/templates/iso/currency/2015/historical/numeric-code.jq b/templates/schemas/iso/currency/2015/historical/numeric-code.jq similarity index 100% rename from templates/iso/currency/2015/historical/numeric-code.jq rename to templates/schemas/iso/currency/2015/historical/numeric-code.jq diff --git a/templates/iso/currency/2015/historical/numeric-currency.jq b/templates/schemas/iso/currency/2015/historical/numeric-currency.jq similarity index 100% rename from templates/iso/currency/2015/historical/numeric-currency.jq rename to templates/schemas/iso/currency/2015/historical/numeric-currency.jq diff --git a/templates/iso/currency/2015/numeric-code-additional.jq b/templates/schemas/iso/currency/2015/numeric-code-additional.jq similarity index 100% rename from templates/iso/currency/2015/numeric-code-additional.jq rename to templates/schemas/iso/currency/2015/numeric-code-additional.jq diff --git a/templates/iso/currency/2015/numeric-code.jq b/templates/schemas/iso/currency/2015/numeric-code.jq similarity index 100% rename from templates/iso/currency/2015/numeric-code.jq rename to templates/schemas/iso/currency/2015/numeric-code.jq diff --git a/templates/iso/currency/2015/numeric-currency.jq b/templates/schemas/iso/currency/2015/numeric-currency.jq similarity index 100% rename from templates/iso/currency/2015/numeric-currency.jq rename to templates/schemas/iso/currency/2015/numeric-currency.jq diff --git a/templates/iso/currency/2015/numeric-fund.jq b/templates/schemas/iso/currency/2015/numeric-fund.jq similarity index 100% rename from templates/iso/currency/2015/numeric-fund.jq rename to templates/schemas/iso/currency/2015/numeric-fund.jq diff --git a/templates/iso/currency/2015/numeric-precious-metal.jq b/templates/schemas/iso/currency/2015/numeric-precious-metal.jq similarity index 100% rename from templates/iso/currency/2015/numeric-precious-metal.jq rename to templates/schemas/iso/currency/2015/numeric-precious-metal.jq diff --git a/templates/iso/currency/2015/numeric-test.jq b/templates/schemas/iso/currency/2015/numeric-test.jq similarity index 100% rename from templates/iso/currency/2015/numeric-test.jq rename to templates/schemas/iso/currency/2015/numeric-test.jq diff --git a/templates/iso/currency/2015/numeric-unknown.jq b/templates/schemas/iso/currency/2015/numeric-unknown.jq similarity index 100% rename from templates/iso/currency/2015/numeric-unknown.jq rename to templates/schemas/iso/currency/2015/numeric-unknown.jq diff --git a/templates/iso/language/2023/set-1.jq b/templates/schemas/iso/language/2023/set-1.jq similarity index 100% rename from templates/iso/language/2023/set-1.jq rename to templates/schemas/iso/language/2023/set-1.jq diff --git a/templates/iso/language/2023/set-2-bibliographic.jq b/templates/schemas/iso/language/2023/set-2-bibliographic.jq similarity index 100% rename from templates/iso/language/2023/set-2-bibliographic.jq rename to templates/schemas/iso/language/2023/set-2-bibliographic.jq diff --git a/templates/iso/language/2023/set-2-terminologic.jq b/templates/schemas/iso/language/2023/set-2-terminologic.jq similarity index 100% rename from templates/iso/language/2023/set-2-terminologic.jq rename to templates/schemas/iso/language/2023/set-2-terminologic.jq diff --git a/templates/iso/language/2023/set-3.jq b/templates/schemas/iso/language/2023/set-3.jq similarity index 100% rename from templates/iso/language/2023/set-3.jq rename to templates/schemas/iso/language/2023/set-3.jq diff --git a/templates/iso/language/2023/set-5.jq b/templates/schemas/iso/language/2023/set-5.jq similarity index 100% rename from templates/iso/language/2023/set-5.jq rename to templates/schemas/iso/language/2023/set-5.jq diff --git a/templates/xbrl/utr/area-item-type-normative.jq b/templates/schemas/xbrl/utr/area-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/area-item-type-normative.jq rename to templates/schemas/xbrl/utr/area-item-type-normative.jq diff --git a/templates/xbrl/utr/area-item-type.jq b/templates/schemas/xbrl/utr/area-item-type.jq similarity index 100% rename from templates/xbrl/utr/area-item-type.jq rename to templates/schemas/xbrl/utr/area-item-type.jq diff --git a/templates/xbrl/utr/duration-item-type-normative.jq b/templates/schemas/xbrl/utr/duration-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/duration-item-type-normative.jq rename to templates/schemas/xbrl/utr/duration-item-type-normative.jq diff --git a/templates/xbrl/utr/duration-item-type.jq b/templates/schemas/xbrl/utr/duration-item-type.jq similarity index 100% rename from templates/xbrl/utr/duration-item-type.jq rename to templates/schemas/xbrl/utr/duration-item-type.jq diff --git a/templates/xbrl/utr/electric-charge-item-type-normative.jq b/templates/schemas/xbrl/utr/electric-charge-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/electric-charge-item-type-normative.jq rename to templates/schemas/xbrl/utr/electric-charge-item-type-normative.jq diff --git a/templates/xbrl/utr/electric-charge-item-type.jq b/templates/schemas/xbrl/utr/electric-charge-item-type.jq similarity index 100% rename from templates/xbrl/utr/electric-charge-item-type.jq rename to templates/schemas/xbrl/utr/electric-charge-item-type.jq diff --git a/templates/xbrl/utr/electric-current-item-type-normative.jq b/templates/schemas/xbrl/utr/electric-current-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/electric-current-item-type-normative.jq rename to templates/schemas/xbrl/utr/electric-current-item-type-normative.jq diff --git a/templates/xbrl/utr/electric-current-item-type.jq b/templates/schemas/xbrl/utr/electric-current-item-type.jq similarity index 100% rename from templates/xbrl/utr/electric-current-item-type.jq rename to templates/schemas/xbrl/utr/electric-current-item-type.jq diff --git a/templates/xbrl/utr/energy-item-type-normative.jq b/templates/schemas/xbrl/utr/energy-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/energy-item-type-normative.jq rename to templates/schemas/xbrl/utr/energy-item-type-normative.jq diff --git a/templates/xbrl/utr/energy-item-type.jq b/templates/schemas/xbrl/utr/energy-item-type.jq similarity index 100% rename from templates/xbrl/utr/energy-item-type.jq rename to templates/schemas/xbrl/utr/energy-item-type.jq diff --git a/templates/xbrl/utr/energy-per-monetary-item-type-normative.jq b/templates/schemas/xbrl/utr/energy-per-monetary-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/energy-per-monetary-item-type-normative.jq rename to templates/schemas/xbrl/utr/energy-per-monetary-item-type-normative.jq diff --git a/templates/xbrl/utr/energy-per-monetary-item-type.jq b/templates/schemas/xbrl/utr/energy-per-monetary-item-type.jq similarity index 100% rename from templates/xbrl/utr/energy-per-monetary-item-type.jq rename to templates/schemas/xbrl/utr/energy-per-monetary-item-type.jq diff --git a/templates/xbrl/utr/flow-item-type-normative.jq b/templates/schemas/xbrl/utr/flow-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/flow-item-type-normative.jq rename to templates/schemas/xbrl/utr/flow-item-type-normative.jq diff --git a/templates/xbrl/utr/flow-item-type.jq b/templates/schemas/xbrl/utr/flow-item-type.jq similarity index 100% rename from templates/xbrl/utr/flow-item-type.jq rename to templates/schemas/xbrl/utr/flow-item-type.jq diff --git a/templates/xbrl/utr/force-item-type-normative.jq b/templates/schemas/xbrl/utr/force-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/force-item-type-normative.jq rename to templates/schemas/xbrl/utr/force-item-type-normative.jq diff --git a/templates/xbrl/utr/force-item-type.jq b/templates/schemas/xbrl/utr/force-item-type.jq similarity index 100% rename from templates/xbrl/utr/force-item-type.jq rename to templates/schemas/xbrl/utr/force-item-type.jq diff --git a/templates/xbrl/utr/frequency-item-type-normative.jq b/templates/schemas/xbrl/utr/frequency-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/frequency-item-type-normative.jq rename to templates/schemas/xbrl/utr/frequency-item-type-normative.jq diff --git a/templates/xbrl/utr/frequency-item-type.jq b/templates/schemas/xbrl/utr/frequency-item-type.jq similarity index 100% rename from templates/xbrl/utr/frequency-item-type.jq rename to templates/schemas/xbrl/utr/frequency-item-type.jq diff --git a/templates/xbrl/utr/ghg-emissions-item-type-normative.jq b/templates/schemas/xbrl/utr/ghg-emissions-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/ghg-emissions-item-type-normative.jq rename to templates/schemas/xbrl/utr/ghg-emissions-item-type-normative.jq diff --git a/templates/xbrl/utr/ghg-emissions-item-type.jq b/templates/schemas/xbrl/utr/ghg-emissions-item-type.jq similarity index 100% rename from templates/xbrl/utr/ghg-emissions-item-type.jq rename to templates/schemas/xbrl/utr/ghg-emissions-item-type.jq diff --git a/templates/xbrl/utr/ghg-emissions-per-monetary-item-type-normative.jq b/templates/schemas/xbrl/utr/ghg-emissions-per-monetary-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/ghg-emissions-per-monetary-item-type-normative.jq rename to templates/schemas/xbrl/utr/ghg-emissions-per-monetary-item-type-normative.jq diff --git a/templates/xbrl/utr/ghg-emissions-per-monetary-item-type.jq b/templates/schemas/xbrl/utr/ghg-emissions-per-monetary-item-type.jq similarity index 100% rename from templates/xbrl/utr/ghg-emissions-per-monetary-item-type.jq rename to templates/schemas/xbrl/utr/ghg-emissions-per-monetary-item-type.jq diff --git a/templates/xbrl/utr/length-item-type-normative.jq b/templates/schemas/xbrl/utr/length-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/length-item-type-normative.jq rename to templates/schemas/xbrl/utr/length-item-type-normative.jq diff --git a/templates/xbrl/utr/length-item-type.jq b/templates/schemas/xbrl/utr/length-item-type.jq similarity index 100% rename from templates/xbrl/utr/length-item-type.jq rename to templates/schemas/xbrl/utr/length-item-type.jq diff --git a/templates/xbrl/utr/mass-item-type-normative.jq b/templates/schemas/xbrl/utr/mass-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/mass-item-type-normative.jq rename to templates/schemas/xbrl/utr/mass-item-type-normative.jq diff --git a/templates/xbrl/utr/mass-item-type.jq b/templates/schemas/xbrl/utr/mass-item-type.jq similarity index 100% rename from templates/xbrl/utr/mass-item-type.jq rename to templates/schemas/xbrl/utr/mass-item-type.jq diff --git a/templates/xbrl/utr/memory-item-type-normative.jq b/templates/schemas/xbrl/utr/memory-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/memory-item-type-normative.jq rename to templates/schemas/xbrl/utr/memory-item-type-normative.jq diff --git a/templates/xbrl/utr/memory-item-type.jq b/templates/schemas/xbrl/utr/memory-item-type.jq similarity index 100% rename from templates/xbrl/utr/memory-item-type.jq rename to templates/schemas/xbrl/utr/memory-item-type.jq diff --git a/templates/xbrl/utr/monetary-item-type-normative.jq b/templates/schemas/xbrl/utr/monetary-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/monetary-item-type-normative.jq rename to templates/schemas/xbrl/utr/monetary-item-type-normative.jq diff --git a/templates/xbrl/utr/monetary-item-type.jq b/templates/schemas/xbrl/utr/monetary-item-type.jq similarity index 100% rename from templates/xbrl/utr/monetary-item-type.jq rename to templates/schemas/xbrl/utr/monetary-item-type.jq diff --git a/templates/xbrl/utr/per-share-item-type-normative.jq b/templates/schemas/xbrl/utr/per-share-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/per-share-item-type-normative.jq rename to templates/schemas/xbrl/utr/per-share-item-type-normative.jq diff --git a/templates/xbrl/utr/per-share-item-type.jq b/templates/schemas/xbrl/utr/per-share-item-type.jq similarity index 100% rename from templates/xbrl/utr/per-share-item-type.jq rename to templates/schemas/xbrl/utr/per-share-item-type.jq diff --git a/templates/xbrl/utr/per-unit-item-type-normative.jq b/templates/schemas/xbrl/utr/per-unit-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/per-unit-item-type-normative.jq rename to templates/schemas/xbrl/utr/per-unit-item-type-normative.jq diff --git a/templates/xbrl/utr/per-unit-item-type.jq b/templates/schemas/xbrl/utr/per-unit-item-type.jq similarity index 100% rename from templates/xbrl/utr/per-unit-item-type.jq rename to templates/schemas/xbrl/utr/per-unit-item-type.jq diff --git a/templates/xbrl/utr/plane-angle-item-type-normative.jq b/templates/schemas/xbrl/utr/plane-angle-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/plane-angle-item-type-normative.jq rename to templates/schemas/xbrl/utr/plane-angle-item-type-normative.jq diff --git a/templates/xbrl/utr/plane-angle-item-type.jq b/templates/schemas/xbrl/utr/plane-angle-item-type.jq similarity index 100% rename from templates/xbrl/utr/plane-angle-item-type.jq rename to templates/schemas/xbrl/utr/plane-angle-item-type.jq diff --git a/templates/xbrl/utr/power-item-type-normative.jq b/templates/schemas/xbrl/utr/power-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/power-item-type-normative.jq rename to templates/schemas/xbrl/utr/power-item-type-normative.jq diff --git a/templates/xbrl/utr/power-item-type.jq b/templates/schemas/xbrl/utr/power-item-type.jq similarity index 100% rename from templates/xbrl/utr/power-item-type.jq rename to templates/schemas/xbrl/utr/power-item-type.jq diff --git a/templates/xbrl/utr/pressure-item-type-normative.jq b/templates/schemas/xbrl/utr/pressure-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/pressure-item-type-normative.jq rename to templates/schemas/xbrl/utr/pressure-item-type-normative.jq diff --git a/templates/xbrl/utr/pressure-item-type.jq b/templates/schemas/xbrl/utr/pressure-item-type.jq similarity index 100% rename from templates/xbrl/utr/pressure-item-type.jq rename to templates/schemas/xbrl/utr/pressure-item-type.jq diff --git a/templates/xbrl/utr/pure-item-type-normative.jq b/templates/schemas/xbrl/utr/pure-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/pure-item-type-normative.jq rename to templates/schemas/xbrl/utr/pure-item-type-normative.jq diff --git a/templates/xbrl/utr/pure-item-type.jq b/templates/schemas/xbrl/utr/pure-item-type.jq similarity index 100% rename from templates/xbrl/utr/pure-item-type.jq rename to templates/schemas/xbrl/utr/pure-item-type.jq diff --git a/templates/xbrl/utr/shares-item-type-normative.jq b/templates/schemas/xbrl/utr/shares-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/shares-item-type-normative.jq rename to templates/schemas/xbrl/utr/shares-item-type-normative.jq diff --git a/templates/xbrl/utr/shares-item-type.jq b/templates/schemas/xbrl/utr/shares-item-type.jq similarity index 100% rename from templates/xbrl/utr/shares-item-type.jq rename to templates/schemas/xbrl/utr/shares-item-type.jq diff --git a/templates/xbrl/utr/temperature-item-type-normative.jq b/templates/schemas/xbrl/utr/temperature-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/temperature-item-type-normative.jq rename to templates/schemas/xbrl/utr/temperature-item-type-normative.jq diff --git a/templates/xbrl/utr/temperature-item-type.jq b/templates/schemas/xbrl/utr/temperature-item-type.jq similarity index 100% rename from templates/xbrl/utr/temperature-item-type.jq rename to templates/schemas/xbrl/utr/temperature-item-type.jq diff --git a/templates/xbrl/utr/voltage-item-type-normative.jq b/templates/schemas/xbrl/utr/voltage-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/voltage-item-type-normative.jq rename to templates/schemas/xbrl/utr/voltage-item-type-normative.jq diff --git a/templates/xbrl/utr/voltage-item-type.jq b/templates/schemas/xbrl/utr/voltage-item-type.jq similarity index 100% rename from templates/xbrl/utr/voltage-item-type.jq rename to templates/schemas/xbrl/utr/voltage-item-type.jq diff --git a/templates/xbrl/utr/volume-item-type-normative.jq b/templates/schemas/xbrl/utr/volume-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/volume-item-type-normative.jq rename to templates/schemas/xbrl/utr/volume-item-type-normative.jq diff --git a/templates/xbrl/utr/volume-item-type.jq b/templates/schemas/xbrl/utr/volume-item-type.jq similarity index 100% rename from templates/xbrl/utr/volume-item-type.jq rename to templates/schemas/xbrl/utr/volume-item-type.jq diff --git a/templates/xbrl/utr/volume-per-monetary-item-type-normative.jq b/templates/schemas/xbrl/utr/volume-per-monetary-item-type-normative.jq similarity index 100% rename from templates/xbrl/utr/volume-per-monetary-item-type-normative.jq rename to templates/schemas/xbrl/utr/volume-per-monetary-item-type-normative.jq diff --git a/templates/xbrl/utr/volume-per-monetary-item-type.jq b/templates/schemas/xbrl/utr/volume-per-monetary-item-type.jq similarity index 100% rename from templates/xbrl/utr/volume-per-monetary-item-type.jq rename to templates/schemas/xbrl/utr/volume-per-monetary-item-type.jq