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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top