XML Content-Assist
Gepostet am 7. August 2015
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:
- XML Animation Resource
- XML Atlas Resource
- XML Dictionary Resource
- XML Graph Resource
- XML Image Resource
- XML Package Resource
- XML Shader Resource
- XML Config File - Atlas Generator
- XML Config File - Scene Converter
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.
Bis zum nächsten Release kann die Datei auch von hier heruntergeladen werden.
Alle Entitys der XSD-Datei sind im Namensbereich https://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.
Kontextabhängige Element Liste
Wenn wir ein Element in der Liste auswählen, werden daneben weitere Informationen über dieses Element angezeigt.
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.
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.
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.
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 Validierung OK
Installation
Üblicherweise sind zwei Schritte notwendig, um eine XSD basierte Unterstützung (Content-Assist) nutzen zu können.
- Dem Editor muss der Speicherort der XSD Datei bekannt gemacht werden.
- 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="https://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
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 - https://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 "https://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
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 "https://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
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.