I 성공적으로 XSD 스키마에 대해 XML 파일의 유효성을 검사하는 다음 코드가 있습니다XML 파일에서 XSD 오류의 파일 위치를 가져 오는 방법은 무엇입니까?
Try
Dim val As New Xml.XmlReaderSettings With {.ValidationType = ValidationType.Schema}
val.Schemas.Add(Nothing, "myvalidator.xsd")
Using reader = XmlReader.Create("myfile.xml", val)
While reader.Read
End While
End Using
Console.WriteLine("XML validation succeeded.")
Catch ex As Exception
Console.WriteLine("XML validation failed." & vbCr & vbLf & "Error Message: " & ex.Message)
End Try
내가 갖는 샘플 오류입니다
내가 가진 큰 XML 파일의 유효성을 검사하고있어The element 'address' has invalid child element 'zip_code'. List of possible elements expected: 'address_line_2, address_line_3, city'.
각각 여러 주소가있는 수백 명의 회원이 문제를 정확하게 지적하기에 충분하지 않습니다. 행 번호 나 파일 위치 또는 다른 유용한 데이터를 가져 와서 원본 XML 파일에서 문제가 발생한 위치를 정확히 알 수있는 방법이 있습니까? XmlReader가 텍스트 판독기와 동일한 방식으로 파일을 읽지 않는다는 것을 알았습니다. XML은 형식이 잘되거나 한 거대한 행에있을 수 있으므로 행 번호가 반드시 이동하지는 않습니다. 내가 문제가 무엇인지 알기 위해 While
루프 안에서 뭔가를 할 수 있어야하지만, 아직 발견하지 못했던 것처럼 보일 것입니다.
완벽합니다. 특정 오류 유형을 트래핑하는 것을 잊어 버렸기 때문에 일반적인 XmlSchemaValidationException 처리기가 아닌 일반 Exception 처리기의 속성 만보고 있었기 때문에 LineNumber 및 LinePosition과 같은 추가 속성을 볼 수 없었습니다. 필요한 것. 감사! – gfrizzle