Schema di punti di estensione

Le estensioni costituiscono il meccanismo chiave utilizzato da un plug-in per aggiungere nuove funzioni alla piattaforma. Le estensioni non possono essere create arbitrariamente.  Queste vengono dichiarate utilizzando una chiara specifica definita mediante un punto di estensione.

Ogni estensione deve essere conforme alla specifica del punto di estensione che estende.  Ogni punto di estensione definisce attributi e valori previsti che devono essere dichiarati da un'estensione.  Queste informazioni vengono conservate nel registro di plug-in della piattaforma.  I provider dei punti di estensione effettuano la query di tali valori dal registro, quindi, è importante assicurarsi che il proprio plug-in abbia fornito le informazioni previste.

In un form rudimentale, una dichiarazione di punto di estensione è molto semplice.  Definisce l'id e il nome del punto di estensione.  Qualsiasi altra informazione prevista dal punto di estensione è specifica per tale punto di estensione ed è documentata in un altro punto.  Per le definizioni dei punti di estensione della piattaforma, fare riferimento alla sezione Riferimento dei punti 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, per la maggior parte, non necessaria per questo uso particolare. Per questo motivo, il PDE utilizza solo un sottoinsieme delle funzioni dello schema XML.  Ogni schema di punti di estensione rappresenta un valido schema XML, ma il PDE non ne utilizzerà tutte le funzioni disponibili.

Vantaggi degli schemi dei punti di estensione

Ci sono molti vantaggi nella descrizione del proprio punto di estensione utilizzando lo schema XML dei punti di estensione del PDE:

  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 sorgente Java. Questo meccanismo unisce il testo breve per elementi e attributi validi alla dichiarazione di tali elementi e attributi. È molto più semplice conservare la sincronizzazione della documentazione, poiché la rimozione di un attributo provocherà anche la rimozione della documentazione relativa all'attributo.  Non sarà quindi necessario aggiornare il documento di riferimento.
  3. È possibile generare la documentazione di riferimento.  Il PDE fornisce uno strumento che traccia le modifiche in schemi di punti di estensione e aggiorna sul momento la documentazione di riferimento.
  4. L'utente può fornire metadati aggiuntivi relativi al 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 una piccola parte dello schema XML.  L'utilizzo di tutte le funzioni dello schema XML completo sarebbe eccessivo in questo particolare caso. Il sottoinsieme consente quasi un mapping 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 dichiarazioni di attributi locali.  Gli attributi globali non possono essere dichiarati.
  3. Sono supportati i seguenti compositori: all, sequence, choice e group.
  4. Non esiste alcun supporto dei tipi globali.  I tipi devono essere dichiarati e immediatamente utilizzati.
  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.