XML Content-Assist

Gepostet am 7. August 2015

feature image

Das Erstellen von Murl Engine XML-Dateien kann manchmal etwas langwierig sein, speziell für Anfänger, die mit dem Syntax noch nicht vertraut sind. Um den Umgang zu vereinfachen, stellen wir nun ein komplettes XML Schema bereit, das die Beschreibung für all XML-Tags und Attribute beinhaltet. In Kombination mit einer geeigneten IDE profitieren Nutzer von allen "Intellisense" Code/Content-Assist Goodies wie automatischer Code-Vervollständigung, kontextabhängigen Auswahllisten, Tipps, Code-Validierung und Fehlerhervorhebung.

XSD Datei

Ein XML Schema (auch XSD, kurz für XML Schema Definition) beschreibt die Struktur eines XML-Dokuments und kann verwendet werden, um Regeln festzulegen, die ein gültiges XML-Dokument einhalten muss. XSD ist eine Empfehlung des W3C und wird von vielen IDEs und XML-Editoren unterstützt. Ein gutes Einstiegs-Tutorial zum Thema gibt es hier: www.w3schools.com/schema/

Wir stellen nun eine XSD-Datei (murl_graph_nodes.xsd) zur Verfügung, welche die Struktur aller Murl Engine XML Ressource und Konfigurations Dateien beschreibt:

Die XSD-Datei wird als Teil der Murl Engine bei allen zukünftigen Versionen mit ausgeliefert und ist dann im Verzeichnis murl/common/xsd/ zu finden.

murl/common/xsd/murl_graph_nodes.xsd

Bis zum nächsten Release kann die Datei auch von hier heruntergeladen werden.

Alle Entitys der XSD-Datei sind im Namensbereich http://murlengine.com definiert.

Vorteile

Wenn die verwendete IDE einen XML-Editor mit XSD Unterstützung beinhaltet, profitieren Nutzer von der automatischen Code-Vervollständigung und Code-Validierung. Zur Veranschaulichung erstellen wir ein kleines Beispiel in Visual Studio.

Wir erzeugen eine XML Animation Resource Datei und starten ein neues Element mit dem < Zeichen. Der Editor zeigt automatisch eine Liste mit allen möglichen Elementen, die in einer XML Animation Resource Datei erlaubt sind.

xsd support example 1
Kontextabhängige Element Liste

Wenn wir ein Element in der Liste auswählen, werden daneben weitere Informationen über dieses Element angezeigt.

xsd support example 2
Info Overlay

Wir wählen das gewünschte Element aus und bekommen sofort eine Liste mit allen Attributen, die in diesem Element erlaub sind; wieder mit Tipps in einem eigenen Overlay-Fenster daneben. Die gewellte Linie unter dem Element PositionKey erinnert uns daran, dass bisher noch nicht alle erforderlichen Attribute für das Element definiert wurden.

xsd support example 3
Attributs-Liste mit Info Overlay

Wir wählen das gewünschte Attribut. Wenn sich die möglichen Attribut-Werte aus einer Liste von festen Werten zusammensetzen, wie beispielsweise bei Enumerationen, kann der gewünschte Wert bequem aus einer Auswahlliste gewählt werden.

xsd support example 4
Auswahlliste für Enumerations-Werte

Für andere Werte gibt es eine einfache Syntaxüberprüfung. Im Beispiel wurde der Winkel mit 90 Grad angegeben, allerdings wurde die Endung deg bzw. d vergessen. Visual Studio erinnert uns daran, dass dieser Wert gemäß der XSD-Datei nicht gültig ist und zeichnet daher eine gewellte Linie unter den Wert.

xsd support example 5
Syntaxüberprüfung für Werte

Wenn wir die Endung d anhängen, erhalten wir ein Dokument welches die XSD Validierung besteht und die gewellte Linie verschwindet.

xsd support example 6
XSD Validierung OK

Installation

Üblicherweise sind zwei Schritte notwendig, um eine XSD basierte Unterstützung (Content-Assist) nutzen zu können.

  1. Dem Editor muss der Speicherort der XSD Datei bekannt gemacht werden.
  2. Es muss definiert werden, welche XSD-Datei für welche XML-Datei verwendet werden soll.

Schritt zwei wird normalerweise durch Spezifizierung des Namensbereichs im Wurzel-Element erledigt. Dafür dient das Attribut xmlns.

		<Graph xmlns="http://murlengine.com"/>
		...
		</Graph>
    

Schritt eins ist abhängig vom jeweiligen XML Editor.

Visual Studio

Der einfachste Weg in Visual Studio ist das Hinzufügen der XSD-Datei zur Solution. Die XSD-Datei muss auch noch vom Build ausgeschlossen werden (Properties > Exclude from Build).

Visual Studio Solution Explorer
Visual Studio Solution Explorer

Damit steht die XML Content-Assist Funktion in Visual Studio zur Verfügung.

Hinweis: Zukünftige Versionen des Dashboards werden für neue Projekte automatisch eine Referenz auf die XSD-Datei anlegen.

Eclipse

Eclipse bietet ebenfalls einen mächtigen XML Editor mit XSD-Unterstützung. Wenn dieser nicht installiert ist, kann er einfach nachinstalliert werden:

  • Gehe zu: Help > Install New Software...
  • Work with: Indigo repository - http://download.eclipse.org/releases/indigo/
  • Web, XML, Java EE and OSGi Enterprise Development > Eclipse XML Editors and Tools

Um die XSD-Datei zu Eclipse hinzuzufügen, sind folgende Schritte notwendig:

  • Gehe zu Window > Preferences > XML > XML Catalog, und drücke auf Add.
  • Unter Location, den Pfad zur XSD-Datei eingeben.
  • Verifizieren, ob der Namensbereich auf "http://murlengine.com" gesetzt ist und auf OK drücken.

Damit sollte die XML Content-Assist Funktion auch in Eclipse zur Verfügung stehen.

Eclipse XML Editor
Eclipse XML Editor

Hinweis: Drücke STRG-LEERTASTE, wenn das Ovelay nicht automatisch aufscheint.

IntelliJ IDEA

Intellij IDEA verfügt ebenfalls über einen XML Editor mit XSD Unterstützung. Um die XSD-Datei hinzuzufügen, sind folgende Schritte notwendig:

  • Gehe zu File > Settings > Languages & Frameworks > Schemas and DTDs
  • Füge ein neues Schema zu "External Schemas and DTDs" hinzu (+ Button)
  • Gib "http://murlengine.com" in das URI Feld ein
  • Wähle die XSD-Datei im Explorer-Tab und drücke auf OK

Damit sollte die XML Content-Assist Funktion auch mit Intellij IDEA funktionieren.

Intellij IDEA XML Editor
Intellij IDEA XML Editor

Für andere IDEs und XML-Editoren ist die Vorgangsweise ähnlich.

Hinweis: Xcode bietet lediglich notdürftige Unterstützung für XML-Dateien und bietet keine Unterstützung für XSD-Validierung. Daher muss auf Eclipse oder einen anderen geeigneten XML-Editor zurückgegriffen werden, um eine XSD basierte Content-Assist Funktion am Mac nutzen zu können.


Beim Newsletter anmelden
und keine News-Updates mehr verpassen.


Copyright © 2011-2017 Spraylight GmbH.