電子書籍の厳選無料作品が豊富!

XMLファイルのスキーマチェック

Sub xml_schma(in_name)

Dim objSCM, objDOM, objErr As Object
Set objDOM = CreateObject("Msxml2.DOMDocument.6.0")
objDOM.async = False
Set objSCM = CreateObject("MSXML2.XMLSchemaCache.6.0")
objSCM.Add "http://test.jp/", "c:\temp\g.xsd"
objDOM.Schemas = objSCM
objDOM.Load (in_name)
Set objErr = objDOM.parseError
If objErr.errorCode <> 0 Then
strMsg = objErr.Line & "行 " & objErr.srcText & vbCrLf
strMsg = strMsg & objErr.reason
MsgBox strMsg
Else
MsgBox "XML文書はスキーマに従っています"
End If

End Sub

in_nameにxmlファイルのパス名を与えてスキーマエラーを
表示するところまでは確認できました。

 XMLファイルに2カ所以上スキーマエラーがある場合に
ひとつ目しかエラーを検知できません。
 複数のエラー箇所を検知することはできないのでしょうか?

A 回答 (1件)

DOMのチェックがエラーを発見したらその時点で終了するからでしょう。


エラーが発見された以降は構文解析が非常に難しいです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!