diff --git a/lib/siplib.py b/lib/siplib.py index e81b00ed5576eaf33f567f4a9394e609d9e284c5..71b7c184c5004408cb40ca7e3ec4b69b7e4da9c4 100644 --- a/lib/siplib.py +++ b/lib/siplib.py @@ -1488,11 +1488,16 @@ class Sip(object): raise Exception("This SIP does not describe a correlated dataproduct. No subarray pointing available.") # this will also validate the document so far - def get_prettyxml(self): + def get_prettyxml(self, schema_location:str = None): try: dom = self.__sip.toDOM() dom.documentElement.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance") - dom.documentElement.setAttribute('xsi:schemaLocation', "http://www.astron.nl/SIP-Lofar LTA-SIP-2.7.0.xsd") + if schema_location is None: + # this is/was the default schema location, even though we never hosted the xsd at the astron server + # That makes xmllint fail to validate (because the schema obviously can't be found) + schema_location = "http://www.astron.nl/SIP-Lofar LTA-SIP-2.7.2.xsd" + dom.documentElement.setAttribute('xsi:schemaLocation', schema_location) + dom.documentElement.setAttribute('xmlns:sip', schema_location.split(' ')[0]) return dom.toprettyxml() except pyxb.ValidationError as err: logger.error(err.details())