Validazione XML Fattura elettronica

di il
71 risposte

71 Risposte - Pagina 3

  • Re: Validazione XML Fattura elettronica

    morning ha scritto:


    Ho capito, come facevo in parte nello spesometro ovvero:
    controllavo molti campi provenienti dalla anagrafiche esempio indirizzo, note, descrizioni,etc..
    facevo un ciclo di ricerca se nella stringa conteneva un carattere particolare e lo sostituivo prima di passarlo nel file xml
    però spiegami perchè con & sostituito con & funziona ..
    io pensavo che questa sostituzione avvenisse cambiato il formato o usando una qualche conversione dell'intero file ma immagino che non esista o mi sono sbagliata
    quindi procedo con questo ciclo e sostituisco i caratteri questo intendi?
    grazie
    La mia opinione è: è una merda.
    Non c'è una indicazione deterministica di cosa va bene, e cosa no.
    E neppure una pubblicazione del validatore (cosa in assoluto più intelligente da fare, ma troppo per SOGEI).

    Quindi il MIO consiglio, che non è un comandamento divino, è

    "togli tutto, e 'fancu..lo SOGEI".
    Ho già postato più volte il sorgente del convertitore "ufficiale", nel senso che se SOGEI seguisse gli standard sarebbe giusto, ma l'esperienza prova che si impuntano su sciocchezze, lasciando voragini altrove (cercalo, sono pigro).

    Dal momento che lo generi te, l'XML, fallo in modo da avere certezza 100% del buon fine.
    Che poi sia bello o brutto cambia poco, anzi direi proprio niente.

    Questo il mio consiglio.
  • Re: Validazione XML Fattura elettronica

    [/quote]La mia opinione è: è una merda.
    Non c'è una indicazione deterministica di cosa va bene, e cosa no.
    E neppure una pubblicazione del validatore (cosa in assoluto più intelligente da fare, ma troppo per SOGEI).

    Quindi il MIO consiglio, che non è un comandamento divino, è

    "togli tutto, e 'fancu..lo SOGEI".
    Ho già postato più volte il sorgente del convertitore "ufficiale", nel senso che se SOGEI seguisse gli standard sarebbe giusto, ma l'esperienza prova che si impuntano su sciocchezze, lasciando voragini altrove (cercalo, sono pigro).

    Dal momento che lo generi te, l'XML, fallo in modo da avere certezza 100% del buon fine.
    Che poi sia bello o brutto cambia poco, anzi direi proprio niente.

    Questo il mio consiglio.
    [/quote]

    Ma quindi, scusa non comprendo io, non devo necessariamente eliminare/sostituire a monte i caratteri speciali èàò&° etc...
    ma li lascio nel file .xml ed esiste un convertitore che mi trasforma il file.xml in file2.xml senza questi caratteri????
    spero aver compreso bene
    se lo hai postato lo cerco, in questo 3d o altri?
    grazie
  • Re: Validazione XML Fattura elettronica

    Il mio consiglio è di operare in modo più radicale, cioè stabilire quali caratteri vuoi consentire, ed eliminare tutti gli altri.
    In tal modo sei sicura al 100%.

    Se invece vuoi tentare la strada del lavoro fatto come dovrebbe essere, ho già postato una procedurella pascal al'uopo dedicata.
    convertila nel tuo linguaggio e buona fortuna.
  • Re: Validazione XML Fattura elettronica

    Chiarissimo e grazie
    sei bravo anche con editor di linux? uso il vi e non ricordo questa cosa
    se digito da prompt di linux èàì e tutte le lettere accentate è tutto ok
    ma non riesco a inserirla nel mio programma aprendolo col vi (che è appunto un editor)
    caspita...dove sbaglio ??
    se dentro il vi (cioè nel mio file) digito è mi esce ~J o ~E cioè non centra nulla con la lettera accentata che voglio
    nemmeno se faccio copia incolla

    chi mi aiuta?
    grazie
  • Re: Validazione XML Fattura elettronica

    Mi spiace ma non uso praticamente mai linux.
    il mezzo normale è alt+codice tastierino numerico
  • Re: Validazione XML Fattura elettronica

    Convertitore di stringhe di testo:

    Function StringaPA2(testox As String) As String

    On Error Resume Next

    Dim Lu As Integer
    Dim StrT1 As String
    Dim StrT2 As String
    Dim Jj As Integer
    Dim Lettera As String


    ' Accorcia la stringa se eccede i 250 caratteri
    Lu = Len(testox)
    If Lu > 250 Then
    StrT1 = Left(testox, 250)
    Else
    StrT1 = testox
    End If
    Lu = Len(StrT1)


    ' Sostituisci eventuali caratteri speciali (non ammessi dallo standard fattura PA)
    StrT2 = ""
    For Jj = 1 To Lu
    Lettera = Mid(StrT1, Jj, 1)
    Select Case Lettera
    Case "é", "è", "&"
    Lettera = "e"
    Case "ò"
    Lettera = "o"
    Case "ù"
    Lettera = "u"
    Case "à"
    Lettera = "a"
    Case "ì"
    Lettera = "i"
    Case "ç", "§", "+", "*", "!", "\", "|", "£", "$", "%", "/", "=", "?", "^", "°", "#", Chr(39), Chr(34), Chr(146), Chr(147), Chr(148)
    Lettera = ""
    Case ".", "-", ",", Chr(133)
    Lettera = ""
    Case Else
    Lettera = Lettera
    End Select
    StrT2 = StrT2 & Lettera
    Next Jj

    StringaPA2 = StrT2


    End Function
  • Re: Validazione XML Fattura elettronica

    La tua funzione, oltre a non usare il tag CODE, ha, almeno, un bug: la lunghezza non va limitata a 250 caratteri, dipende dal campo.
  • Re: Validazione XML Fattura elettronica

    Se prooprio volete avventurarvi è più fatta così

    
    const
       arrayconversione:array [161..255] of Char= ('¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','­','®','¯','°','±','²','³','´','ì','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ');
    
    function g_testoafel(i_stringa:string):string;
    var
       i:Integer;
    begin
       Result:=i_stringa;
       if i_stringa='' then Exit;
    
       for i:=Low(arrayconversione) to High(arrayconversione) do
           Result:=StringReplace(result,arrayconversione[i],'&#'+inttostr(i)+';',[rfreplaceall]);
    
       Result:=StringReplace(result,'<','&lt;',[rfreplaceall]);
       Result:=StringReplace(result,'&','&amp;',[rfreplaceall]);
       Result:=StringReplace(result,'"','&quot;',[rfreplaceall]);
       Result:=StringReplace(result,'''','&apos;',[rfreplaceall]);
       Result:=StringReplace(result,#10,' ',[rfreplaceall]);
       Result:=StringReplace(result,#13,' ',[rfreplaceall]);
    end;
    
    io, però, lo sconsiglio comunque
  • Re: Validazione XML Fattura elettronica

    nicolap ha scritto:


    La tua funzione, oltre a non usare il tag CODE, ha, almeno, un bug: la lunghezza non va limitata a 250 caratteri, dipende dal campo.
    vero... ma...

    Meglio "tagliare", che avere problemi con la validità formale di un file XML
  • Re: Validazione XML Fattura elettronica

    Mirko72 ha scritto:


    nicolap ha scritto:


    La tua funzione, oltre a non usare il tag CODE, ha, almeno, un bug: la lunghezza non va limitata a 250 caratteri, dipende dal campo.
    vero... ma...

    Meglio "tagliare", che avere problemi con la validità formale di un file XML
    Meglio rispettare le specifiche: ci sono campi lunghi 10, 60, 80 caratteri, etc.
    Sottovalutare questi aspetti porta a programmi che poi danno problemi
  • Re: Validazione XML Fattura elettronica

    Fatture estere :

    le mando via per evitare esterometro
    metto nel codice SDI xxxxxxx così mi hanno detto
    ma viene scartata dal circuito

    Sapete darmi indicazioni? grazie
  • Re: Validazione XML Fattura elettronica

    morning ha scritto:


    Fatture estere :

    le mando via per evitare esterometro
    metto nel codice SDI xxxxxxx così mi hanno detto
    ma viene scartata dal circuito

    Sapete darmi indicazioni? grazie
    Mi rispondo da sola se metto XXXXXXXX non da errore nel campo desinatario
    ma vuole anche la provincia, cosa metto se straniera? grazie
  • Re: Validazione XML Fattura elettronica

    morning ha scritto:



    Mi rispondo da sola se metto XXXXXXXX non da errore nel campo desinatario
    ma vuole anche la provincia, cosa metto se straniera? grazie
    La Provincia NON va messa !!!
  • Re: Validazione XML Fattura elettronica

    nicolap ha scritto:



    Meglio rispettare le specifiche: ci sono campi lunghi 10, 60, 80 caratteri, etc.
    Sottovalutare questi aspetti porta a programmi che poi danno problemi
    Non puoi avere questo genere di problema: i campi nel db "ritagliano" già eventuali sbordamenti
  • Re: Validazione XML Fattura elettronica

    Tornando al problema esposto i giorni scorsi:
    nel mio applicativo trovo tantissime descrizioni con il carattere grado °
    Ebbene ho capito che non è un carattere ascii e non riesco in nessun modo a convertirlo in altro carattere automaticamente
    Dovrei procedere manualmente ed è caotico oltretutto non sono certa che alcuni utenti distratti possano reinserirlo nuovamente

    domanda: c'è modo di usare qualche batch in windows che converta il carattere?
    una volta estratti gli xml li giro su un server windows e da qui vorrei lanciare un batch / comando che cerca questo carattere e me lo converte
    Ho provato con il comando fart (scaricato da internet) ma non trova il carattere ° sempre per il motivo che non è carattere ascii.

    Sapete darmi qualche dritta? grazie
Devi accedere o registrarti per scrivere nel forum
71 risposte