Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errore in fase di validazione con il vecchio "segnatura.xsd" del 2013 fallisce con i vecchi xml sempre del 2013 #70

Open
p4535992 opened this issue Mar 8, 2024 · 14 comments

Comments

@p4535992
Copy link

p4535992 commented Mar 8, 2024

Stiamo lavorando per aggiornare il protocollo alla nuova versione, ma non riusciamo a effettuare la validazione dei vecchi xml perchè con il vecchio xsd https://github.com/AgID/protocollo-comunicazione-aoo/blob/master/previous_schemas/segnatura_protocollo_circolare%2060_2013.xsd ci fallisce la validazione sul campo "versione" con l'errore: cvc-complex-type.3.1: Value '2013-01-23' of attribute 'versione' of element 'Segnatura' is not valid with respect to the corresponding attribute use. Attribute 'versione' has a fixed value of 'aaaa-mm-gg'. per far passare il controllo dobbiamo mettere la strigna "aaaa-mm-gg" che è sbagliato.

Potete chiarire la problematica?

Alleghiamo il file xml di test e lo mettiamo in chiaro in questo ticket.
esempio_segnatura_xml_2013.xml.txt

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Segnatura xmlns="http://www.digitPa.gov.it/protocollo/" versione="2013-01-23" xml-lang="it">
  <Intestazione>
    <Identificatore>
      <CodiceAmministrazione>codice_ente</CodiceAmministrazione>
      <CodiceAOO>codice_ente</CodiceAOO>
      <CodiceRegistro>protocollo-generale</CodiceRegistro>
      <NumeroRegistrazione>0000021</NumeroRegistrazione>
      <DataRegistrazione>2024-03-06</DataRegistrazione>
    </Identificatore>
    <OraRegistrazione tempo="spc">17:33:14</OraRegistrazione>
    <Origine>
      <IndirizzoTelematico tipo="smtp">[email protected]</IndirizzoTelematico>
      <Mittente>
        <Amministrazione>
          <Denominazione>Test Ente</Denominazione>
          <UnitaOrganizzativa tipo="permanente">
            <Denominazione>Test Ente</Denominazione>
            <IndirizzoPostale>
              <Indirizzo>
                <Toponimo>XXX</Toponimo>
                <Civico>XXX</Civico>
                <CAP>XXX</CAP>
                <Comune>XXX</Comune>
                <Provincia>XXX</Provincia>
              </Indirizzo>
            </IndirizzoPostale>
          </UnitaOrganizzativa>
        </Amministrazione>
        <AOO>
          <Denominazione>Test Ente</Denominazione>
        </AOO>
      </Mittente>
    </Origine>
    <Destinazione confermaRicezione="no">
      <IndirizzoTelematico tipo="smtp">[email protected]</IndirizzoTelematico>
      <Destinatario>
        <Persona>
          <Nome>Mario</Nome>
          <Cognome>Rossi</Cognome>
          <CodiceFiscale/>
        </Persona>
        <IndirizzoPostale>
          <Denominazione>,  </Denominazione>
        </IndirizzoPostale>
      </Destinatario>
    </Destinazione>
    <Oggetto>test</Oggetto>
  </Intestazione>
  <Descrizione>
    <Documento nome="nomeFile.xml" tipoMIME="text/xml" tipoRiferimento="MIME">
      <TipoDocumento>Documento Principale</TipoDocumento>
      <Oggetto>Registro giornaliero repertorio-generale XXX</Oggetto>
      <PiuInfo XMLSchema="improntaPiuInfo.xsd">
        <MetadatiInterni>YYY</MetadatiInterni>
      </PiuInfo>
    </Documento>
  </Descrizione>
</Segnatura>
@p4535992
Copy link
Author

@vintra73 scusa il riferimento diretto , ma avremmo urgenza di risolvere la problematica. Puoi farci sapere niente ?

@vintra73
Copy link
Member

