Cosa c'è di nuovo in XML Schema 1.1?

Dall'introduzione di XML Schema 1.0, questo standard è stato ampiamente adottato. Nel corso degli anni, gli sviluppatori hanno richiesto diverse modifiche, in particolare la possibilità di specificare e validare regole aziendali più dettagliate, nonché di consentire un'evoluzione più flessibile degli schemi. La raccomandazione XML Schema 1.1 include numerose modifiche e miglioramenti volti a risolvere questi problemi.

Esaminiamo le nuove funzionalità più importanti e alcune risorse utili per approfondire la conoscenza di XML Schema 1.1 o per iniziare subito a utilizzarlo.

Scoprite le novità introdotte in XML Schema 1.1

È disponibile una spiegazione dettagliata delle nuove funzionalità e dei miglioramenti presenti in XML Schema 1.1 nel nostro materiale gratuito Corso di formazione online sullo schema XML, a cui è possibile accedere in qualsiasi momento e che si può completare al proprio ritmo. Se siete sviluppatori di schemi esperti e desiderate semplicemente conoscere le novità e i miglioramenti introdotti in XSD 1.1, potete passare direttamente al capitolo 9. Questo corso è un ottimo modo per conoscere XML Schema 1.1 e per adattare rapidamente i vostri schemi, sfruttando le nuove funzionalità.

In questo articolo, spiegherò alcune delle funzionalità principali e vi mostrerò come implementare le nuove funzionalità utilizzando XMLSpy. Le versioni di XMLSpy a partire dalla 2014 offrono un supporto completo per XML Schema 1.1, inclusa la validazione dei file XSD e degli esempi XML basati su XML Schema 1.1, nonché strumenti di editing intelligenti per XSD 1.1 all'interno dell'editor grafico di XML Schema 1.1.

Affermazioni

Le asserzioni, chiamate anche co-vincoli, in XML Schema 1.1 consentono la validazione basata su regole delle politiche aziendali che coinvolgono più di un elemento. Queste regole sono definite utilizzando espressioni XPath. Ad esempio, è possibile utilizzare il nuovo elemento per verificare se una spesa è inferiore o uguale all'importo consentito, se una data rientra in un determinato intervallo di tempo, e così via. In questo esempio, l'asserzione specifica che l'ora di fine di una riunione deve essere successiva all'ora di inizio. È possibile visualizzare questa rappresentazione nella vista di progettazione di XML Schema qui:

E nel codice corrispondente:

È facile esaminare le asserzioni presenti in uno schema utilizzando la vista "Globals", che offre una scheda "Asserzioni" per i documenti XML Schema 1.1. È inoltre possibile aggiungere nuove asserzioni e selezionare lo spazio dei nomi XPath predefinito in questa sezione.

Oppure, è possibile definirle nella visualizzazione del modello di contenuto: fare clic con il tasto destro su un elemento nella visualizzazione del modello di contenuto e selezionare "Aggiungi asserzione figlio". È possibile definire il test XPath direttamente nel modello di contenuto tramite la finestra di supporto "Dettagli".

Questa capacità di definire e validare le regole aziendali è un vantaggio fondamentale di XML Schema 1.1, e questa visualizzazione grafica aiuta a guidare l'utente attraverso il processo.

Alternative forme del condizionale

Le alternative di tipo sono un'altra funzionalità progettata per rendere gli schemi XSD più potenti, aggiungendo una maggiore flessibilità. Queste permettono di assegnare dinamicamente un tipo a un elemento in base al valore di un attributo nel documento XML. L'elemento xs:alternative ha due attributi: type e test. Ecco un esempio utilizzando lo schema "Meeting" che abbiamo iniziato a definire in precedenza.

Se l'orario di fine della riunione è prima di mezzogiorno, il tipo di riunione è "RiunioneMattutina". Dopo mezzogiorno, è "RiunionePomeridiana". Per definire questo nel Progettista di schemi XML, Semplicemente, facciamo clic con il tasto destro sull'elemento "Meeting" e scegliamo "Aggiungi elemento figlio/alternativo". Utilizziamo l'assistente di inserimento "Dettagli" per inserire un'espressione XPath, e poi selezioniamo il tipo che verrà assegnato dinamicamente all'elemento dal menu a tendina "Tipo".

Ora, qualsiasi elemento "Meeting" in un'istanza XML con un orario di fine successivo alle 12:00:00 utilizzerà il tipo "MeetingType AfternoonMeeting". L'utilizzo di un editor grafico XSD semplifica la visualizzazione e la configurazione di queste relazioni.

Attributi a livello di schema

Lo schema XML 1.1 consente di definire un insieme di attributi predefiniti che vengono applicati automaticamente a ogni tipo complesso nello schema. Ad esempio, nel nostro schema "Meeting", è utile che gli attributi "startTime" e "endTime" si applichino a tutti gli elementi, senza doverli aggiungere manualmente, il che è laborioso e potenzialmente soggetto a errori, soprattutto in uno schema con un gran numero di elementi. L'elemento "xs:schema" in XML Schema 1.1 ha un elemento opzionale chiamato "defaultAttributes", che identifica un gruppo di attributi. (Se esiste un elemento specifico a cui non si desidera applicare l'attributo o gli attributi predefiniti, è possibile specificarlo impostando "defaultAttributesApply" su "false".) È facile aggiungere un gruppo di attributi e definire gli attributi predefiniti nella vista "Globals" dell'editor dello schema XML.

Successivamente, utilizzare la finestra di dialogo "Impostazioni dello schema", accessibile tramite il menu "Progettazione dello schema", per selezionare il gruppo di attributi che avete appena creato come attributi predefiniti, utilizzando un menu a tendina.

Di seguito sono riportati alcuni dei principali aggiornamenti introdotti da XML Schema 1.1. Altri includono attributi ereditabili, funzionalità migliorate per i gruppi di sostituzione, il tipo di dati xs:error e altro ancora. Tutti questi aspetti sono spiegati in dettaglio, con esempi pratici, nel capitolo 9 del corso di formazione online su XML Schema.

Ulteriori risorse e strumenti:

XML Schema 1.1 Recommendation XMLSpy XML Schema 1.1 Editor and validator RaptorXML XML Schema 1.1 Validation Server Free Online XML Schema 1.1 Training