Parse the single and its value and return the parsed str.

        Args:
           selfTag (str): The tag. Normally just ``self.tag``
           selfValue (list): a list of value elements(single, subclasses, str, int). Normally just ``self.value``

        Returns:
            str: A parsed text

def printMe(self, selfTag, selfValue):
        '''Parse the single and its value and return the parsed str.

        Args:
           selfTag (str): The tag. Normally just ``self.tag``
           selfValue (list): a list of value elements(single, subclasses, str, int). Normally just ``self.value``

        Returns:
            str: A parsed text
        '''
        if len(selfValue) == 0:
            return ''
        # if value have only one element and it is not another single
        # print differently
        elif len(selfValue) == 1 and not ancestor(selfValue[0]) is Single:
            text = '<{tag}>{value}</{tag}>\n'.format(
                tag=selfTag, value=selfValue[0])
            return text
        else:
            valueText = ''
            for element in selfValue:
                # if the element is another single
                # or merely an object
                # both possibility should not happen in the same time
                # if so, user is not doing the right thing
                if singleOrPair(element) == 'Single':
                    # ask that single to print itself
                    valueText += element.printMe(element.tag, element.value)
                elif singleOrPair(element) == 'Pair':
                    valueText += element.printMe(element.key, element.value)
                else:
                    # simply print that element
                    valueText += str(element) + '\n'
            valueText = indent(valueText, 4)
            text = '<{tag}>\n'.format(
                tag=selfTag) + valueText + '</{tag}>\n'.format(tag=selfTag)
            return text