Schema di punti di estensione

Le estensioni costituiscono il meccanismo chiave utilizzato da un plugin per aggiungere nuove funzioni alla piattaforma. Le estensioni non possono essere create in modo arbitrario.  Esse vengono dichiarate utilizzando una chiara specifica definita da un punto di estensione.

Ogni estensione deve essere conforme alla specifica del punto di estensione  Ogni punto diestensione definisce attributi e valori previsti che devono essere dichiarati da un'estensione.  Tali informazioni sono conservate nel registro dei plugin della piattaforma.  I fornitori dei punti di estensione eseguono una query di questi valori dal registro. Pertanto è importante verificare che il plugin abbia fornito le impostazioni previste.

Nella forma più rudimentale, la dichiarazione di un punto di estensione è molto semplice.  Essa definisce l'ID e il nome del punto di estensione.  Qualsiasi altra informazione prevista dal punto di estensione è specifica di quel punto di estensione ed è documentata altrove.  (Vedere Riferimento al punto di estensione della piattaforma per le definizioni del punto di estensione della piattaforma.)

La documentazione di riferimento è utile, ma non fornisce alcun supporto in forma di programmazione per la convalida della specifica di un'estensione. Per questo motivo, il PDE introduce uno schema di punti di estensione che descrive i punti di estensione in un formato adatto per l'elaborazione automatizzata.

Lo schema di punti di estensione è un valido schema XML, come definito dalla specifica W3C. Tuttavia la specifica completa dello schema XML è molto complessa e spesso superflua per questo particolare impiego. È per questo che il PDE utilizza solo un sottoinsieme delle funzioni dello schema XML.  Ogni schema di punti di estensione è uno schema XML valido, ma il PDE non utilizza tutte le funzioni disponibili.

Vantaggi degli schemi dei punti di estensione

La descrizione del proprio punto di estensione mediante lo schema XML dei punti di estensione del PDE presenta numerosi vantaggi:

  1. La grammatica del punto di estensione consente di esprimere formalmente elementi, attributi e tipi. Queste informazioni possono essere utilizzate dagli strumenti per convalidare estensioni o per fornire assistenza durante la creazione dell'estensione.
  2. Lo schema XML fornisce un'annotazione di documentazione simile al Javadoc del codice di origine Java. Questo meccanismo unisce il testo breve per elementi e attributi validi alla dichiarazione di tali elementi e attributi. È molto più semplice mantenere la sincronizzazione della documentazione in quanto la rimozione di un attributo rimuoverà anche la documentazione relativa all'attributo.  Non è necessario aggiornare il documento di riferimento.
  3. La documentazione di riferimento può essere generata.  Nel PDE è disponibile uno strumento che tiene traccia delle modifiche apportate agli schemi di punti di estensione e che aggiorna al momento la documentazione di riferimento.
  4. È possibile fornire ulteriori metadati sul punto di estensione che possono essere utilizzati dagli strumenti che elaborano lo schema.  Il PDE utilizza questo meccanismo per aggiungere ulteriori informazioni su elementi e attributi. Ad esempio, se un attributo è contrassegnato come "Java", il PDE può fornire assistenza durante l'impostazione del valore di tale attributo, interagendo con le funzioni della piattaforma Java.

Limitazioni del supporto Schema XML del PDE

Il PDE utilizza un piccolo sottoinsieme dello schema XML.  L'utilizzo delle funzioni dello schema XML completo risulterebbe eccessivo in questo particolare caso. Il sottoinsieme consente quasi un'associazione 1->1 da DTD a schemi, senza limitazioni DTD. Di seguito sono riportate le principali limitazioni dello schema dei punti di estensione del PDE:

  1. Sono consentite solo dichiarazioni di elementi globali.
  2. Sono consentite solo le dichiarazioni di attributi locali.  Gli attributi globali non possono essere modificati.
  3. Sono supportati i seguenti compositori: all, sequence, choice e group.
  4. Non esiste alcun supporto del tipo globale.  I tipi devono essere dichiarati e utilizzati immediatamente.
  5. Gli attributi possono avere solo tipi string e boolean.
  6. Se un attributo è di tipo string, è supportata solo la restrizione enumeration.

Se si scrive uno schema XML utilizzando queste restrizioni, si noterà che il file risultante assomiglierà molto a una DTD equivalente che definisce la stessa grammatica. Il vantaggio dello schema è nelle annotazioni (documentazione e metadati). Un ulteriore vantaggio consiste nel fatto che lo schema XML è a sua volta scritto in codice XML, rendendone molto più semplice l'elaborazione e la consultazione.

L'elenco precedente è solo di riferimento. Probabilmente l'utente definirà uno schema XML utilizzando l'editor di schema PDE, che garantirà la creazione del file corretto.