Na geração do evento "S-2399 - Trabalhador Sem Vínculo de Emprego/Estatutário - Término" ocorre uma quebra de estruturação do XML e como consequência a validação através do XSD (v2.4.02) retorna erro.
A estrutura do XML para esse evento, conforme a documentação do eSocial, deve ser a seguinte:
* N1 - 1-1 - O - eSocial (S2399)
** N2 - 1-1 - O - evtTSVTermino
*** N3 - 1-1 - O - ideEvento
*** N3 - 1-1 - O - ideEmpregador
*** N3 - 1-1 - O - ideTrabSemVinculo
*** N3 - 1-1 - O - infoTSVTermino
**** N4 - 0-1 - OCN - verbasResc
***** N5 - 1-50 - O - dmDev
****** N6 - 1-99 - O - ideEstabLot
******* N7 - 1-200 - O - detVerbas
******* N7 - 0-1 - ON - infoSaudeColet
******** N8 - 1-99 - O - detOper
********* N9 - 0-99 - OC - detPlano
******* N7 - 0-1 - ON - infoAgNocivo
******* N7 - 0-1 - ON - infoSimples
***** N5 - 0-99 - OC - procJudTrab
***** N5 - 0-1 - OC - infoMV
****** N6 - 1-10 - O - remunOutrEmpr
**** N4 - 0-1 -OC quarentena
Problema: O código constante na unit pcesS2399 (GerarInfoTSVTermino) faz com que a tag <remunOutrEmpr> entre na estrutura no nivel 4 (N4), quando o correto seria no nivel 6 (N6).
Solução: Foi comentado a linha de código responsável pela chamada do metodo de geração dos dados da tag <remunOutrEpcesGerador.pasmpr>. A geração dessa tag já existe na unit pcesGerador (GerarInfoMV).
Problema: Na unit pcesGerador (GerarInfoMV) a geração da tag <infoMV> somente ocorre quando a propriedade indMV for maior que zero (pInfoMV.indMV > 0). Porem, com a utilização do enumerador (tpIndMV), a propriedade pode assumir o valor zero (imvDescontadaempregador) e nesse caso não gera as informações da tag <infoMV> .
Solução: Trocar o teste de "maior que zero" para "contido em".
As soluções acima foram aplicadas nos arquivos anexos e validadas com a v2.4.02 do XSD.
pcesS2399.pas
pcesGerador.pas