Sub ValidateFile(xsdFile As String,xsdFile2 As String,xsdFile3 As String,xmlFile As String,ptxw As TextWriter) As ResumableSub
ErrorList.Initialize
XMLconstants.InitializeStatic("javax.xml.XMLConstants")
SchemaFactory.InitializeStatic("javax.xml.validation.SchemaFactory")
factory = SchemaFactory.RunMethod("newInstance",Array(XMLconstants.GetField("W3C_XML_SCHEMA_NS_URI")))
File.WriteString(File.DirTemp,"main.xsd",$"<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://schemas.nav.gov.hu/OSA/1.0/common">
<xs:import namespace="http://schemas.nav.gov.hu/OSA/3.0/data" schemaLocation="${xsdFile}"/>
<xs:import namespace="http://schemas.nav.gov.hu/NTCA/1.0/common" schemaLocation="${xsdFile2}"/>
<xs:import namespace="http://schemas.nav.gov.hu/OSA/3.0/base" schemaLocation="${xsdFile3}"/>
</xs:schema>
"$)
xsd.InitializeNewInstance("java.io.File",Array(File.Combine(File.DirTemp,"main.xsd")))
xml.InitializeNewInstance("java.io.File",Array(xmlFile))
Schema = factory.RunMethod("newSchema",Array(xsd))
Validator = Schema.RunMethod("newValidator",Null)
StreamSource.InitializeNewInstance("javax.xml.transform.stream.StreamSource",Array(xml))
Validator.RunMethod("setErrorHandler",Array(Validator.CreateEvent("org.xml.sax.ErrorHandler","xmlerr",Null)))
Validator.RunMethod("validate",Array(StreamSource))
If ErrorList.Size > 0 Then
' For Each i As Object In ErrorList
' Log("Error "&i)
' Next
'Technical error report
For a = 0 To ErrorList.Size-2 Step 2
ptxw.WriteLine(ErrorList.Get(a))
Log(ErrorList.Get(a))
Next
Return False
End If
Return True
End Sub