Italian Come controllare le Fatture Elettroniche.

Lello1964

Well-Known Member
Licensed User
Longtime User
Qualcuno ha già effettuato il controllo delle fatture elettroniche usando il file xsd ?

ho trovato qualche cosa ma non funziona ina b4A,

errore in linea 22

B4X:
sub test
    Dim data_file_Xsd As String = File.ReadString(File.DirAssets,"Schema_VFPR12.xsd")
    Dim data_file_xml As String = File.ReadString(File.DirAssets,"test.xml")

    ValidateFile(data_file_Xsd,data_file_xml)
end sub

Sub ValidateFile(xsdFile As String,xmlFile As String) As Boolean
    Private SchemaFactory As JavaObject
    Private factory As JavaObject
    Private XMLconstants As JavaObject
    Private Validator As JavaObject
    Private StreamSource As JavaObject
    Private xsd,xml As JavaObject
    Private Schema As JavaObject
    Private ErrorList As List
 
    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")))

    xsd.InitializeNewInstance("java.io.File",Array(xsdFile))
    xml.InitializeNewInstance("java.io.File",Array(xmlFile))
    Schema = factory.RunMethod("newSchema",Array As Object(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

questo è l'errore :

B4X:
Error occurred on line: 672 (GestFatture)
java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:132)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:157)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:201)
    at anywheresoftware.b4a.shell.DebugResumableSub$RemoteResumableSub.resume(DebugResumableSub.java:22)
    at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:275)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:150)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:201)
    at anywheresoftware.b4a.keywords.Common$15.run(Common.java:1804)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7626)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:503)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.lang.IllegalArgumentException: http://www.w3.org/2001/XMLSchema
    at javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:192)
    ... 21 more

avete qualche soluzione ?
 

Attachments

  • filesTest.zip
    9.4 KB · Views: 238
Top