Pergunta

Eu estou tentando criar um programa de validação mensagem e gostaria de criar regras facilmente modificáveis ??que se aplicam a certos tipos de mensagens. Devido ao risco das regras mudando Eu decidi para definir essas regras de validação externa para o código objeto.

Eu criei uma interface básica que define uma regra e estou querendo saber qual a melhor maneira de armazenar esses dados simples seria. Eu estava inclinado para XML, mas parece que ele pode ser muito pesado.

Cada regra só precisa de um pequeno conjunto de dados (ou seja, tipo de regra, o valor, máscara aplicável, etc).

Alguém sabe de um bom recurso que eu poderia olhar para isso seria executar uma funcionalidade semelhante. Eu prefiro não cavar muito fundo em XML em um problema que parece mal precisa de um subconjunto da funcionalidade vejo na maioria dos exemplos que eu topar.

Se eu posso encontrar um exemplo conciso para examinar eu seria capaz de decidir sobre se deve ou não ir apenas com um arquivo simples.

Agradecemos antecipadamente pelo seu contributo!

Foi útil?

Solução

Pessoalmente, para XML pequena, facilmente modificáveis, acho TinyXML ser um excelente biblioteca. Você pode fazer com que cada classe a entender seu próprio formato, para sua hierarquia de objeto é representado diretamente no XML.

No entanto, se você não acha que precisa de XML, você pode querer ir com um armazenamento mais leve como yaml . Acho que é muito mais fácil de entender os dados subjacentes, modificá-lo e estender a funcionalidade.

(Além disso, boost :: serialização tem um arquivo XML, mas não é o que eu chamaria facilmente modificável)

Outras dicas

O mais simples é usar um arquivo simples projetado para ser fácil de analisar usando o C ++ >> operador. Apenas os tokens simples separados por espaços em branco.

Bem, se você quiser suas regras para ser legível, XML é o caminho a percorrer, e você pode interagir-lo muito bem com c ++ usando xerces . Se você quiser desempenho e ou tamanho, você pode salvar os dados como binários usando estruturas simples.

Outra forma de implementar isso seria para definir suas regras em XML Schema e depois ter uma ferramenta de ligação de dados XML gerar a ++ modelo de objeto correspondente C, juntamente com a análise do XML e código de serialização. Uma dessas ferramentas (que por acaso eu estar trabalhando em) é CodeSynthesis XSD:

http://www.codesynthesis.com/products/xsd/

Para a 2 minutos a visão geral da ideia, veja o exemplo "Olá Mundo" na documentação do mapeamento C ++ / árvore.

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