我正在使用VB.NET - C#的答案很好。根據消息區分例外的替代方法嗎?
我正在構建一個處理對特定XmlSchema的XML驗證的系統。對於我的XML文檔中的每個錯誤,我都有一個SchemaException實例,從中我可以獲取錯誤的行號和位置以及消息。據我所知,確定特定錯誤(無效屬性,缺失元素等)的唯一方法是讀取由於MS未來可能改變它以及消息被本地化的可能性而不可靠的消息字符串。
我需要能夠這些錯誤區分而不必爲了顯示自己的自定義錯誤,並突出我的文本編輯器中的錯誤,依靠.Message財產。
將這些區別開來的正確方法是什麼?這是可能的,對吧?
更多信息:
異常並不總是報告中,我想開始突出位置的LinePosition屬性 - 所有的屬性有關的異常報告爲實例的屬性開始,我想如果這是問題,能夠突出顯示屬性值。
SchemaException提供了一個SourceSchemaObject屬性,我可以使用它來確定問題是來自元素還是屬性,並且運氣有點小,可以讓我通過提取導致錯誤並以某種方式將其與SourceSchemaObject進行比較的XML文本,但這種感覺像是一個非常複雜和棘手的解決方案 - 如果我能夠解決具體的錯誤,我可以做到這一點正則表達式工作沒有問題。
這就是我如何驗證我的XML - 以及在技術上我使用XPathNavigator.CheckValidity但它基本上是一樣的。我不完全確定你的分類標準是什麼意思...... – SeriousSamP
如果相關,我自己創建模式 - 如果它不相關。 – SeriousSamP
在我的項目中,我們通過這種方式處理xml驗證。我們對每個領域都有驗證規則(這就是我所說的分類學)。我們有一個解析器,它選擇字段名稱,並指定錯誤中的規則。規則就像數字,小數點後兩位,日期格式,字符串長度等。 – Tilak