code: def tocimxmlstr(value, indent=None):
      
  
      if isinstance(value, Element):
          xml_elem = value
      else:
          xml_elem = tocimxml(value)
  
      if indent is None:
          xml_str = xml_elem.toxml()
      else:
          if isinstance(indent, six.string_types):
              pass  # use indent, as specified
          elif isinstance(indent, six.integer_types):
              indent = ' ' * indent
          else:
              raise TypeError(
                  _format("Type of indent must be string or integer, but is: {0}",
                          type(indent)))
          xml_str = xml_elem.toprettyxml(indent=indent)
      # xml_str is a unicode string if required based upon its content.
      return _ensure_unicode(xml_str)
docs: Return the CIM-XML representation of the CIM object or CIM data type,
      as a :term:`unicode string`.
  
      *New in pywbem 0.9.*
  
      The returned CIM-XML representation is consistent with :term:`DSP0201`.
  
      Parameters:
  
        value (:term:`CIM object` or :term:`CIM data type` or :term:`Element`):
          The CIM object or CIM data type to be converted to CIM-XML, or an
          :term:`Element` object that already is the CIM-XML representation.
  
        indent (:term:`string` or :term:`integer`):
          `None` indicates that a single-line version of the XML should be
          returned, without any whitespace between the XML elements.
  
          Other values indicate that a prettified, multi-line version of the XML
          should be returned. A string value specifies the indentation string to
          be used for each level of nested XML elements. An integer value
          specifies an indentation string of so many blanks.
  
      Returns:
  
          The CIM-XML representation of the value, as a :term:`unicode string`.