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