[docs]classGeodesyMLVersion(IntegerChoices,s("version"),s("xmlns",case_fold=True)):_symmetric_builtins_=[s("name",case_fold=True),s("label",case_fold=True)]# fmt: off# name value label version xmlnsv0_4=1,"GeodesyML/0.4",0.4,"urn:xml-gov-au:icsm:egeodesy:0.4"v0_5=2,"GeodesyML/0.5",0.5,"urn:xml-gov-au:icsm:egeodesy:0.5"# fmt: ondef__str__(self):returnself.label
@cached_propertydefschema(self):fromlxml.etreeimportXMLParser,XMLSchema,parsefromslm.parsingimportxsdfromslm.parsing.xsd.resolverimportCachedResolverparser=XMLParser()parser.resolvers.add(CachedResolver())# todo - do this with importlib.resources ?returnXMLSchema(etree=parse(str(Path(xsd.__path__[0])/"geodesyml"/str(self.version)/"geodesyML.xsd"),parser,))@cached_propertydeftemplate(self):fromdjango.template.loaderimportget_templatereturnget_template(f"slm/sitelog/xsd/geodesyml_{self.version}.xml")