XML Schema Definition , XSD , é o padrão mais aceito para definir a estrutura de documentos XML. Os esquemas podem definir restrições , atributos opcionais e necessários dentro de um documento XML. . Net permite a validação do XML utilizando um ou mais esquemas antes de processar o conteúdo. Validando XML reduz a quantidade de manipulação de exceção que deve ser realizada em erros de código e pega na formatação de dados que possam passar despercebidas . Coisas que você precisa
Visual Studio 2008 ou acima
nível intermediário de conhecimento. Programação
Net
Visualizar Mais instruções
Validação XML usando XmlReaderSettings
1
Criar um novo projeto C # do tipo desejado no Visual Studio. Se você deseja adicionar a validação de XML para um projeto existente, você pode pular esta etapa.
2
Abra a caixa de diálogo " Add New Item " , clicando em " Project" e em seguida clicar em "Adicionar Classe . "
3
Especifique um nome para a nova classe que adere aos seus padrões de codificação e práticas de nomeação.
4
o botão direito do mouse no projeto no Solution Explorer para exibir o menu do projeto.
5
Selecione "Add Reference " no menu para exibir a caixa de diálogo "Add Reference " .
6
Select System.XML da lista de componentes e , em seguida, clique no botão "Selecionar". Em seguida , clique em " OK".
7
Adicionar um método para a nova classe usando o seguinte código :
ValidateDocument private bool (string xmlFile , corda xsdFile )
{
configurações XmlReaderSettings = new XmlReaderSettings { ValidationType
= reader = XmlReader.Create ( xmlFile , configurações );
tentar
{
while ( reader.Read ());
return true;
}
catch ( XmlSchemaValidationException ex) {
//indica que ocorreu um erro de validação
return false; .
}
}
Este XML cargas de código em um XmlReader e um esquema XML para um XmlSchemaSet . Todos os atributos e elementos do documento XML são validados quando o documento é lido , não há necessidade de visitar elementos individualmente. Se o documento XML não é válido um XmlSchemaValidationException é lançada. A exceção inclui uma mensagem de erro , número da linha e posição onde o erro ocorreu. O processamento é interrompido no primeiro erro encontrado
Se você deseja processar todo o documento e ver todos os erros , e não apenas o primeiro erro , você pode adicionar um manipulador de erro para o evento ValidationEventHandler usando o seguinte código : .
settings.ValidationEventHandler + = ValidationHandler ;
vazio ValidationHandler (object sender, ValidationEventArgs e) evento
{
//processo estático aqui
}
XML Validação usando LINQ
8
Crie um novo projeto C # do tipo desejado no Visual Studio. Se você deseja adicionar a validação de XML para um projeto existente, você pode pular esta etapa.
9
Abra a caixa de diálogo " Add New Item " , clicando em " Project" e em seguida clicar em "Adicionar Classe . "
10
Especifique um nome para a nova classe que adere aos seus padrões de codificação e práticas de nomeação.
11
o botão direito do mouse no projeto no Solution Explorer para exibir o projeto menu.
12
Selecione "Add Reference " no menu para exibir a caixa de diálogo "Add Reference " .
13
Selecione System.XML e System.Linq do lista de componentes e , em seguida, clique no botão "Selecionar". Em seguida , clique em " OK".
14
Adicione um método para a nova classe usando o seguinte código :
ValidateDocument private bool (string xmlFile , corda xsdFile )
{
//Criar o documento XML para validar contra
XDocument xdoc = XDocument.Load ( xmlFile , LoadOptions.PreserveWhitespace );
XmlSchemaSet esquema = new XmlSchemaSet ( );
bool isError = new bool ( ) //o padrão é falso
int countError = 1; /.. /Conta o número de erros geraram
//Adicione o arquivo de esquema que você deseja validar contra
schema.Add (null, xsdFile ); .
//Call validar e usar uma expressão lambda como método estendido
//você não ama . NET 3.5 e LINQ ...
xDoc.Validate ( esquema, (sender , e) = >
{switch ( e.Severity )
{case XmlSeverityType.Error :
break;
caso XmlSeverityType.Warning :
break; }
countError + +;
isError = true; //Se fogos de erro, sinalizá-lo para lidar com uma vez chamada é completa
}
, true); . //Verdadeiro conta a validar chamada para preencher o post Esquema validação
//que você vai precisar mais tarde , se você quiser mergulhar mais fundo ... um littel
retornar isError ;
}
Este XML cargas de código em um XDocument e um esquema XML para um XmlSchemaSet . Em seguida, chama o método Validate na XDocument usando uma expressão lambda como o ValidationEventHandler .