validação XML vulneráveis ??a informações cultura?
-
06-07-2019 - |
Pergunta
um dia antes do fim do projecto i correr em uma questão complicada: eu tenho um serviço wtf e 3 aplicativo cliente usá-lo. serviço tem três métodos, cada um recebendo um documento XML como um argumento e retornando documento XML. esta é a forma como eles se comunicam. Eu tenho alguns arquivos XSD para validar geradas e recebidas xml do. até hoje tudo funcionou bem. Eu tenho janelas polonês e hoje eu executar o meu aplicativo no Windows inglês. como você provavelmente percebeu isso agora, eu recebi uma mensagem do meu aplicativo que o xml recebido não é válido. Eu verifiquei e o valor de VaR que foi suppopsed a ser o dobro no XML foi escrito com período (ou coma, eu não me lembro, mas ele não estava funcionando). eu estou querendo saber agora - há alguma boa solução para este problema? Quer dizer, eu validar xml como este:
public bool IsValid(XDocument xmlDocument, Stream xsdContent)
{
XmlSchemaSet schemaSet = new XmlSchemaSet();
XmlReader reader = XmlReader.Create(xsdContent);
schemaSet.Add(string.Empty, reader);
valid = true;
xmlDocument.Validate(schemaSet, (sender, eventt) => { valid = false; e
= eventt; });
return valid;
}
não há nenhuma maneira que eu poderia dizer o validador que o separador em dupla deve ser. a única solução que eu poderia pensar é especificar simplesmente em xsd que o valor VaR problemático é uma cadeia e, em seguida, verifique programmaticaly se é um número duplo, com período ou coma.
Solução
O XML schema especificação Especifica utilizando o que números de ponto flutuante são representados um período e não usando uma vírgula. A localidade não tem qualquer efeito sobre o que é XML válido.
Você não incluir o seu erro. Esperemos que ele está reclamando que há uma vírgula em um número.