def _read_marcxml(xml):
<EOL>marc_xml = _read_content_or_path(xml)<EOL>marc_xml = _oai_to_xml(marc_xml)<EOL>marc_xml = _add_namespace(marc_xml)<EOL>file_obj = StringIO.StringIO(marc_xml)<EOL>return ET.parse(file_obj)<EOL>
Read MARC XML or OAI file, convert, add namespace and return XML in
required format with all necessities.

Args:
    xml (str): Filename or XML string. Don't use ``\\n`` in case of
               filename.

Returns:
    obj: Required XML parsed with ``lxml.etree``.