Alcune note sul popolamento di ANNCSU da parte dei Comuni

I Comuni possono scaricare dal Portale per i Comuni lo schema XML per il popolamento offline di ANCSU.
Oltre al file XSD il file ZIP contiene due documenti PDF, uno dei quali, a giudicare dal nome del file, è superato:
image
Nei documenti PDF e nello schema XSD non c’è traccia di istruzioni su come debba essere compilato il file XML, quindi occorre tirare a indovinare.

Le validazioni presenti nel file XSD, (la cui formulazione è generoso definire imbarazzante) consentono di inviare qualsiasi spazzatura, a patto che sia correttamente formattata.

A questo si aggiunga che non si trova alcuna traccia delle coordinate del numero civico!

@lilloraffa

Seguono alcune osservazioni (superficiali) sul file XSD (che allego in formato immagine)

  • <xs:element name="codcom"/>: si dovrebbe trattare del Comune catastale, non è prevista alcuna validazione. Non si pretende una enumeration, ma almeno un <xs:pattern value="[A-Z]{1}\d{3}"/>
  • <xs:element name=“progr_nazionale” minOccurs=“0”>: dovrebbe essere un numero intero, viene accettato qualsiasi valore. L’annotazione <xs:documentation>obbligatorio per tutte le operazioni tranne Inserimento</xs:documentation> ci informa sul fatto che nello schema le operazioni possibili non vengono descritte formalmente.
  • <xs:element name="progr_strada" minOccurs="0"/>: dovrebbe essere un numero intero, viene accettato qualsiasi valore.
  • <xs:element name="dug" minOccurs="0"/>: l’elenco delle DUG è stato definito, ma non viene definita una enumeration, viene accettato qualsiasi valore.
  • <xs:element name="denom_in_lingua" minOccurs="0"/> e <xs:element name="denom_in_lingua2" minOccurs="0"/> non fanno uso della cardinalità e non ci informano di quale sia la lingua utilizzata.
  • <xs:element name="provvedimento" minOccurs="0"> la data del provvedimento è una stringa libera, così come il flag_delibera
  • <xs:element name="operazione">: il dominio dei valori ammessi è inserito in un’annotazione
  • <xs:element name=“progr_civico” minOccurs=“0”>: dovrebbe essere un numero intero, viene accettato qualsiasi valore. L’annotazione <xs:documentation>obbligatorio per tutte le operazioni tranne Inserimento</xs:documentation> ci informa sul fatto che nello schema le operazioni possibili non vengono descritte formalmente.
  • <xs:element name="esponente" minOccurs="0"/> il documento PDF recita: un solo carattere alfabetico o una stringa corrispondente ad un avverbio numerale (bis, ter, quater, …)
    ma non c’è traccia di <xs:pattern> o di enumeration.
  • <xs:element name="specificita" minOccurs="0"/> il documento PDF recita: utilizzabili solo le stringhe: ROSSO; NERO; R, N. ma non c’è traccia di <xs:pattern> o di enumeration.
  • <xs:element name="metrico" minOccurs="0"/>: dovrebbe essere un numero intero, viene accettato qualsiasi valore.
  • <xs:element name="snc" minOccurs="0"/>: nel documento PDF sono definite regole di cui non c’è traccia nell’XSD
  • <xs:element name="sezione_censimento" minOccurs="0"/> nel documento PDF si dice che è definita su un dominio, ma non c’è traccia del dominio.
  • <xs:element name="operazione_civico"> L’annotazione <xs:documentation>I=inserimento R=rettifica S=soppressione A=riassegnaz. accesi</xs:documentation> ci informa sul fatto che nello schema le operazioni possibili non vengono descritte formalmente.
1 Mi Piace

considerazioni interessanti.

aggiungo una domanda: perché questi schemi non sono pubblicati in github?

3 Mi Piace

Come al solito @emmedi scova cose interessanti. In effetti un xsd di questo tipo è quasi inutile. Non me ne vogliano gli estensori ma forse un piccolo sforzo in più non avrebbe guastato. Almeno per evitare di riempire le banche dati con schifezze e non dare l’impressione di una certa sciatteria.
Credo che su cose di questo tipo andrebbe riposta maggiore attenzione, si rischia di non essere poi credibili quando si parla di open data, cultura del dato ecc. ecc.

2 Mi Piace