Struttura di una normativa di catalogazione in formato XML

Transcript

Struttura di una normativa di catalogazione in formato XML
Struttura di una normativa di catalogazione in formato XML-schema
2014
Struttura di una normativa di catalogazione
in formato XML-schema
1
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
Sommario
Obiettivo del presente documento ..................................................................................................................... 3
Struttura generale dello schema XSD ................................................................................................................ 3
Schema per il controllo della sequenza degli elementi, delle ripetitività e delle obbligatorietà assolute di
una scheda ..................................................................................................................................................... 3
Struttura delle schede................................................................................................................................. 4
Elementi semplici o strutturati ............................................................................................................... 4
Obbligatorietà e ripetitività .................................................................................................................... 5
Elementi semplici collegati ad un vocabolario ...................................................................................... 7
Elementi semplici con regole di compilazione ...................................................................................... 7
Esempi riassuntivi ..................................................................................................................................... 8
Scheda A 3.00 – paragrafo CD .............................................................................................................. 8
Scheda A 3.00 – campo strutturato LST.............................................................................................. 10
2
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
Obiettivo del presente documento
Il trasferimento fra differenti sistemi dei dati registrati nei modelli ICCD (schede di catalogo, schede di
Authority file, altre normative) e della documentazione multimediale ad essi associata, può avvenire per
mezzo di processi di esportazione e importazione e richiede l’adesione alle regole e agli standard definiti
dall’Istituto, che descrivono in modo non ambiguo il formato degli oggetti da scambiare e i requisiti che tali
oggetti devono soddisfare.
ICCD ha individuato una modalità per il trasferimento dei dati catalografici fra sistemi differenti attraverso
insiemi di file (pacchetti), in cui ciascun file è memorizzato in formato XML ed esprime le regole standard
per il trasferimento e per la descrizione delle informazioni registrate nei tracciati delle diverse normative.
Questo documento descrive l’XML-schema di un file XML contenente gli elementi (paragrafi, campi e
sottocampi) previsti nel tracciato di una normativa di catalogazione MIBACT-ICCD.
Possono essere proposte due differenti versioni di tale schema, in grado di controllare alternativamente:
1.
la sequenza degli elementi del tracciato, le loro ripetitività e le obbligatorietà assolute di una sola
scheda;
2.
la sequenza degli elementi del tracciato, le ripetitività e le obbligatorietà assolute di un pacchetto di
schede, secondo lo standard di trasferimento in formato XML;
In questo documento viene illustrata la versione dello schema di cui al punto 1, corredata di esempi.
Gli XML-schema proposti non effettuano in modo automatico tutti i controlli necessari alla verifica di una
normativa, ma solamente quelli relativi alla struttura e alla presenza di elementi obbligatori.
Altri controlli, potranno essere eseguiti applicativamente, sulla base dei vincoli comunque descritti nel XMLSchema tramite i tag xs:attribute, e riguardano:
-
le lunghezze;
-
le obbligatorietà (alternative e di contesto);
-
i riferimenti a vocabolari;
-
il rispetto delle regole sintattiche.
Per approfondimenti e completezza dell’informazione sulle norme per il trasferimento dei dati è in fase di
preparazione un documento che descrive in modo più accurato l’intero processo di trasferimento di dati
catalografici.
Struttura generale dello schema XSD
Lo schema XSD descrive una normativa catalografica specificando il modo in cui essa è articolata in una
struttura ad albero di elementi annidati gli uni negli altri; l’XSD viene utilizzato per verificare la struttura di
un file XML contenente schede scambiate in formato XML-standard.
La modalità di codifica scelta è quella ISO-8859-1, che descrive ciascun carattere come sequenza di 1 byte.
In futuro ICCD si propone di modificare tale codifica in una compatibile con lo standard Unicode (UTF).
3
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
Schema per il controllo della sequenza degli elementi, delle ripetitività e delle
obbligatorietà assolute di una scheda
Tale schema è in grado di validare la struttura di una singola scheda, verificando la corretta sequenza delle
informazioni, la presenza di elementi con obbligatorietà assoluta, la possibilità di ripetere determinate
strutture e alcune caratteristiche dei diversi elementi presenti, come la lunghezza dei campi.
Lo schema contiene inoltre tutte le informazioni necessarie al controllo formale delle schede stesse, pur
senza automatizzare i necessari controlli. In particolare sono presenti informazioni complete relative ad
obbligatorietà di contesto e alternative e informazioni in merito ai vocabolari utilizzati.
Struttura delle schede
La struttura della scheda (tag SCHEDA) è descritta tramite un costrutto <xs:complexType> che a sua volta si
articola in una serie di elementi annidati (costrutto <xs:sequence>).
Tutti gli elementi (descritti come <xs:element …>) sono identificati tramite un attributo identificativo
name; si noti che nelle normative di catalogazione tutti gli elementi di primo livello sono identificati con 2
caratteri, quelli di secondo livello con 3 caratteri e così via, aumentando la lunghezza dell’identificativo al
crescere del livello dell’elemento. Nel XSD della normativa A 3.00, ad esempio, al primo livello sono
presenti in successione gli elementi <xs:element name="CD" …>, <xs:element name="RV" …>, ecc.
Elementi semplici o strutturati
Un elemento può appartenere ad un tipo base <xs:simpleContent> oppure ad un tipo complesso, ovvero
articolato in altri sottocampi <xs:sequence>.
Elemento semplice
Nel caso di un tipo base vengono anche indicati il nome del tipo ed eventualmente alcune limitazioni sulle
proprietà dei dati immessi; ad esempio per l’elemento CD/ESC [Ente schedatore] (presente nelle normative
che descrivono le schede di catalogo) è presente l’indicazione:
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="len" type="xs:string" use="optional" fixed="0,25" />
<xs:attribute name="node_visibility" type="xs:string" use="optional" fixed="1" />
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
</xs:extension>
</xs:simpleContent>
che sta ad indicare che tale elemento è costituito da una stringa di testo, con le seguenti caratteristiche
aggiuntive:
- lunghezza massima di 25 caratteri;
-
livello di visibilità, secondo la normativa ICCD, pari a 1 (massima visibilità);
-
obbligatorietà assoluta;
Elemento complesso
Un tipo complesso è utilizzato quando un elemento contiene dei sotto-elementi con il costrutto
<xs:sequence>.
Ad esempio per l’elemento CD/NCT [CODICE UNIVOCO] (previsto in tutte le normative relative alle
schede di catalogo) è presente l’indicazione:
<xs:sequence>
4
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
<xs:element name="NCTR" id="camposemplice_CD_NCT_NCTR" minOccurs="1"
maxOccurs="1">
…
</xs:element>
<xs:element name="NCTN" id="camposemplice_CD_NCT_NCTN" minOccurs="1"
maxOccurs="1">
…
</xs:element>
<xs:element name="NCTS" id="camposemplice_CD_NCT_NCTS" minOccurs="0"
maxOccurs="1">
…
</xs:element>
</xs:sequence>
che descrive i tre sottocampi NCTR e NCTN (obbligatori) e NCTS (facoltativo).
Obbligatorietà e ripetitività
Per ciascun elemento sono anche indicati il numero minimo e massimo di occorrenze tramite gli attributi
minOccurs e maxOccurs; in questa versione dello schema (in grado di controllare oltre alla struttura anche
le obbligatorietà assolute degli elementi) tali informazioni indicano sia la presenza obbligatoria di alcuni
elementi, che la possibilità di ripetereli:
-
minOccurs può assumere i valori [0] per indicare un campo “non obbligatorio assoluto” oppure [1]
per indicare un campo “obbligatorio assoluto”;
-
maxOccurs può assumere i valori [1] per indicare un campo “non ripetitivo” oppure [unbounded]
per indicare un campo “ripetitivo”.
Un esempio di quanto indicato è dato dal seguente frammento di XML-Schema relativo al paragrafo
CD [CODICI]della normativa OA 3.00:
<xs:element name="CD" id="paragrafo_CD" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="TSK" id="camposemplice_OA_CD_TSK" minOccurs="1" maxOccurs="1">
…
</xs:element>
…
</xs:sequence>
<xs:attribute name="alias" type="xs:string" use="optional" fixed="CODICI" />
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
</xs:complexType>
</xs:element>
che è obbligatorio assoluto ( minOccurs="1") e non ripetitivo (maxOccurs="1").
Differentemente il campo AUT [Autore] descritto da:
<xs:element name="AUT" id="campostrutturato_AU_AUT" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
…
</xs:sequence>
<xs:attribute name="alias" type="xs:string" use="optional" fixed="AUTORE" />
<xs:attribute name="node_alternativeMandatory" type="xs:string" use="optional" fixed="1" />
</xs:complexType>
5
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
</xs:element>
non è obbligatorio assoluto ( minOccurs="0"), ma è ripetitivo (maxOccurs="unbounded").
Obbligatorietà di contesto
Un altro tipo di obbligatorietà è quella cosiddetta di contesto. Consideriamo ad esempio il campo strutturato
RSE [RELAZIONI DIRETTE] della normativa A 3.00 che non è obbligatorio assoluto; esso include i
sotto-campi RSER [Tipo relazione], RSET [Tipo scheda] e RSEC [Codice bene]. Questi campi devono tutti
rispettare il vincolo dell’obbligatorietà di contesto, ovvero se il campo strutturato RSE, che li contiene, ospita
un qualsiasi valore (non è vuoto) tutti questi 3 campi devono essere valorizzati.
Nel seguente frammento di schema XML tale proprietà è espressa attraverso l’attributo
node_contextMandatory che assume il valore true.
<xs:element name="RSE" id="campostrutturato_RV_RSE" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="RSER" id="camposemplice_RV_RSE_RSER" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
…
<xs:attribute name="node_contextMandatory" type="xs:string" use="optional" fixed="true"
/>
…
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="RSET" id="camposemplice_RV_RSE_RSET" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
…
<xs:attribute name="node_contextMandatory" type="xs:string" use="optional" fixed="true"
/>
…
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="RSEC" id="camposemplice_RV_RSE_RSEC" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
…
<xs:attribute name="node_contextMandatory" type="xs:string" use="optional" fixed="true"
/>
…
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="alias" type="xs:string" use="optional" fixed="RELAZIONI DIRETTE" />
</xs:complexType>
</xs:element>
6
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
Obbligatorietà alternativa
Un ultimo tipo di obbligatorietà è quella alternativa. Consideriamo ad esempio il paragrafo
AU [DEFINIZIONE CULTURALE] della normativa OA 3.00 che è obbligatorio assoluto; esso include, fra
gli altri, i campi AUT [Autore], ATB [Ambito culturale] e EDT [Editori/Stampatori]: per tali campi la
normativa prevede l’obbligatorietà alternativa, che indica che almeno uno di essi deve essere compilato
(rispettando eventuali ulteriori regole previste per i sottocampi contenuti).
Nel seguente frammento di schema tale proprietà è espressa attraverso l’attributo alternativeMandatory che
assume il valore 1.
<xs:element name="AU" id="paragrafo_AU" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="AUT" id="campostrutturato_AU_AUT" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
…
<xs:attribute name="alias" type="xs:string" use="optional" fixed="AUTORE" />
<xs:attribute name="node_alternativeMandatory" type="xs:string" use="optional"
fixed="1" />
</xs:complexType>
</xs:element>
<xs:element name="ATB" id="campostrutturato_AU_ATB" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
…
<xs:attribute name="alias" type="xs:string" use="optional" fixed="AMBITO CULTURALE" />
<xs:attribute name="node_alternativeMandatory" type="xs:string" use="optional" fixed="1"
/>
</xs:complexType>
…
<xs:element name="EDT" id="campostrutturato_AU_EDT" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
…
<xs:attribute name="alias" type="xs:string" use="optional" fixed="EDITORI/STAMPATORI" />
<xs:attribute name="node_alternativeMandatory" type="xs:string" use="optional" fixed="1"
/>
</xs:complexType>
</xs:element>
Elementi semplici collegati ad un vocabolario
Come ulteriore indicazione, in corrispondenza di alcuni elementi, sono presenti degli attributi che, nel caso
in cui i valori dell’elemento debbano fare riferimento ad uno specifico vocabolario, riportano il codice
identificativo di quest’ultimo e il livello da cui i valori dovranno essere estratti (con riferimento alla struttura
di ciascun specifico vocabolario rilasciata da ICCD).
Ad esempio per l’elemento TSK [Tipo Scheda] della normativa A 3.00 è presente l’indicazione:
<xs:element name="TSK" id="camposemplice_A_CD_TSK" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="binding_thesId" type="xs:string" use="optional" fixed="VC_TSK_A" />
<xs:attribute name="binding_levelExpr" type="xs:string" use="optional" fixed="$1" />
…
Elementi semplici con regole di compilazione
Alcuni elementi possono contenere dei valori testuali che rispondono a regole sintattiche ben precise; per
questi elementi può essere definita un’espressione regolare, sempre come attributo del campo. L’esempio che
7
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
segue, per l’elemento CMPD [Data] della normativa RA 3.00, indica che il testo contenente la data deve
essere formato da al più quattro caratteri numerici.
<xs:element name="CMPD" id="camposemplice_CM_CMP_CMPD" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="alias" type="xs:string" use="optional" fixed="Data" />
<xs:attribute name="len" type="xs:string" use="optional" fixed="0,4" />
<xs:attribute name="node_visibility" type="xs:string" use="optional" fixed="1" />
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
<xs:attribute name="regularExpr_pattern" type="xs:string" use="optional" fixed="([09]{4})" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
Esempi riassuntivi
Scheda A 3.00 – paragrafo CD
Consideriamo ora a titolo di esempio il caso del paragrafo CD [Codici] estratto dalla normativa A 3.00; la
sua struttura è descritta dal seguente segmento del relativo XSD schema:
<xs:element name="CD" id="paragrafo_CD" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="TSK" id="camposemplice_A_CD_TSK" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="len" type="xs:string" use="optional" fixed="0,4" />
<xs:attribute name="node_visibility" type="xs:string" use="optional" fixed="1" />
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
<xs:attribute name="binding_thesId" type="xs:string" use="optional" fixed="VC_TSK_A" />
<xs:attribute name="binding_levelExpr" type="xs:string" use="optional" fixed="$1" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="LIR" id="camposemplice_A_CD_LIR" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="len" type="xs:string" use="optional" fixed="0,5" />
<xs:attribute name="node_visibility" type="xs:string" use="optional" fixed="1" />
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
<xs:attribute name="binding_thesId" type="xs:string" use="optional" fixed="VC_LIR" />
<xs:attribute name="binding_levelExpr" type="xs:string" use="optional" fixed="$1" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="NCT" id="campostrutturato_CD_NCT" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
8
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
<xs:element name="NCTR" id="camposemplice_CD_NCT_NCTR" minOccurs="1"
maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="len" type="xs:string" use="optional" fixed="0,2" />
<xs:attribute name="node_visibility" type="xs:string" use="optional" fixed="1" />
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
<xs:attribute name="node_idSpecial" type="xs:string" use="optional" fixed="true" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="NCTN" id="camposemplice_CD_NCT_NCTN" minOccurs="1"
maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="len" type="xs:string" use="optional" fixed="0,8" />
<xs:attribute name="node_visibility" type="xs:string" use="optional" fixed="1" />
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
<xs:attribute name="node_idSpecial" type="xs:string" use="optional" fixed="true" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="NCTS" id="camposemplice_CD_NCT_NCTS" minOccurs="0"
maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="len" type="xs:string" use="optional" fixed="0,2" />
<xs:attribute name="node_visibility" type="xs:string" use="optional" fixed="1" />
<xs:attribute name="node_idSpecial" type="xs:string" use="optional" fixed="true" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
</xs:complexType>
</xs:element>
<xs:element name="ESC" id="camposemplice_A_CD_ESC" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="len" type="xs:string" use="optional" fixed="0,25" />
<xs:attribute name="node_visibility" type="xs:string" use="optional" fixed="1" />
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ECP" id="camposemplice_A_CD_ECP" minOccurs="1"
maxOccurs="unbounded">
<xs:complexType>
9
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="len" type="xs:string" use="optional" fixed="0,25" />
<xs:attribute name="node_visibility" type="xs:string" use="optional" fixed="1" />
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
<xs:attribute name="node_idSpecial" type="xs:string" use="optional" fixed="true" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="node_linkMandatory" type="xs:string" use="optional" fixed="true" />
</xs:complexType>
</xs:element>
La struttura così rappresentata indica che l’elemento CD contiene gli elementi annidati:

