Jump to content
Delphi_852

Validar ficheiros xmls através de ficheiros XSD

Recommended Posts

Delphi_852

Boa Tarde,

O objectivo é o seguinte: pretendo validar um ficheiro xml, que é criado a partir de dados provindos de uma base de dados, através de um ficheiro XSD.

Andei a investigar e fiz da seguinte forma:


 

        XmlSchemaSet schemas1 = new XmlSchemaSet();
                schemas1.Add(schemaNamespace, XmlReader.Create(schemaFileName));


                string msg = "";
                XmlSchemaException xis = new XmlSchemaException();
                doc.Validate(schemas1, (o, e) =>
                {
                    xis = e.Exception;
                    msg += e.Message + Environment.NewLine;
                    isValide = false;                   
                }, true);

 

onde doc é do tipo XDocument, que contem o meu XML. Mas detectei uma falha que é a seguinte, tenho mais campos no meu XSD que os que existem no XML e a validação não falha... alguém sabe o que poderá ser?

 

Obrigado

 

Share this post


Link to post
Share on other sites
M6

Sem ver o XML e o XSD é difícil responder, mas provavelmente a validação está OK porque a especificação do XSD tem os elementos como opcionais, ou seja, se não existirem não há problema.

  • Vote 1

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Delphi_852

M6, muito obrigado pela sua resposta. Pois poderá ser isso , como faço para especificar que um campo é obrigatório? Colocando o minOccurs = 1 e maxOccurs =1?

 

 

Edited by Delphi_852

Share this post


Link to post
Share on other sites
M6

Basta retirar o min e o max e passa a ficar mandatório. O padrão é que seja mandatório com uma única ocorrência.

  • Vote 1

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Delphi_852

Obrigado pela ajuda!

Tenho um campo boolean.. aquando a validação obtenho o seguinte erro: " 'http://www.example.org/XXX:YYY' element is invalid - The value 'False' is invalid according to its datatype 'Boolean' - The Pattern constraint failed."

Como posso fazer para resolver?

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.