code: def _get_type(name, value):
          
          # Types forced for known keys
          if name in TYPED_BOOL:
              return TYPE_BOOLEAN
  
          elif name in TYPED_LONG:
              return TYPE_LONG
  
          elif name in TYPED_STRING:
              return TYPE_STRING
  
          # We need to analyze the content of value
          if isinstance(value, (tuple, list, set)):
              # Get the type from container content
              try:
                  # Extract value
                  value = next(iter(value))
  
              except StopIteration:
                  # Empty list, can't check
                  return TYPE_STRING
  
          # Single value
          if isinstance(value, int):
              # Integer
              return TYPE_LONG
  
          elif isinstance(value, float):
              # Float
              return TYPE_DOUBLE
  
          elif isinstance(value, type(ElementTree.Element(None))):
              # XML
              return XML_VALUE
  
          # Default: String
          return TYPE_STRING
docs: Returns the type associated to the given name or value
  
          :param name: Property name
          :param value: Property value
          :return: A value type name