TSK

LIR

NCT

ESC

ECP
Per l’elemento TSK, ad esempio, ci dice che:

è obbligatorio (minOccurs="1" maxOccurs="1">, ma anche node_linkMandatory : true);

che i valori ammissibili per la sua compilazione devono essere rinvenuti nel primo livello del
vocabolario identificato come "VC_TSK_A" (binding_thesId : VC_TSK_A e binding_levelExpr
: $1);

che esso può essere valorizzato con un testo di lunghezza massima di 4 caratteri
(<xs:attribute name="len" type="xs:string" use="optional" fixed="0,4" />);
Per l’elemento NCT invece possiamo capire che:

è un elemento obbligatorio (minOccurs="1");

è un elemento non ripetitivo (maxOccurs="1">);

a sua volta composto da una sequenza di elementi (<xs:complexType> <xs:sequence>), articolata
negli elementi (NCTR, NCTN, NCTS);
Scheda A 3.00 – campo strutturato LST
Scorrendo ulteriormente la struttura, sempre all’interno dell’elemento scheda della normativa A 3.00, è
possibile rinvenire un esempio di elemento ripetitivo <xs:element name="LST" minOccurs="0"
maxOccurs="unbounded">, che contiene a sua volta diversi sottoelementi, sia obbligatori che facoltativi.
<xs:element name="LST" id="camposemplice_A_LS_LST" minOccurs="0"
maxOccurs="1">
10
Istituto Centrale per il Catalogo e la Documentazione
Struttura di una normativa di catalogazione in formato XML-schema
2014
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
…
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
11
Istituto Centrale per il Catalogo e la Documentazione