Skip to main content

IWXXM XSD + Schematron validation engine (F2)

Project description

iwxxm-validate

IWXXM XSD + Schematron validation engine (F2 / F13). MIT licensed.

CLI (optional / E10-39)

iwxxm-validate path/to/report.xml --version 2023-1 --profile annex3
iwxxm-validate path/to/report.xml --json

Exit 0 when report.ok; 1 on validation or I/O errors.

Usage

from iwxxm_validate import validate, validate_iwxxm

# lxml path (parity / no rustc)
report = validate(xml, iwxxm_version="2023-1", profile="annex3")

# F13 SDK — prefers Rust (xmloxide) when the extension is built; else lxml
report = validate_iwxxm(xml, iwxxm_version="2023-1", profile="annex3")
if not report.ok:
    for issue in report.issues:
        print(issue.code, issue.message)

Consumes pinned schemas from the runtime subset bundled in the wheel (E10-34 / E10-6): XSD + Schematron + RDF codelists + externalSchema + IWXXM-US. Modelling / translation documentation trees are not shipped. In the monorepo, paths fall back to vendor/schemas/* until you sync:

make sync-iwxxm-validate-schemas

See ADR-015 / ADR-016 / D-S008-T21-sch (xslt2 Schematron → SCHEMATRON_SKIPPED on the lxml path only). Native validate_iwxxm evaluates Schematron via xmloxide (D-S014-T33-crates / E10-46) and does not emit SCHEMATRON_SKIPPED.

Optional native extension (F13)

Default install is pure Python (hatch). The PyO3 crate under rust/ uses xmloxide 0.4.x for well-formed + XSD + native ISO Schematron:

make build-iwxxm-validate-native
# or: cd packages/iwxxm-validate && uv run maturin develop --manifest-path rust/Cargo.toml --uv
from iwxxm_validate import rust_available, validate_iwxxm

assert rust_available()
report = validate_iwxxm(xml, iwxxm_version="2023-1", levels=("schematron",))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iwxxm_validate-0.1.0-py3-none-any.whl (884.6 kB view details)

Uploaded Python 3

File details

Details for the file iwxxm_validate-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iwxxm_validate-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 884.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iwxxm_validate-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a616869cd69901004510098a1f83dff33b5d7db97a6fd9ab33e2424d38a79632
MD5 bc301fcf568102da8945699e1d1cace7
BLAKE2b-256 af3ce46fa9000034ef04b94e22384d9d1b6a805b00b19147a11c5b6feb6b1148

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page