docs: def process_doc(self, doc):
          """
          Attempt to parse an xml string conforming to either an SOS or SensorML
          dataset and return the results
          """
          xml_doc = ET.fromstring(doc)
          if xml_doc.tag == "{http://www.opengis.net/sos/1.0}Capabilities":
              ds = SensorObservationService(None, xml=doc)
              # SensorObservationService does not store the etree doc root,
              # so maybe use monkey patching here for now?
              ds._root = xml_doc
  
          elif xml_doc.tag == "{http://www.opengis.net/sensorML/1.0.1}SensorML":
              ds = SensorML(xml_doc)
          else:
              raise ValueError("Unrecognized XML root element: {}".format(xml_doc.tag))
          return ds