È possibile aprire l'editor dello schema dei punti di estensione in due modi: come risultato della creazione di un nuovo punto di estensione oppure aprendo uno schema di punti di estensione esistente. Per convenzione, i nuovi schemi presentano lo stesso nome dell'ID del punto di estensione con un'estensione di file .exsd. Essi vengono inseriti nella directory schema della struttura della directory del plugin.
Quando un nuovo punto di estensione viene creato nel PDE, verrà creato anche il file di schema iniziale, mentre l'editor di schema verrà aperto per consentire le modifiche. Lo schema può essere definito al momento oppure successivamente. Uno schema di punti di estensione completo consente al PDE di offrire assistenza automatica agli utenti del punto di estensione.
L'editor di schema PDE si basa sugli stessi concetti dell'editor del manifest di plugin. Contiene due pagine di moduli e una pagina di origine. Dal momento che lo schema XML è molto dettagliato e può essere difficile da leggere nel modulo di origine, le pagine del modulo devono essere utilizzate per eseguire la maggior parte delle modifiche. La pagina di origine è utile per la lettura del codice di origine ottenuto.
In precedenza sono stati creati il punto di estensione "Sample Parsers" e lo schema iniziale. Ora è possibile aprire lo schema andando alla cartella schema del progetto e facendo doppio clic sul file parsers.exsd. In questo modo verrà aperto l'editor di schema.
Verranno eseguite le seguenti operazioni:
Ogni schema dei punti di estensione inizia con una dichiarazione dell'elemento "extension". Verrà aggiunto un nuovo elemento XML denominato "parser."
A questo punto l'editor di schema dovrebbe apparire così:
Verrà ora aggiunto un ulteriore attributo che accetta i valori da un elenco di scelte. Ciò significa che è necessario creare una limitazione dell'enumerazione del tipo string di base. Inoltre, verrà impostato un valore predefinito per l'attributo.
La finestra di dialogo delle restrizioni dovrebbe apparire così:
Quando la finestra di dialogo viene chiusa, modificare l'attributo "use" in "default" e l'attributo "value" in "always." In questo modo viene stabilito il valore predefinito. Tenere presente che la riga di stato mostra un messaggio di errore durante la digitazione del valore in quanto limita i valori validi alle tre scelte di enumerazione. Terminata l'immissione, il messaggio di errore dovrebbe sparire poiché "always" è un valore valido.
Dopo aver definito tutti gli elementi e gli attributi, è necessario definire la grammatica. L'obiettivo è di definire che l'elemento "extension" può presentare un numero indefinito di elementi "parser" come elementi secondari.
Dopo aver definito la grammatica, l'approssimazione DTD situata al di sotto della sezione della grammatica mostra come la grammatica per l'elemento selezionata apparirà nella DTD. Queste informazioni vengono fornite per aiutare gli sviluppatori che hanno più confidenza con le DTD che con gli schemi XML.
Dopo aver definito elementi, attributi e grammatica validi, è necessario fornire alcune informazioni sul punto di estensione. Esistono due tipi di frammenti di documentazione dello schema:
Il primo tipo di frammento viene fornito nella pagina Definizione del manifest dello schema. Mentre si selezionano elementi e attributi, è possibile aggiungere un breve testo nella sezione "Descrizione". Il formato previsto è HTML (con Javadoc) e il testo verrà copiato così come appare nel documento di riferimento finale.
A questo punto è necessario fornire una breve descrizione per lo stesso punto di estensione. Per fare ciò, passare alla pagina Documentazione:
Questo punto di estensione viene utilizzato per collegare programmi di analisi aggiuntivi.
Al momento i programmi di analisi non sono funzionanti, ma vengono utilizzati esclusivamente come esempio dello schema di punti di estensione.
Di seguito è riportato un esempio dell'utilizzo del punto di estensione:
<p>
<pre>
<extension point="com.example.xyz.parsers">
<parser
id="com.example.xyz.parser1"
name="Sample Parser 1"
class="com.example.xyz.SampleParser1">
</parser>
</extension>
</pre>
</p>
Premere Applica.
I plugin che intendono estendere questo punto di estensione devono implementare l'interfaccia
<samp>com.example.xyz.IParser</samp>.
Il plugin XYZ fornisce l'implementazione predefinita del programma di analisi.
Premere Applica.Nota: quando si forniscono esempi è necessario fare delle considerazioni speciali. Normalmente, il PDE considera il testo fornito come HTML primitivo e non rispetta la nuova riga e lo spazio con grandezza superiore a un carattere (cioè, lo spazio che è possibile ignorare). Questo comportamento è prevedibile quando riguarda il testo regolare, ma può creare dei problemi quando vengono forniti degli esempi, in cui la separazione mediante spazi e l'allineamento verticale sono importanti per la creazione di un esempio corretto. Il PDE consente di trovare un compromesso: se rileva il tag HTML <pre>, assumerà il contenuto nella sua forma effettiva (preservando tutti i caratteri senza alcuna modifica) fino al tag di chiusura </pre>. Questo è il motivo per cui è possibile fornire un esempio come quello descritto in precedenza ed essere sicuri che apparirà correttamente nel documento di riferimento finale.
Sarà già stato notato che, mentre si immette la documentazione, molti elementi nella vista Struttura dell'editor acquisiscono la sovrapposizione di un immagine a forma di "penna". Questo piccolo indicatore informa che l'elemento in questione presenta del testo associato. Si tratta di un modo rapido per verificare se la documentazione non è presente in qualche parte del documento.
Dopo aver terminato con la documentazione, è possibile esaminare la documentazione di riferimento. Sono disponibili due metodi. In tutte le fasi dello svolgimento del proprio lavoro, è possibile visualizzare in anteprima il documento di riferimento selezionando la voce Anteprima documento di riferimento dal menu di scelta rapida. In alternativa, è possibile impostare le preferenze del PDE (Preferenze>Sviluppo plugin>Compilatori nella scheda Schema) per creare automaticamente documentazione di riferimento su ogni modifica del file di schema. Indipendentemente dal metodo di creazione utilizzato, il documento ottenuto per questo esempio avrebbe questa struttura.