Den Editor für das Erweiterungspunktschema können Sie auf zwei unterschiedlichen Wegen öffnen: als Nebenprodukt bei der Erstellung eines neuen Erweiterungspunktes oder durch das Öffnen eines vorhandenen Erweiterungspunktschemas. Gemäß der Konvention ist der Name eines neuen Schemas mit der Erweiterungspunkt-ID identisch, an die die Dateierweiterung .exsd angehängt wird. Solche Schemata werden in das Verzeichnis schema der Verzeichnisstruktur Ihres Plug-ins gestellt.
Sobald in PDE ein neues Erweiterungspunktschema erstellt wird, wird auch die Schemadatei erstellt und der Schemaeditor wird zur Bearbeitung geöffnet. Sie können das Schema sofort definieren, aber auch schließen und später bearbeiten. Durch die Angabe eines vollständigen Erweiterungsschemas kann PDE den Benutzern Ihres Erweiterungspunkts eine automatisierte Unterstützung anbieten.
Der PDE-Schemaeditor basiert auf denselben Konzepten wie der Editor für Plug-in-Manifeste. Er enthält zwei Formatseiten und eine Quellenseite. Da das XML-Schema sehr ausführlich und in der Quellenform möglicherweise nur schwer lesbar ist, sollten Sie den Großteil der Bearbeitung auf den Formatseiten vornehmen. Die Quellenseite ist für das Lesen des resultierenden Quellcodes nützlich.
Sie haben bereits den Erweiterungspunkt "Beispiel-Parser" und das Ausgangsschema erstellt. Jetzt können Sie das Schema öffnen, indem Sie in den Ordner schema Ihres Projekts wechseln und auf die Datei parsers.exsd doppelklicken. Daraufhin wird der Schemaeditor geöffnet.
Jetzt werden Sie Folgendes ausführen:
Jedes Erweiterungspunktschema beginnt mit der Deklaration des Elements "extension". Sie fügen ein neues XML-Element namens "parser" hinzu.
Bis hierher sollte der Schemaeditor etwa so aussehen:
Jetzt fügen Sie ein zusätzliche Attribut hinzu, das Werte aus einer diskreten Auswahlliste annimmt.Das bedeutet, dass Sie eine Aufzählungseinschränkung für den Basistyp string erstellen müssen.Außerdem legen Sie einen Standardwert für das Attribut fest.
Der Dialog "Einschränkung" sollte etwa so aussehen:
Wenn der Dialog geschlossen wurde, ändern Sie das Attribut "use" in "default" und das Attribut "value" in "always." Hierdurch wird der Standardwert definiert.Sie werden bemerken, dass in der Statuszeile einen Fehlernachricht erscheint, wenn Sie den Wert eingeben, da die gültigen Werte auf die drei Optionen für "enumeration" beschränkt sind. Sobald Sie die Eingabe beendet haben, wird die Fehlernachricht jedoch ausgeblendet, da "always" ein gültiger Wert ist.
Nachdem Sie alle Elemente und Attribute angegeben haben, müssen Sie jetzt die Grammatik definieren. Ziel der Definition ist es, dass das Element "extension" eine beliebige Anzahl von Elementen "parser" als untergeordnete Elemente enthalten kann.
Nachdem Sie die Grammatik definiert haben, zeigt die DTD-Annäherung unter dem Grammatikabschnitt an, wie die Grammatik für das ausgewählte Element in DTD aussehen würde. Diese Informationen sind für Entwickler gedacht, die mit DTDs vertrauter als mit XML-Schemata sind.
Nachdem Sie gültige Elemente, Attribute und die Grammatik definiert haben, müssen Sie jetzt einige Informationen zum Erweiterungspunkt angeben. Es gibt zwei Typen von Dokumentationsausschnitten für Schemata:
Der erste Ausschnitttyp wird auf der Seite "Definition" des Schemamanifests angegeben. Wenn Sie Elemente und Attribute auswählen, können Sie im Abschnitt "Beschreibung" einen kurzen Text über sie hinzufügen. Das erwartete Format sind HTML-Rohdaten (wie bei Javadoc). Der Text wird so in das endgültige Referenzdokument kopiert, wie er hier angegeben ist.
Jetzt müssen Sie noch eine kurze Textbeschreibung für den eigentlichen Erweiterungspunkt angeben. Hierzu wechseln Sie auf die Seite "Dokumentation":
An diesem Erweiterungspunkt können zusätzliche Parser integriert
werden.
Die Parser führen keine Aktionen aus. Sie wurden lediglich
als Beispiel für ein Erweiterungspunktschema hinzugefügt.
Das folgende Beispiel veranschaulicht die Verwendung
des Erweiterungspunktes:
<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>
Klicken Sie auf Anwenden.
Plug-ins, die diesen Erweiterungspunkt erweitern sollen, müssen die
Schnittstelle <samp>com.example.xyz.IParser</samp>
implementieren.
Das Plug-in "XYZ" stellt eine Standardimplementierung des Parsers zur Verfügung.
Klicken Sie auf Anwenden.Hinweis: Beim Angeben von Beispielen müssen besondere Aspekte beachtet werden. Normalerweise behandelt PDE den angegebenen Text als HTML-Rohdaten und respektiert weder neue Zeilen noch Leerräume, die mehr als ein Zeichen umfassen (Leerräume werden also ignoriert). Bei herkömmlichem Text ist diese Funktionsweise erwünscht. Wenn Sie Beispiele angeben wollen, bei denen zur optimalen Darstellung Tabulatorschritte und vertikale Ausrichtungen eingesetzt werden müssen, kann dies jedoch ziemlich lästig sein. PDE bietet für diese Situation einen Kompromiss: Falls PDE das HTML-Tag <pre> findet, wird der Inhalt wie vorliegend übernommen (alle Zeichen bleiben unverändert erhalten), bis das abschließende Tag </pre> erreicht wird. Auf dieses Weise können Sie ein Beispiel wie oben darstellt angeben und sich darauf verlassen, dass es auch im endgültigen Referenzdokument gut aussieht.
Vielleicht haben Sie beim Eingeben der Dokumentation bereits bemerkt, dass immer mehr Elemente im Editor der Sicht "Gliederung" durch ein Stift-Image überlagert wurden. Dieser kleine Anzeige weist Sie darauf hin, dass dem betreffenden Element Text zugeordnet ist. Auf diese Weise können Sie ganz schnell überprüfen, ob im Dokument noch Dokumentation fehlt.
Nachdem Sie die Dokumentation fertig gestellt haben, können Sie sich nun mit den Referenzinformationen befassen. Hierzu haben Sie zwei Möglichkeiten. Während der gesamten Bearbeitungszeit können Sie das Referenzdokument voranzeigen, indem Sie im Kontextmenü die Option "Vorschau auf Verweisdokument" auswählen. Alternativ können Sie auch die PDE-Benutzervorgaben ("Benutzervorgaben > Plug-in-Entwicklung > Compiler", Registerkarte "Schema") so definieren, dass bei jeder Änderung der Schemadatei die Referenzdokumentation automatisch erstellt wird. Unabhängig davon, mit welcher Methode Sie das Referenzdokument erstellen, entsteht ein Ergebnis, das Sie durch Auswahl dieses Links anzeigen können.