Я пытаюсь проверить XML-документ, используя схему, предоставленную онлайн FCA.Невозможно добавить XML-схему в документ XML для проверки VBA
В файле XML-схемы определяется в заголовках, как это:
<PSD007-MortgagePerformanceSalesData xmlns = "urn:fsa-gov-uk:MER:PSD007:1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:fsa-gov-uk:MER:PSD007:1
http://www.fsa.gov.uk/mer/drg/PSD007/v1-3/PSD007-Schema.xsd"
Я хочу, чтобы предоставить пользователям инструмент для проверки XML-файл, генерируемый нашим макро до их загрузки файла XML в Система отчетности FCA.
Так что я взял код из ответа tomalak «s в SO: MSXML VBA: Validating XML against XSD: “The '' namespace provided differs from the schema's targetNamespace.”
Вот моя модифицированная версия кода:
Sub XSD_Validation()
Dim xmlDoc As MSXML2.DOMDocument60
Dim objSchemaCache As New XMLSchemaCache60
Dim objErr As MSXML2.IXMLDOMParseError
objSchemaCache.Add "http://www.w3.org/2001/XMLSchema-instance" & Chr
(34) & " xsi:schemaLocation=" & Chr(34) & "urn:fsa-gov-uk:MER:PSD007:1
http://www.fsa.gov.uk/mer/drg/PSD007/v1-3/PSD007-Schema.xsd", LoadXmlFile
("C:\PRA Export Data Jul 17 2015.xml")
Set xmlDoc = LoadXmlFile("C:\PRA Export Data Jul 17 2015.xml")
Set xmlDoc.Schemas = objSchemaCache
Set objErr = xmlDoc.Validate()
If objErr.ErrorCode = 0 Then
Debug.Print "No errors found"
Else
Debug.Print "Error parser: " & objErr.ErrorCode & "; " & objErr.reason
End If
End Sub
Когда я запускаю код я получаю ошибку ниже:
PRA%20Export%20Data%20Jul%2017%202015.xml#/PSD007-MortgagePerformanceSalesData Incorrect definition for the root element in schema.
Что мне не хватает или что-то не так?