Как установить прокси, используемый DOMDocument60.ValidateNode? - PullRequest
0 голосов
/ 13 января 2020

Я использую следующий код для проверки xml -файла в VBA:

    Dim dParseError As MSXML2.IXMLDOMParseError
With New MSXML2.DOMDocument60
    Call .Load("C:\Temp\mySample.xml")
    Set dParseError = .validateNode(.ChildNodes.item(1))
    If dParseError.ErrorCode <> 0 Then
        Call msg_error_norm(ModuleName, FunctionName, "Error " & dParseError.ErrorCode & ": '" & dParseError.Reason & "' in XML-Vaidate.")
    End If
End With

Но похоже, что validate не может правильно проверить схему, которая находится в xsi: schemaLocation = " http://... "местоположение. Это не работает из-за нашей конфигурации прокси (по крайней мере, это то, что я подозреваю).

Итак, как настроить прокси (если возможно, прочитайте настройки c), используемый .validateNode?

1 Ответ

0 голосов
/ 16 января 2020

Казалось, что устанавливать прокси не нужно. Вместо этого вам нужно отдельно загрузить схему в XMLSchemaCache и установить ее в DOMDocument.

Dim dParseError As MSXML2.IXMLDOMParseError
Dim dSchemaCache As MSXML2.XMLSchemaCache60 
With New MSXML2.DOMDocument60
    Set dSchemaCache = New MSXML2.XMLSchemaCache60
    Call dSchemaCache.Add("http://myNamespace/Schema", "http://www.locationOfTheSchema.at/GBS/Sample.xsd")
    Call .Load("C:\Temp\mySample.xml")
    Set dParseError = .validateNode(.ChildNodes.item(1))
    If dParseError.ErrorCode <> 0 Then
        Call msg_error_norm(ModuleName, FunctionName, "Error " & dParseError.ErrorCode & ": '" & dParseError.Reason & "' in XML-Vaidate.")
    End If
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...