들어오는 입력 xmlDocument를 기존 XmlSchemaSet에 대해 유효성을 검사하려고합니다. 코드는 다음과 같습니다.XmlDocument.Validate가 여러 오류에 대해 실행되지 않습니다.
public class ValidateSchemas
{
private bool _isValid = true;
public List<string> errorList = new List<string>();
public bool ValidateDocument(XmlDocument businessDocument)
{
XmlSchemaSet schemaSet = SchemaLoader.Loader();
bool isValid = Validate(businessDocument, SchemaLoader._schemaSet);
return isValid;
}
public bool Validate(XmlDocument document, XmlSchemaSet schema)
{
ValidationEventHandler eventHandler = new ValidationEventHandler(HandleValidationError);
document.Schemas = schema;
document.Validate(eventHandler);
return _isValid;
}
private void HandleValidationError(object sender, ValidationEventArgs ve)
{
_isValid = false; errorList.Add(ve.Message);
}
}
코드가 유효성 검증 관점에서 잘 작동합니다. 그러나 errorList는 첫 번째 노드 오류 만 캡처합니다. 다른 노드 오류는 캡처하지 않습니다. 사건이 한 번만 해고 된 것 같습니다. 이것을 성취하는 방법, 도와주세요. 내가 xmldocument를 입력으로 사용하고 있으므로 독자를 사용하지 않는다는 점에 유의하십시오.
나는 똑같은 것을 찾고 있었지만 그것으로는 불가능한 것 같습니다. – juFo
XDocument.Validate는 가능한 경우 여러 오류를 반환하는 것으로 보입니다. –