我已經讓自己陷入了一個我似乎無法想象的問題。我試圖以編程方式驗證使用DTD使用Microsoft下面的說明(Validation Using a DTD with XmlReaderVB.Net - 使用DTD驗證XML
生成的XML文件,這裏是我的代碼迄今:
Private Sub BTN_ValidateXMLdoc_Click(sender As Object, e As EventArgs) Handles BTN_ValidateXMLdoc.Click
Dim JobNumber As String = Me.HNF_JobName.Value
Dim XMLPath As String = "N:\" & JobNumber & "\" & JobNumber & ".xml"
' Set the validation settings.
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.DtdProcessing = DtdProcessing.Parse
settings.ValidationType = ValidationType.DTD
settings.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings
settings.ValidationFlags = XmlSchemaValidationFlags.ProcessInlineSchema
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
' Create the XmlReader object.
Dim reader As XmlReader = XmlReader.Create(XMLPath, settings)
' Parse the file.
While reader.Read()
End While
End Sub
' Display any validation errors.
Private Shared Sub ValidationCallBack(sender As Object, e As ValidationEventArgs)
MsgBox(String.Format("Validation Error: {0}", e.Message), MsgBoxStyle.OkOnly)
End Sub
現在....就在於此我的問題。出於某種原因,ValidationCallBack EventHandler永遠不會被觸發。如果在讀取器中發生錯誤,執行它會引發異常錯誤。
糾正我,如果我錯了,但不應該調用ValidationCallBack子?
XML文件中存在錯誤,但不是由事件處理程序處理,而僅僅是拋出異常....
對於可能在這裏發生的事情我有任何想法嗎?
您可以添加XML嗎? – Anuraj
添加XML是什麼意思?它開始讀取XML文件,然後當標籤格式錯誤或XML文件中有錯誤時,它會拋出異常而不是觸發事件處理程序。 – cre8tivedaze
DTD使用形式語法來描述兼容XML文檔的結構和語法; 「他們指定了XML文檔允許的內容和值。」 - 如果它不是一個有效的XML,它將失敗 – Anuraj