Retrieve a passage and store it in the object

        :param subreference: CtsReference of the passage (Note : if given a list, this should be a list of string that \
        compose the reference)
        :type subreference: Union[CtsReference, URN, str, list]
        :rtype: CtsPassage
        :returns: Object representing the passage
        :raises: *TypeError* when reference is not a list or a CtsReference

def getTextualNode(self, subreference=None):
        """ Retrieve a passage and store it in the object

        :param subreference: CtsReference of the passage (Note : if given a list, this should be a list of string that \
        compose the reference)
        :type subreference: Union[CtsReference, URN, str, list]
        :rtype: CtsPassage
        :returns: Object representing the passage
        :raises: *TypeError* when reference is not a list or a CtsReference
        """
        if isinstance(subreference, URN):
            urn = str(subreference)
        elif isinstance(subreference, CtsReference):
            urn = "{0}:{1}".format(self.urn, str(subreference))
        elif isinstance(subreference, str):
            if ":" in subreference:
                urn = subreference
            else:
                urn = "{0}:{1}".format(self.urn.upTo(URN.NO_PASSAGE), subreference)
        elif isinstance(subreference, list):
            urn = "{0}:{1}".format(self.urn, ".".join(subreference))
        else:
            urn = str(self.urn)

        response = xmlparser(self.retriever.getPassage(urn=urn))

        self._parse_request(response.xpath("//ti:request", namespaces=XPATH_NAMESPACES)[0])
        return CtsPassage(urn=urn, resource=response, retriever=self.retriever)