docs: 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)