Scusami per il ritardo, in merito all'XSD da te indicato https://github.com/AgID/protocollo-comunicazione-aoo/blob/master/previous_schemas/segnatura_protocollo_circolare%2060_2013.xsd abbiamo ricopiato il contenuto riportato in
https://www.agid.gov.it/sites/default/files/repository_files/circolari/circolare_60_2013_segnatura_protocollo_informatico_-_rev_aipa_n.28-2001.pdf

Riscontri un disalineamento con la circolare CIRCOLARE AgID N. 60 DEL 23 GENNAIO 2013? Se si puoi indicarmi dove cosi provvedo al fixing sul presente repo.

Grazie

@p4535992
Copy link
Author

@vintra73 Guarda noi abbiamo dei clienti che hanno degli xml 2013 come quello indicato (vedi xml in chiaro nella prima risposta) dove nel parametro della "versione" mettevano la data in formato "aaaa-mm-gg" e.g. 2013-01-23 come previsto dalla circolare da te indicata (che è la stessa che mi era stata indicata) , dal punto di vista del codice sembra invece che l'XSD voglia il valore fisso della stringa "aaaa-mm-gg" che è errato (almeno secondo me).

Si tratta di un problema di carattere "tecnico", passando gli xml 2013 sull' xsd https://github.com/AgID/protocollo-comunicazione-aoo/blob/master/previous_schemas/segnatura_protocollo_circolare%2060_2013.xsd sempre del 2013 per una validazione di sicurezza ci viene un'errore cvc-complex-type.3.1: Value '2013-01-23' of attribute 'versione' of element 'Segnatura' is not valid with respect to the corresponding attribute use. Attribute 'versione' has a fixed value of 'aaaa-mm-gg'.

Puoi verificare con dei tool online come questo https://www.liquid-technologies.com/online-xsd-validator, l'xml ci risulta corretto, ma l'xsd ci dice che non lo è, per far passare il controllo dobbiamo sostituire la stringa "2013-01-23" con "aaaa-mm-gg".

E' una cosa che possiamo "gestire" modificando leggermente l'xsd o semplicemente settando il valore "aaaa-mm-gg" sugli xml prima della validazione, ma vorremmo avere una risposta "ufficiale" in merito alla problematica (se è una problematica si intende).

@p4535992
Copy link
Author

p4535992 commented Mar 18, 2024

A chiunque possa interessare non avendo ricevuto una risposta ufficiale in nessun messaggio o post abbiamo modificato la validazione del campo versione rimuovendo type="xs:NMTOKEN" fixed="aaaa-mm-gg" e sostituendolo con type="xs:date" che dovrebbe essere a mio giudizio il controllo corretto.

@franthemanIT
Copy link

franthemanIT commented Mar 19, 2024

Se posso intromettermi, tieni conto che dall'altro lato potresti avere qualcuno che ha aggirato l'evidente errore dell'XSD scrivendo proprio "aaaa-mm-gg" nella segnatura (se riesco voglio fare qualche prova a campione su cosa riceviamo noi).

Penso comunque che più che un xs:date generico penso che dovrebbe essere una lista di possibili valori (non so quante versioni di schema di segnatura esistano).

@p4535992
Copy link
Author

p4535992 commented Mar 20, 2024

@franthemanIT Guarda io sono ignorante per quanto riguarda la burocrazia italiana, ma nella circolare (quella linkata da @vintra73 ) c'e' scritto chiaramente L'attributo "versione" ha valore fisso, pari alla data di pubblicazione, espressa in formato ISO 8601 esteso (i.e. aaaa-mm-gg). che io traduco in:

  1. Deve essere una data (quindi non una stringa in formato "aaaa-mm-gg")
  2. Deve essere in formato ISO 8601 esteso cioè in uno dei seguenti formati YYYY-MM-DD, YYYY-MM-DDThh:mm<TZDSuffix>, YYYY-MM-DDThh:mm:ss<TZDSuffix>
  3. La circolare specifica chiaramente che il formato della "data" deve essere "aaaa-mm-gg" ovvero il formato internazionale YYYY-MM-DD (e con questo si esclude qualsiasi dubbio in merito alla scelta se usare type="xs:date" o type="xs:dateTime" può essere solo un type="xs:date".)

