Login Registre-se
Caracteres Inválidos  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
jocabaldini

JavaC Membro

Membro desde: 31/10/2012 14:21:25
Mensagens: 178
Offline

Boa tarde galera.

Durante a validação do XML mtos erros foram causados por strings que continham caracteres inválidos. Por exemplo uma string acabando com espaço no campo xProd, ou contendo o caracter equivalente à 1/2 (não consegui fazer o caracter aki)...

Além disso tem também os caracteres especial citados no Manual de Integração. Que fala pra trocar o "<" por < ou "&" por & para que passe pelo parser.

Então gostaria de criar uma função para limpar as strings e fazer as devidas alterações.

Mas não sei quais são os caracteres inválidos e não achei nada no Manual além dos caracteres especiais.

Alguém sabe quais são ou algum lugar onde fale?
Quasar

JavaC Membro

Membro desde: 15/06/2012 09:57:00
Mensagens: 52
Offline

jocabaldini,

Durante a validação do XML mtos erros foram causados por strings que continham caracteres inválidos. Por exemplo uma string acabando com espaço no campo xProd, ou contendo o caracter equivalente à 1/2 (não consegui fazer o caracter aki)...


Ninguem consegue... assim como os bosons da fisica de particulas so admitem spin inteiro, caracteres são representados apenas por numeros inteiros. Para remover caracteres em branco do inicio e fim (assim como outros indesejaveis) use o metodo String.trim().

Além disso tem também os caracteres especial citados no Manual de Integração. Que fala pra trocar o "<" por < ou "&" por & para que passe pelo parser.


Se vc esta se referindo APENAS ao conteudo texto dos elementos, "<" e "&" devem ser substituidos. E tambem a sequencia "]]>" eh proibida.
Para substitui-los use a função String.replaceAll(),

replaceAll("&","&"); // essa DEVE vir primeiro.
replaceAll("<","<");
replaceAll(">",">");

jocabaldini

JavaC Membro

Membro desde: 31/10/2012 14:21:25
Mensagens: 178
Offline

Eu fiz a substituição dos caracteres especiais conforme fala o Manual.

Em relação aos caracteres inválidos eu gostaria de saber se existe alguma lista de caracteres que não podem ser usados (como letras acentuadas ou símbolos como ½). Mas testando aqui a validação usando o Schema enviNFe_v2.00.xsd não acusou nada de errado com esses caracteres (só deu erro com o uso de espaço no final da string).
Quasar

JavaC Membro

Membro desde: 15/06/2012 09:57:00
Mensagens: 52
Offline

Isso depende do contexto;

Num documento XML, textos podem usar qq caracter, excetuando "<" , "&" e a sequencia "]]>".

So que depende tb da codificação usada. Um mesmo caracter pode ser representado de formas diferentes. P.ex em utf-8 o c cedilha eh representado por 2 caracteres.

Outra coisa q deve ser observada (e a mais logica) eh o esquema. P.ex, a chave de acesso da nf so admite caracteres numericos.
 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team