Suite à mon numéro transforming large Xml files, j'ai maintenant besoin de valider le schéma.Validation de grands fichiers XML
j'utilisais cette méthode d'extension, qui peut clairement être amélioré car il est ne fonctionne pas correctement soit
public static XElement ValidateXsd(this XElement source, string xsdPath)
{
var errors = new XElement("Errors");
// Reference: http://msdn.microsoft.com/en-us/library/bb358456.aspx
var xsd = XDocument.Load(xsdPath);
var xml = XDocument.Load(source.CreateReader());
var schemas = new XmlSchemaSet();
schemas.Add("", xsd.CreateReader());
if (xml.Document != null)
{
xml.Document.Validate(schemas,
// Validation Event/Error Handling
(sender, e) =>
{
var message = e.Message
.Replace(
"element is invalid - The value '' is invalid according to its datatype 'requiredString' - The actual length is less than the MinLength value.",
"cannot be blank.")
.Replace(
"is invalid according to its datatype 'size' - The Pattern constraint failed.",
"must be numeric.")
.Replace(
"element is invalid",
"is invalid.");
errors.Add(new XElement("Error", message));
}
);
}
// If there were errors return them, otherwise return null
return errors.Elements().Count() > 0 ? errors : null;
}
Quelle est l'erreur? Signification est cette méthode jetant une exception si oui quel type? Ou y a-t-il des erreurs alors vous ne les récupérez pas? La réponse peut varier en fonction de l'erreur. –