docs: def downloadMARCOAI(doc_id, base):
      """
      Download MARC OAI document with given `doc_id` from given (logical) `base`.
  
      Funny part is, that some documents can be obtained only with this function
      in their full text.
  
      Args:
          doc_id (str):         You will get this from :func:`getDocumentIDs`.
          base (str, optional): Base from which you want to download Aleph
                                document.
                                This seems to be duplicite with
                                :func:`searchInAleph` parameters, but it's just
                                something Aleph's X-Services wants, so ..
  
      Returns:
          str: MARC XML Unicode string.
  
      Raises:
          InvalidAlephBaseException
          DocumentNotFoundException
      """
      downer = Downloader()
  
      data = downer.download(
          ALEPH_URL + Template(OAI_DOC_URL_TEMPLATE).substitute(
              DOC_ID=doc_id,
              BASE=base
          )
      )
  
      dom = dhtmlparser.parseString(data)
  
      # check for errors
      error = dom.find("error")
      if len(error) <= 0:  # no errors
          return data
  
      if "Error reading document" in error[0].getContent():
          raise DocumentNotFoundException(
              str(error[0].getContent())
          )
      else:
          raise InvalidAlephBaseException(
              error[0].getContent() + "\n" +
              "The base you are trying to access probably doesn't exist."
          )