Qualsiasi consiglio o suggerimento è ben accetto.

@franthemanIT
Copy link

franthemanIT commented Mar 20, 2024

Concordo pienamente. Però, se ho ben capito;

  • l'XSD pubblico che è quello che fa fede e che i software dovrebbero implementare per validare gli XML della segnatura non è conforme alla circolare (e, diciamolo, un attributo fisso "aaaa-mm-gg" tanto vale non metterlo nemmeno);
  • tu, per sopravvivere, lo hai corretto e lo hai reso conforme alla circolare;
  • altri usano l'XSD originale e bollano come non valida una segnatura che usa una data vera;
  • chi compone la segnatura, per essere conforme all'XSD pubblico, probabilmente si adegua all'insensato "aaaa-mm-gg"...

La modifica che hai fatto all'XSD come considera la segnatura con "aaaa-mm-gg"? Adesso non ne trovo una, sono tutte "versioni nuove da allegato 6", ma sono sicuro di averne viste passare...

@p4535992
Copy link
Author

p4535992 commented Mar 20, 2024

Quindi una cosa del genere:

<xs:simpleType name="DateVersioneAgidType">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{4}-[0-9]{2}-[0-9]{2}|aaaa\-mm\-gg"/>
        </xs:restriction>
    </xs:simpleType>

per accettare sia "2023-03-13" che "aaaa-mm-gg" e sostituire type="xs:NMTOKEN" fixed="aaaa-mm-gg" con type="DateVersioneAgidType" sarebbe piu' coerente ? Immagino di si e male non fa credo... c'è comunque un pò di confusione...

@franthemanIT
Copy link

franthemanIT commented Mar 20, 2024

Eh, il punto e' che se c'e' un XSD autoritativo andrebbe usato quello e stop. Se ha un errore materiale al suo interno arrivano i problemi a cascata.

La soluzione di creare quel simpleType potrebbe essere una toppa. Oppure istruire il software che se la validazione fallisce per via del "aaaa-mm-gg" andare avanti comunque.

Pero'. non voglio prendermi responsabilità, invitavo solo a valutare gli effetti della modifica unilaterale dello schema di validazione. AgID saprà dare indicazioni piu' serie.

Fra l'altro, le segnature sono piene di errori formali. Scartarle tutte automaticamente rischia di paralizzare le comunicazioni, ma questa è un'altra storia.

@p4535992
Copy link
Author

p4535992 commented Mar 20, 2024

Sono d'accordo il punto che io cerco qualcuno di "ufficiale" che mi metta nero su bianco che si deve usare effettivamente la stringa "aaaa-mm-gg" pechè la circolare mi dice effettivamente che è una data non una stringa (per quanto sia un'errore a livello tecnico secondo me), in modo da dire al cliente che per tutto questo tempo ha sbagliato lui a mettere le date come "2023-13-01" nell'attributo versione dell'xml perchè ha "interpretato" male la circolare...

@vintra73
Copy link
Member

scusami @p4535992, volevo ricordarti che questo non è un canale ufficiale, dovresti porre un quesito ad AgID sull'interpretazione della CIRCOLARE N. 60 DEL 23 GENNAIO 2013 tramite i canali ufficiali.

@p4535992
Copy link
Author

p4535992 commented Mar 20, 2024

@vintra73 mi sapresti dare un link al sito o un'email per questo tipo di domanda ? di questa parte purtroppo se sono occupate altre persone che non mi hanno fatto sapere niente, se hanno fatto queste identiche domande (se le hanno fatte) e sono in attesa di una risposta io purtroppo non lo so.
Ho trovato dei contatti, ma non sono sicuro se sono i canali corretti, per questo genere di domande va bene scrivere a [email protected] ?

@vintra73
Copy link
Member

@p4535992 non sono un legal, io utilizzerei la PEC di AgID

@p4535992
Copy link
Author

p4535992 commented Jul 3, 2024

A chiunque sia interessato nessuno mi ha mai risposto in merito alla problematica, che rimane tutt'ora irrisolta

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants