iwxxm-validate 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- iwxxm_validate/__init__.py +21 -0
- iwxxm_validate/api.py +119 -0
- iwxxm_validate/cli.py +86 -0
- iwxxm_validate/codec.py +12 -0
- iwxxm_validate/models.py +61 -0
- iwxxm_validate/native.py +44 -0
- iwxxm_validate/paths.py +145 -0
- iwxxm_validate/schemas/LAST_SYNC.json +24 -0
- iwxxm_validate/schemas/MANIFEST.json +25 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/WAFSSigWxFC.xsd +250 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/airmet.xsd +307 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/common.xsd +506 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/gmliwxxm.xsd +795 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/iwxxm-collect.xsd +8 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/iwxxm.xsd +29 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/measures.xsd +69 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/metFeature.xsd +432 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/metarSpeci.xsd +1035 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-AerodromePresentOrForecastWeather.rdf +2059 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-AerodromeRecentWeather.rdf +174 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-AirWxPhenomena.rdf +170 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-AviationColourCode.rdf +93 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-CloudAmountReportedAtAerodrome.rdf +127 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-MeteorologicalFeature.rdf +265 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-SigConvectiveCloudType.rdf +63 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-SigWxPhenomena.rdf +132 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-SpaceWxLocation.rdf +93 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-SpaceWxPhenomena.rdf +100 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-49-2-WeatherCausingVisibilityReduction.rdf +177 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-11-030.rdf +780 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-20-008.rdf +580 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-20-012.rdf +1412 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-20-041.rdf +159 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-20-086.rdf +138 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-20-087.rdf +87 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-20-089.rdf +855 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-22-061.rdf +145 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/codes.wmo.int-common-nil.rdf +125 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/rule/iwxxm.sch +883 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/sigmet.xsd +447 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/spaceWxAdvisory.xsd +174 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/taf.xsd +304 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/tropicalCycloneAdvisory.xsd +233 -0
- iwxxm_validate/schemas/iwxxm/2023-1/IWXXM/volcanicAshAdvisory.xsd +377 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/WAFSSigWxFC.xsd +202 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/airmet.xsd +304 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/common.xsd +559 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/gmliwxxm.xsd +795 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/iwxxm-collect.xsd +8 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/iwxxm.xsd +30 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/metFeature.xsd +586 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/metarSpeci.xsd +874 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/qvaci.xsd +82 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-AerodromePresentOrForecastWeather.rdf +5250 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-AerodromeRecentWeather.rdf +362 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-AirWxPhenomena.rdf +239 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-AviationColourCode.rdf +99 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-CloudAmountReportedAtAerodrome.rdf +154 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-MeteorologicalFeature.rdf +263 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-SigConvectiveCloudType.rdf +50 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-SigWxPhenomena.rdf +245 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-SpaceWxLocation.rdf +114 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-SpaceWxPhenomena.rdf +101 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-49-2-WeatherCausingVisibilityReduction.rdf +251 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-11-030.rdf +360 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-20-008.rdf +265 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-20-012.rdf +647 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-20-041.rdf +205 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-bufr4-codeflag-0-22-061.rdf +176 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-common-nil.rdf +168 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-iwxxm-AviationColourCode.rdf +59 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-iwxxm-MeteorologicalFeature.rdf +243 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/codes.wmo.int-iwxxm-nil.rdf +108 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/rule/iwxxm.sch +866 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/sigmet.xsd +444 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/spaceWxAdvisory.xsd +260 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/taf.xsd +293 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/tropicalCycloneAdvisory.xsd +233 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/volcanicAshAdvisory.xsd +387 -0
- iwxxm_validate/schemas/iwxxm/2025-2/IWXXM/vona.xsd +213 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/README.txt +1 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1/AIXM_AbstractGML_ObjectTypes.xsd +239 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1/AIXM_DataTypes.xsd +8062 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1/AIXM_Features.xsd +11379 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1/AIXM_AbstractGML_ObjectTypes.xsd +236 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1/AIXM_DataTypes.xsd +8099 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1/AIXM_Features.xsd +11369 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1/message/AIXM_BasicMessage.xsd +56 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1a/AIXM_AbstractGML_ObjectTypes.xsd +240 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1a/AIXM_DataTypes.xsd +443 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1a/AIXM_Features.xsd +522 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1a/README.txt +17 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1a/message/AIXM_BasicMessage.xsd +60 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1b/AIXM_AbstractGML_ObjectTypes.xsd +240 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1b/AIXM_DataTypes.xsd +493 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1b/AIXM_Features.xsd +566 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1b/README.txt +18 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1.1_profiles/AIXM_WX/5.1.1b/message/AIXM_BasicMessage.xsd +60 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/AIXM_AbstractGML_ObjectTypes.xsd +239 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/AIXM_DataTypes.xsd +1404 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/AIXM_Features.xsd +719 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/SchematronConstraints.xml +71 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/basicTypes.xsd +262 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/coordinateOperations.xsd +519 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/coordinateReferenceSystems.xsd +367 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/coordinateSystems.xsd +291 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/coverage.xsd +287 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/datums.xsd +281 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/defaultStyle.xsd +447 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/deprecatedTypes.xsd +1128 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/dictionary.xsd +84 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/direction.xsd +78 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/dynamicFeature.xsd +1 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/feature.xsd +1 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/geometryAggregates.xsd +191 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/geometryBasic0d1d.xsd +1 -2
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/geometryBasic2d.xsd +118 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/geometryComplexes.xsd +89 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/geometryPrimitives.xsd +841 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/gml.xsd +15 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/gmlBase.xsd +179 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/grids.xsd +58 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/measures.xsd +63 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/observation.xsd +90 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/referenceSystems.xsd +64 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/temporal.xsd +263 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/temporalReferenceSystems.xsd +183 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/temporalTopology.xsd +113 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/topology.xsd +380 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/units.xsd +156 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19136_Schemas/valueObjects.xsd +199 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gco/basicTypes.xsd +429 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gco/gco.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gco/gcoBase.xsd +61 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/applicationSchema.xsd +42 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/citation.xsd +275 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/constraints.xsd +106 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/content.xsd +188 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/dataQuality.xsd +554 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/distribution.xsd +202 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/extent.xsd +205 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/freeText.xsd +122 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/gmd.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/identification.xsd +348 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/maintenance.xsd +86 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/metadataApplication.xsd +175 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/metadataEntity.xsd +70 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/metadataExtension.xsd +99 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/portrayalCatalogue.xsd +36 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/referenceSystem.xsd +100 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmd/spatialRepresentation.xsd +237 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmx/catalogues.xsd +112 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmx/codelistItem.xsd +168 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmx/crsItem.xsd +1030 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmx/extendedTypes.xsd +78 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmx/gmx.xsd +2 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmx/gmxUsage.xsd +127 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gmx/uomItem.xsd +162 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gsr/gsr.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gsr/spatialReferencing.xsd +24 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gss/geometry.xsd +35 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gss/gss.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gts/gts.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/gts/temporalObjects.xsd +34 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/resources/Codelist/ML_gmxCodelists.xml +819 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/resources/Codelist/gmxCodelists.xml +1858 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/resources/crs/ML_gmxCrs.xml +1 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/resources/crs/gmxCrs.xml +1 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/resources/example/fr-fr.xml +1 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/resources/uom/ML_gmxUom.xml +1 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/ISO_19139_Schemas/resources/uom/gmxUom.xml +1 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/README.txt +21 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/message/AIXM_BasicMessage.xsd +58 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/aero/aixm/5.1_profiles/AIXM_WX/5.1a/xlink/xlinks.xsd +122 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/org/w3c/1999/xlink.xsd +275 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/org/w3c/2001/xml.xsd +287 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/SchematronConstraints.xml +71 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/basicTypes.xsd +268 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/coordinateOperations.xsd +525 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/coordinateReferenceSystems.xsd +373 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/coordinateSystems.xsd +297 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/coverage.xsd +292 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/datums.xsd +287 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/defaultStyle.xsd +453 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/deprecatedTypes.xsd +1133 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/dictionary.xsd +90 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/direction.xsd +84 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/dynamicFeature.xsd +109 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/feature.xsd +94 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/geometryAggregates.xsd +197 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/geometryBasic0d1d.xsd +277 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/geometryBasic2d.xsd +124 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/geometryComplexes.xsd +95 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/geometryPrimitives.xsd +846 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/gml.xsd +20 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/gmlBase.xsd +185 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/gml_32_geometries.rdf +368 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/gml_3_2_1-ReadMe.txt +58 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/grids.xsd +64 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/measures.xsd +68 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/observation.xsd +95 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/referenceSystems.xsd +70 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/temporal.xsd +269 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/temporalReferenceSystems.xsd +189 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/temporalTopology.xsd +119 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/topology.xsd +386 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/units.xsd +162 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/gml/3.2.1/valueObjects.xsd +205 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/ReadMe.txt +26 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gco/ReadMe.txt +47 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gco/basicTypes.xsd +431 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gco/gco.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gco/gcoBase.xsd +63 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/ReadMe.txt +45 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/applicationSchema.xsd +43 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/citation.xsd +276 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/constraints.xsd +107 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/content.xsd +190 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/dataQuality.xsd +556 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/distribution.xsd +203 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/extent.xsd +206 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/freeText.xsd +123 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/gmd.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/identification.xsd +349 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/maintenance.xsd +87 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/metadataApplication.xsd +176 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/metadataEntity.xsd +71 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/metadataExtension.xsd +100 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/portrayalCatalogue.xsd +37 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/referenceSystem.xsd +101 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmd/spatialRepresentation.xsd +238 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmx/ReadMe.txt +47 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmx/catalogues.xsd +113 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmx/codelistItem.xsd +169 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmx/crsItem.xsd +1031 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmx/extendedTypes.xsd +76 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmx/gmx.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmx/gmxUsage.xsd +128 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gmx/uomItem.xsd +163 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gsr/ReadMe.txt +45 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gsr/gsr.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gsr/spatialReferencing.xsd +25 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gss/ReadMe.txt +44 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gss/geometry.xsd +36 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gss/gss.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gts/ReadMe.txt +44 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gts/gts.xsd +12 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/iso/19139/20070417/gts/temporalObjects.xsd +35 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/SWEArrayObservation.sch +47 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/SWEScalarObservation.sch +48 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/categoryObservation.sch +40 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/complexObservation.sch +48 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/countObservation.sch +38 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/geometryObservation.sch +42 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/measurement.sch +43 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/observation.xsd +432 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/result-DataArray.sch +4 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/result-DataRecord.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/result-SimpleComponent.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/result-boolean.sch +4 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/result-category.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/result-geometry.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/result-integer.sch +4 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/result-measure.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/result-temporal.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/resultTypeConsistent.sch +122 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/spatialObservation.sch +59 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/specializingObservationExample.xsd +92 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/temporalObservation.sch +44 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/om/2.0/truthObservation.sch +41 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sampling/2.0/samplingFeature.xsd +260 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/samplingCurve.sch +47 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/samplingPoint.sch +46 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/samplingSolid.sch +47 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/samplingSurface.sch +48 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/shape-curve.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/shape-point.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/shape-solid.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/shape-surface.sch +5 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/shapeTypeConsistent.sch +73 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/samplingSpatial/2.0/spatialSamplingFeature.xsd +157 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/advanced_encodings.sch +27 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/advanced_encodings.xsd +186 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/basic_types.xsd +147 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/block_components.sch +34 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/block_components.xsd +163 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/choice_components.sch +18 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/choice_components.xsd +56 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/record_components.sch +40 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/record_components.xsd +95 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/simple_components.sch +74 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/simple_components.xsd +536 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/simple_encodings.sch +30 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/simple_encodings.xsd +93 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.opengis.net/sweCommon/2.0/swe.xsd +14 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/collect/1.1/ReleaseNotes-COLLECT.txt +4 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/collect/1.1/collect.xsd +43 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/collect/1.1/rule/collect.sch +10 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/collect/1.2/ReleaseNotes-COLLECT.txt +16 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/collect/1.2/collect.xsd +56 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/collect/1.2/gmlcollect.xsd +430 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/collect/1.2/rule/collect.sch +16 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.0/ReleaseNotes-METCE.txt +56 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.0/metce.xsd +31 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.0/phenomena.xsd +121 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.0/procedure.xsd +232 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.0/rule/metce.sch +28 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.1/ReleaseNotes-METCE.txt +60 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.1/metce.xsd +31 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.1/phenomena.xsd +121 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.1/procedure.xsd +232 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.1/rule/metce.sch +28 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.2/ReleaseNotes-METCE.txt +73 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.2/gmlmetce.xsd +506 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.2/metce.xsd +20 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.2/phenomena.xsd +121 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.2/procedure.xsd +180 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/metce/1.2/rule/metce.sch +26 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.0/observable-property.xsd +500 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.0/opm.xsd +50 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.0/rule/opm.sch +39 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.1/ReleaseNotes-OPM.txt +77 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.1/observable-property.xsd +500 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.1/opm.xsd +50 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.1/rule/opm.sch +39 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.2/ReleaseNotes-OPM.txt +89 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.2/gmlopm.xsd +312 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.2/observable-property.xsd +420 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.2/opm.xsd +32 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/opm/1.2/rule/opm.sch +36 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.0/ReleaseNotes-SAF.txt +23 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.0/dataTypes.xsd +226 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.0/features.xsd +410 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.0/measures.xsd +41 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.0/rule/saf.sch +64 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.0/saf.xsd +30 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.1/ReleaseNotes-SAF.txt +27 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.1/dataTypes.xsd +226 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.1/features.xsd +410 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.1/measures.xsd +41 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.1/rule/saf.sch +64 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/1.1/saf.xsd +30 -0
- iwxxm_validate/schemas/iwxxm/externalSchema/schemas.wmo.int/saf/README +1 -0
- iwxxm_validate/schemas/iwxxm-us/3.0/README.txt +24 -0
- iwxxm_validate/schemas/iwxxm-us/3.0/airmet.xsd +172 -0
- iwxxm_validate/schemas/iwxxm-us/3.0/common.xsd +181 -0
- iwxxm_validate/schemas/iwxxm-us/3.0/metarSpeci.xsd +1065 -0
- iwxxm_validate/schemas/iwxxm-us/3.0/sigmet.xsd +120 -0
- iwxxm_validate/schemas/iwxxm-us/3.0/taf.xsd +210 -0
- iwxxm_validate/schemas/iwxxm-us/3.0/united-states-catalog.xml +11 -0
- iwxxm_validate/schematron.py +191 -0
- iwxxm_validate/validate_iwxxm.py +186 -0
- iwxxm_validate/xsd.py +154 -0
- iwxxm_validate-0.1.0.dist-info/METADATA +67 -0
- iwxxm_validate-0.1.0.dist-info/RECORD +357 -0
- iwxxm_validate-0.1.0.dist-info/WHEEL +4 -0
- iwxxm_validate-0.1.0.dist-info/entry_points.txt +2 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""IWXXM XSD + Schematron validation engine (F2 package)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from iwxxm_validate.api import validate
|
|
6
|
+
from iwxxm_validate.models import Issue, ValidationReport
|
|
7
|
+
from iwxxm_validate.native import clear_schema_caches, rust_available, rust_module
|
|
8
|
+
from iwxxm_validate.validate_iwxxm import validate_iwxxm
|
|
9
|
+
|
|
10
|
+
__version__ = "0.1.0"
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"Issue",
|
|
14
|
+
"ValidationReport",
|
|
15
|
+
"__version__",
|
|
16
|
+
"clear_schema_caches",
|
|
17
|
+
"rust_available",
|
|
18
|
+
"rust_module",
|
|
19
|
+
"validate",
|
|
20
|
+
"validate_iwxxm",
|
|
21
|
+
]
|
iwxxm_validate/api.py
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"""Public ``validate()`` entrypoint for IWXXM XSD + Schematron (F2)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Sequence
|
|
6
|
+
|
|
7
|
+
from iwxxm_validate.models import Issue, ValidationReport
|
|
8
|
+
from iwxxm_validate.paths import us_catalog_path
|
|
9
|
+
from iwxxm_validate.schematron import validate_schematron
|
|
10
|
+
from iwxxm_validate.xsd import validate_xsd
|
|
11
|
+
|
|
12
|
+
_DEFAULT_LEVELS: tuple[str, ...] = ("xsd", "schematron")
|
|
13
|
+
_VALID_PROFILES = frozenset({"annex3", "iwxxm_us"})
|
|
14
|
+
_VALID_LEVELS = frozenset({"xsd", "schematron"})
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def validate(
|
|
18
|
+
xml_content: str,
|
|
19
|
+
*,
|
|
20
|
+
iwxxm_version: str,
|
|
21
|
+
profile: str = "annex3",
|
|
22
|
+
levels: Sequence[str] | None = None,
|
|
23
|
+
) -> ValidationReport:
|
|
24
|
+
"""
|
|
25
|
+
Validate IWXXM XML against vendored XSD and/or Schematron.
|
|
26
|
+
|
|
27
|
+
Parameters
|
|
28
|
+
----------
|
|
29
|
+
xml_content :
|
|
30
|
+
IWXXM XML document.
|
|
31
|
+
iwxxm_version :
|
|
32
|
+
Release line (e.g. ``2023-1``).
|
|
33
|
+
profile :
|
|
34
|
+
``annex3`` (default) or ``iwxxm_us`` (requires vendored US catalog).
|
|
35
|
+
levels :
|
|
36
|
+
Subset of ``xsd`` / ``schematron``. Default runs both.
|
|
37
|
+
|
|
38
|
+
Returns
|
|
39
|
+
-------
|
|
40
|
+
ValidationReport
|
|
41
|
+
``ok`` is ``False`` when any error-severity issue is present.
|
|
42
|
+
XSLT2 Schematron yields non-blocking ``SCHEMATRON_SKIPPED`` (D-S008-T21-sch).
|
|
43
|
+
"""
|
|
44
|
+
if profile not in _VALID_PROFILES:
|
|
45
|
+
return ValidationReport(
|
|
46
|
+
ok=False,
|
|
47
|
+
iwxxm_version=iwxxm_version,
|
|
48
|
+
profile=profile,
|
|
49
|
+
issues=[
|
|
50
|
+
Issue(
|
|
51
|
+
severity="error",
|
|
52
|
+
code="INVALID_PROFILE",
|
|
53
|
+
message=f"Unknown profile {profile!r}; expected annex3|iwxxm_us",
|
|
54
|
+
layer="xsd",
|
|
55
|
+
)
|
|
56
|
+
],
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
selected = tuple(levels) if levels is not None else _DEFAULT_LEVELS
|
|
60
|
+
unknown = [level for level in selected if level not in _VALID_LEVELS]
|
|
61
|
+
if unknown:
|
|
62
|
+
return ValidationReport(
|
|
63
|
+
ok=False,
|
|
64
|
+
iwxxm_version=iwxxm_version,
|
|
65
|
+
profile=profile,
|
|
66
|
+
issues=[
|
|
67
|
+
Issue(
|
|
68
|
+
severity="error",
|
|
69
|
+
code="INVALID_LEVELS",
|
|
70
|
+
message=f"Unknown validation levels: {unknown}",
|
|
71
|
+
layer="xsd",
|
|
72
|
+
)
|
|
73
|
+
],
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
issues: list[Issue] = []
|
|
77
|
+
|
|
78
|
+
if profile == "iwxxm_us" and us_catalog_path() is None:
|
|
79
|
+
issues.append(
|
|
80
|
+
Issue(
|
|
81
|
+
severity="error",
|
|
82
|
+
code="US_CATALOG_NOT_FOUND",
|
|
83
|
+
message="profile=iwxxm_us but vendor iwxxm-us catalog is missing",
|
|
84
|
+
layer="xsd",
|
|
85
|
+
)
|
|
86
|
+
)
|
|
87
|
+
return ValidationReport(
|
|
88
|
+
ok=False,
|
|
89
|
+
iwxxm_version=iwxxm_version,
|
|
90
|
+
profile=profile,
|
|
91
|
+
issues=issues,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
if "xsd" in selected:
|
|
95
|
+
issues.extend(validate_xsd(xml_content, iwxxm_version))
|
|
96
|
+
# Malformed XML already reported — skip Schematron
|
|
97
|
+
if any(issue.code == "XML_SYNTAX_ERROR" for issue in issues):
|
|
98
|
+
return ValidationReport(
|
|
99
|
+
ok=False,
|
|
100
|
+
iwxxm_version=iwxxm_version,
|
|
101
|
+
profile=profile,
|
|
102
|
+
issues=issues,
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
if "schematron" in selected:
|
|
106
|
+
# Skip Schematron when XSD already failed hard on syntax
|
|
107
|
+
if not any(issue.code == "XML_SYNTAX_ERROR" for issue in issues):
|
|
108
|
+
issues.extend(validate_schematron(xml_content, iwxxm_version))
|
|
109
|
+
|
|
110
|
+
ok = not any(issue.severity == "error" for issue in issues)
|
|
111
|
+
return ValidationReport(
|
|
112
|
+
ok=ok,
|
|
113
|
+
iwxxm_version=iwxxm_version,
|
|
114
|
+
profile=profile,
|
|
115
|
+
issues=issues,
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
__all__ = ["validate"]
|
iwxxm_validate/cli.py
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"""Optional thin CLI for ``iwxxm-validate`` (E10-39 / T3.9)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import argparse
|
|
6
|
+
import sys
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing import Sequence
|
|
9
|
+
|
|
10
|
+
from iwxxm_validate.codec import json_encoder
|
|
11
|
+
from iwxxm_validate.validate_iwxxm import validate_iwxxm
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _build_parser() -> argparse.ArgumentParser:
|
|
15
|
+
parser = argparse.ArgumentParser(
|
|
16
|
+
prog="iwxxm-validate",
|
|
17
|
+
description="Validate IWXXM XML (XSD + Schematron via validate_iwxxm SDK).",
|
|
18
|
+
)
|
|
19
|
+
parser.add_argument(
|
|
20
|
+
"path",
|
|
21
|
+
type=Path,
|
|
22
|
+
help="Path to an IWXXM XML file",
|
|
23
|
+
)
|
|
24
|
+
parser.add_argument(
|
|
25
|
+
"--version",
|
|
26
|
+
dest="iwxxm_version",
|
|
27
|
+
default="2023-1",
|
|
28
|
+
help="IWXXM release line (default: 2023-1)",
|
|
29
|
+
)
|
|
30
|
+
parser.add_argument(
|
|
31
|
+
"--profile",
|
|
32
|
+
default="annex3",
|
|
33
|
+
choices=("annex3", "iwxxm_us"),
|
|
34
|
+
help="Schema profile (default: annex3)",
|
|
35
|
+
)
|
|
36
|
+
parser.add_argument(
|
|
37
|
+
"--json",
|
|
38
|
+
action="store_true",
|
|
39
|
+
help="Emit ValidationReport as JSON on stdout",
|
|
40
|
+
)
|
|
41
|
+
return parser
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def main(argv: Sequence[str] | None = None) -> int:
|
|
45
|
+
"""
|
|
46
|
+
Run ``iwxxm-validate`` CLI.
|
|
47
|
+
|
|
48
|
+
Parameters
|
|
49
|
+
----------
|
|
50
|
+
argv :
|
|
51
|
+
Argument vector (defaults to ``sys.argv[1:]``).
|
|
52
|
+
|
|
53
|
+
Returns
|
|
54
|
+
-------
|
|
55
|
+
int
|
|
56
|
+
``0`` when ``report.ok``; ``1`` on validation errors or I/O failure.
|
|
57
|
+
"""
|
|
58
|
+
parser = _build_parser()
|
|
59
|
+
args = parser.parse_args(list(argv) if argv is not None else None)
|
|
60
|
+
path: Path = args.path
|
|
61
|
+
try:
|
|
62
|
+
text = path.read_text(encoding="utf-8")
|
|
63
|
+
except OSError as exc:
|
|
64
|
+
print(f"error: cannot read {path}: {exc}", file=sys.stderr)
|
|
65
|
+
return 1
|
|
66
|
+
|
|
67
|
+
report = validate_iwxxm(
|
|
68
|
+
text,
|
|
69
|
+
iwxxm_version=args.iwxxm_version,
|
|
70
|
+
profile=args.profile,
|
|
71
|
+
)
|
|
72
|
+
if args.json:
|
|
73
|
+
sys.stdout.write(json_encoder.encode(report).decode("utf-8"))
|
|
74
|
+
sys.stdout.write("\n")
|
|
75
|
+
else:
|
|
76
|
+
status = "ok" if report.ok else "fail"
|
|
77
|
+
print(f"{status} version={report.iwxxm_version} profile={report.profile} issues={len(report.issues)}")
|
|
78
|
+
for issue in report.issues:
|
|
79
|
+
loc = f" @{issue.location}" if issue.location else ""
|
|
80
|
+
print(f" {issue.severity}:{issue.code}{loc} {issue.message}")
|
|
81
|
+
|
|
82
|
+
return 0 if report.ok else 1
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
if __name__ == "__main__":
|
|
86
|
+
raise SystemExit(main())
|
iwxxm_validate/codec.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"""Reusable msgspec JSON codec instances (ADR-016)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import msgspec
|
|
6
|
+
|
|
7
|
+
from iwxxm_validate.models import ValidationReport
|
|
8
|
+
|
|
9
|
+
json_encoder = msgspec.json.Encoder()
|
|
10
|
+
json_decoder = msgspec.json.Decoder(ValidationReport)
|
|
11
|
+
|
|
12
|
+
__all__ = ["json_decoder", "json_encoder"]
|
iwxxm_validate/models.py
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"""msgspec models for IWXXM validation reports (ADR-016)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import msgspec
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Issue(msgspec.Struct, frozen=True):
|
|
9
|
+
"""
|
|
10
|
+
Single validation finding.
|
|
11
|
+
|
|
12
|
+
Parameters
|
|
13
|
+
----------
|
|
14
|
+
severity :
|
|
15
|
+
``error``, ``warning``, or ``info``.
|
|
16
|
+
code :
|
|
17
|
+
Machine-readable issue code (e.g. ``XML_SYNTAX_ERROR``).
|
|
18
|
+
message :
|
|
19
|
+
Human-readable description.
|
|
20
|
+
layer :
|
|
21
|
+
Validation layer (``xsd``, ``schematron``, ``wellformed``).
|
|
22
|
+
location :
|
|
23
|
+
Optional document location hint.
|
|
24
|
+
start :
|
|
25
|
+
Optional inclusive character / document offset when known.
|
|
26
|
+
end :
|
|
27
|
+
Optional exclusive character / document offset when known.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
severity: str
|
|
31
|
+
code: str
|
|
32
|
+
message: str
|
|
33
|
+
layer: str
|
|
34
|
+
location: str | None = None
|
|
35
|
+
start: int | None = None
|
|
36
|
+
end: int | None = None
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class ValidationReport(msgspec.Struct, frozen=True):
|
|
40
|
+
"""
|
|
41
|
+
Aggregate result of ``validate()``.
|
|
42
|
+
|
|
43
|
+
Parameters
|
|
44
|
+
----------
|
|
45
|
+
ok :
|
|
46
|
+
``True`` when no blocking (error-severity) issues remain.
|
|
47
|
+
iwxxm_version :
|
|
48
|
+
Requested IWXXM release line.
|
|
49
|
+
profile :
|
|
50
|
+
``annex3`` or ``iwxxm_us``.
|
|
51
|
+
issues :
|
|
52
|
+
Ordered list of findings (may include non-blocking warnings).
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
ok: bool
|
|
56
|
+
iwxxm_version: str
|
|
57
|
+
profile: str
|
|
58
|
+
issues: list[Issue]
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
__all__ = ["Issue", "ValidationReport"]
|
iwxxm_validate/native.py
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Optional PyO3 extension loader (F13 / E10-36; mirrors tac2iwxxm ADR-017).
|
|
2
|
+
|
|
3
|
+
The ``iwxxm_validate._rust`` module is built by maturin. Pure-Python lxml paths keep
|
|
4
|
+
working when the extension is absent (local without rustc); CI rust job requires it.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def rust_available() -> bool:
|
|
13
|
+
"""Return True when the compiled ``iwxxm_validate._rust`` extension imports."""
|
|
14
|
+
try:
|
|
15
|
+
from iwxxm_validate import _rust # type: ignore[attr-defined]
|
|
16
|
+
except ImportError:
|
|
17
|
+
return False
|
|
18
|
+
return _rust is not None # pragma: no cover
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def clear_schema_caches() -> None:
|
|
22
|
+
"""Clear process-wide compiled XSD/Schematron caches (native only; no-op if absent)."""
|
|
23
|
+
mod = rust_module()
|
|
24
|
+
if mod is None:
|
|
25
|
+
return
|
|
26
|
+
clearer = getattr(mod, "clear_schema_caches", None)
|
|
27
|
+
if callable(clearer):
|
|
28
|
+
clearer()
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def rust_module() -> Any | None:
|
|
32
|
+
"""
|
|
33
|
+
Return the loaded ``_rust`` module, or ``None`` if unavailable.
|
|
34
|
+
|
|
35
|
+
Returns
|
|
36
|
+
-------
|
|
37
|
+
Any | None
|
|
38
|
+
Extension module or ``None``.
|
|
39
|
+
"""
|
|
40
|
+
try:
|
|
41
|
+
from iwxxm_validate import _rust # type: ignore[attr-defined]
|
|
42
|
+
except ImportError:
|
|
43
|
+
return None
|
|
44
|
+
return _rust # type: ignore[no-any-return] # pragma: no cover
|
iwxxm_validate/paths.py
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"""Resolve IWXXM / IWXXM-US schema paths (packaged subset or monorepo vendor).
|
|
2
|
+
|
|
3
|
+
Resolution order (E10-34 / E10-6):
|
|
4
|
+
|
|
5
|
+
1. ``IWXXM_VALIDATE_REPO_ROOT`` / ``IWXXM_SCHEMAS_ROOT`` environment overrides
|
|
6
|
+
2. Packaged runtime subset under ``iwxxm_validate/schemas/`` (wheel / after sync)
|
|
7
|
+
3. Monorepo ``vendor/schemas/*`` when developing inside this repository
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import os
|
|
13
|
+
from functools import lru_cache
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
|
|
16
|
+
_PACKAGE_DIR = Path(__file__).resolve().parent
|
|
17
|
+
_PACKAGE_SCHEMAS = _PACKAGE_DIR / "schemas"
|
|
18
|
+
_PACKAGE_ROOT = _PACKAGE_DIR.parents[1]
|
|
19
|
+
_DEFAULT_REPO_ROOT = _PACKAGE_ROOT.parents[1]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def packaged_schemas_root() -> Path | None:
|
|
23
|
+
"""
|
|
24
|
+
Return the packaged schema subset root when materialised.
|
|
25
|
+
|
|
26
|
+
The subset is present after ``make sync-iwxxm-validate-schemas`` or inside a
|
|
27
|
+
published wheel. ``MANIFEST.json`` alone does not count as materialised.
|
|
28
|
+
"""
|
|
29
|
+
iwxxm = _PACKAGE_SCHEMAS / "iwxxm"
|
|
30
|
+
if iwxxm.is_dir() and any(iwxxm.iterdir()):
|
|
31
|
+
# Require at least one version tree (not only empty placeholder).
|
|
32
|
+
if any((iwxxm / child).is_dir() for child in iwxxm.iterdir()):
|
|
33
|
+
return _PACKAGE_SCHEMAS
|
|
34
|
+
return None
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def repo_root() -> Path:
|
|
38
|
+
"""
|
|
39
|
+
Return the monorepo root containing ``vendor/schemas``.
|
|
40
|
+
|
|
41
|
+
Honours ``IWXXM_SCHEMAS_ROOT`` parent when set to ``…/vendor/schemas/iwxxm``.
|
|
42
|
+
"""
|
|
43
|
+
env = os.environ.get("IWXXM_VALIDATE_REPO_ROOT")
|
|
44
|
+
if env:
|
|
45
|
+
return Path(env).resolve()
|
|
46
|
+
schemas_root = os.environ.get("IWXXM_SCHEMAS_ROOT")
|
|
47
|
+
if schemas_root:
|
|
48
|
+
path = Path(schemas_root).resolve()
|
|
49
|
+
# …/vendor/schemas/iwxxm → repo root two parents up from iwxxm
|
|
50
|
+
if path.name == "iwxxm" and path.parent.name == "schemas":
|
|
51
|
+
return path.parent.parent.parent
|
|
52
|
+
return path
|
|
53
|
+
return _DEFAULT_REPO_ROOT
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def vendor_iwxxm_root() -> Path:
|
|
57
|
+
"""Return ``iwxxm`` schema root (packaged subset or ``vendor/schemas/iwxxm``)."""
|
|
58
|
+
packaged = packaged_schemas_root()
|
|
59
|
+
if packaged is not None:
|
|
60
|
+
return packaged / "iwxxm"
|
|
61
|
+
return repo_root() / "vendor" / "schemas" / "iwxxm"
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def vendor_iwxxm_us_root() -> Path:
|
|
65
|
+
"""Return ``iwxxm-us`` schema root (packaged subset or vendor pin)."""
|
|
66
|
+
packaged = packaged_schemas_root()
|
|
67
|
+
if packaged is not None:
|
|
68
|
+
return packaged / "iwxxm-us"
|
|
69
|
+
return repo_root() / "vendor" / "schemas" / "iwxxm-us"
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
@lru_cache(maxsize=32)
|
|
73
|
+
def version_dir(iwxxm_version: str) -> Path:
|
|
74
|
+
"""
|
|
75
|
+
Return the IWXXM version tree (contains ``IWXXM/``).
|
|
76
|
+
|
|
77
|
+
Parameters
|
|
78
|
+
----------
|
|
79
|
+
iwxxm_version :
|
|
80
|
+
Release line such as ``2023-1`` or ``2025-2``.
|
|
81
|
+
"""
|
|
82
|
+
path = vendor_iwxxm_root() / iwxxm_version
|
|
83
|
+
if not path.is_dir():
|
|
84
|
+
raise FileNotFoundError(f"IWXXM version directory not found: {path}")
|
|
85
|
+
return path
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def xsd_path(iwxxm_version: str) -> Path:
|
|
89
|
+
"""Return path to ``iwxxm.xsd`` for ``iwxxm_version``."""
|
|
90
|
+
path = version_dir(iwxxm_version) / "IWXXM" / "iwxxm.xsd"
|
|
91
|
+
if not path.is_file():
|
|
92
|
+
raise FileNotFoundError(f"XSD not found for {iwxxm_version}: {path}")
|
|
93
|
+
return path
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def schematron_path(iwxxm_version: str) -> Path:
|
|
97
|
+
"""Return path to ``rule/iwxxm.sch`` for ``iwxxm_version``."""
|
|
98
|
+
path = version_dir(iwxxm_version) / "IWXXM" / "rule" / "iwxxm.sch"
|
|
99
|
+
if not path.is_file():
|
|
100
|
+
raise FileNotFoundError(f"Schematron not found for {iwxxm_version}: {path}")
|
|
101
|
+
return path
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def codelists_dir(iwxxm_version: str) -> Path:
|
|
105
|
+
"""Return directory of bundled RDF codelists for Schematron ``document()``."""
|
|
106
|
+
path = version_dir(iwxxm_version) / "IWXXM" / "rule"
|
|
107
|
+
if not path.is_dir():
|
|
108
|
+
raise FileNotFoundError(f"Codelists directory not found for {iwxxm_version}: {path}")
|
|
109
|
+
return path
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def us_catalog_path() -> Path | None:
|
|
113
|
+
"""
|
|
114
|
+
Return IWXXM-US catalog path when present.
|
|
115
|
+
|
|
116
|
+
Prefers ``3.0/united-states-catalog.xml`` under the vendored / packaged pin.
|
|
117
|
+
"""
|
|
118
|
+
root = vendor_iwxxm_us_root()
|
|
119
|
+
candidates = [
|
|
120
|
+
root / "3.0" / "united-states-catalog.xml",
|
|
121
|
+
root / "united-states-catalog.xml",
|
|
122
|
+
]
|
|
123
|
+
for candidate in candidates:
|
|
124
|
+
if candidate.is_file():
|
|
125
|
+
return candidate
|
|
126
|
+
return None
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def clear_path_caches() -> None:
|
|
130
|
+
"""Clear cached version directory lookups (tests / after schema sync)."""
|
|
131
|
+
version_dir.cache_clear()
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
__all__ = [
|
|
135
|
+
"clear_path_caches",
|
|
136
|
+
"codelists_dir",
|
|
137
|
+
"packaged_schemas_root",
|
|
138
|
+
"repo_root",
|
|
139
|
+
"schematron_path",
|
|
140
|
+
"us_catalog_path",
|
|
141
|
+
"vendor_iwxxm_root",
|
|
142
|
+
"vendor_iwxxm_us_root",
|
|
143
|
+
"version_dir",
|
|
144
|
+
"xsd_path",
|
|
145
|
+
]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"destination": "packages/iwxxm-validate/src/iwxxm_validate/schemas",
|
|
3
|
+
"iwxxm_versions": [
|
|
4
|
+
"2023-1",
|
|
5
|
+
"2025-2"
|
|
6
|
+
],
|
|
7
|
+
"file_counts": {
|
|
8
|
+
"iwxxm/2023-1": 35,
|
|
9
|
+
"iwxxm/2025-2": 36,
|
|
10
|
+
"iwxxm/externalSchema": 263,
|
|
11
|
+
"iwxxm-us": 7
|
|
12
|
+
},
|
|
13
|
+
"total_files": 341,
|
|
14
|
+
"total_bytes": 5736523,
|
|
15
|
+
"excluded": [
|
|
16
|
+
"**/html/**",
|
|
17
|
+
"**/examples/**",
|
|
18
|
+
"**/XMI/**",
|
|
19
|
+
"**/documentation/**",
|
|
20
|
+
"iwxxm-modelling/**",
|
|
21
|
+
"iwxxm-translation/**",
|
|
22
|
+
"iwxxm-codelists/**"
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"decision": "E10-34",
|
|
4
|
+
"related": ["E10-6"],
|
|
5
|
+
"description": "Runtime IWXXM schema subset for the iwxxm-validate wheel (XSD + Schematron + RDF codelists + externalSchema catalogs + IWXXM-US). Excludes modelling/translation bulk and documentation trees.",
|
|
6
|
+
"iwxxm_versions": ["2023-1", "2025-2"],
|
|
7
|
+
"include": {
|
|
8
|
+
"iwxxm": ["{version}/IWXXM/*.xsd", "{version}/IWXXM/rule/**", "externalSchema/**"],
|
|
9
|
+
"iwxxm-us": ["**"]
|
|
10
|
+
},
|
|
11
|
+
"exclude": [
|
|
12
|
+
"**/html/**",
|
|
13
|
+
"**/examples/**",
|
|
14
|
+
"**/XMI/**",
|
|
15
|
+
"**/documentation/**",
|
|
16
|
+
"iwxxm-modelling/**",
|
|
17
|
+
"iwxxm-translation/**",
|
|
18
|
+
"iwxxm-codelists/**"
|
|
19
|
+
],
|
|
20
|
+
"notes": [
|
|
21
|
+
"Codelist RDFs used by Schematron document() live under each version IWXXM/rule/ (not the separate iwxxm-codelists tree).",
|
|
22
|
+
"externalSchema under iwxxm covers XSD imports (GML/AIXM/W3C); translation bulk is not bundled.",
|
|
23
|
+
"Sync from monorepo vendor pins via: make sync-iwxxm-validate-schemas"
|
|
24
|
+
]
|
|
25
|
+
}
|