nao me recordo agora pq n fui eu quem fez essa parte aqui. mas se eu n me engano a propria lib do tiss ja faz isso pra vc. na validacao do hash, eu acho, se estiver faltando algum campo ele explode uma excecao informando q tal campo nao foi encontrado ou o conteudo dele esta em formato invalido.
ex:
se era esperado no schema uma tag e ela nao veio. ele informa q nao veio.
e se dentro de [telefone removido] ele gera uma excecao informando q a quantidade de digitos no campo cnpj é invalido