def is_valid(self, tree):
        """
        returns true, iff the order of the tokens in the graph are the
        same as in the Conano file (converted to plain text).
        """
        conano_plaintext = etree.tostring(tree, encoding='utf8', method='text')
        token_str_list = conano_plaintext.split()
        for i, plain_token in enumerate(token_str_list):
            graph_token = self.node[self.tokens[i]][self.ns+':token']
            if ensure_unicode(plain_token) != graph_token:
                sys.stderr.write(
                    "Conano tokenizations don't match: {0} vs. {1} "
                    "({2})".format(plain_token, graph_token))
                return False
        return True