it-swarm.com.de

XML-Editor-Design rückt XML ohne Tabulatoren / Leerzeichen ein - Nachteile?

Ich habe einen XML-Texteditor entwickelt, der XML mit einem schwebenden linken Rand anstelle der häufigeren Tabulator- oder Leerzeichen einrückt. Der Einzug wird kontinuierlich aktualisiert und basiert nur auf dem XML-Kontext von Zeilenumbrüchen. Die beabsichtigte Verwendung des Tools ist die XSLT-Bearbeitung und XML-Vokabulare, die in der Regel von Hand erstellt werden und bei denen die Verwaltung von Leerzeichen von entscheidender Bedeutung ist (z. B. XMLSpec).

Damit dieses Tool mit XML aus anderen Quellen funktioniert, wird jede geöffnete oder aus der Zwischenablage eingefügte XML-Datei zunächst nach eingerückten Zeichen durchsucht. Diese werden dann entfernt, bevor das formatierte XML gerendert wird.

Nach der Überwindung einiger bedeutender früher Probleme wie der Formatierung von Attributen, auskommentiertem XML und der Tendenz, dass das XML alarmierend über den Bildschirm springt, scheint dies viele Vorteile hinsichtlich Lesbarkeit, Effizienz/Ergonomie der Benutzeroberfläche und Verarbeitung zu haben , Versionskontrolle etc.

Wenn es jedoch solche Vorteile gibt, mache ich mir Sorgen, warum dies nicht alle XML-Editoren bereits tun.

In Bezug auf die Benutzerfreundlichkeit des Tools und die Lesbarkeit/Nützlichkeit des erzeugten XML, wenn Zeichen, die zum Einrücken von XML verwendet werden, entfernt werden; Was sind die potenziellen Probleme und wie sollte ich sie abmildern?

Ich habe andere XML-Editoren mit XML getestet, das von diesem Tool erstellt wurde. Es gelingt allen, das XML durch Einfügen von Füllzeichen angemessen neu zu formatieren (mit Ausnahme von Attributen, für die mehr Einrückungskonventionen gelten).

Der Editor bietet auch eine alternative Ansicht, in der der linke Rand reduziert ist, aber keine Zeichen betroffen sind. In den unten verlinkten Beispielen zeigt das hervorgehobene Element in jeder Ansicht die einzige Stelle (hervorgehobener Bereich ohne Zeichen), an der vom Autor Leerzeichen zum Einrücken hinzugefügt wurden. Dies war erforderlich, um eine einzelne Zeile innerhalb eines mehrzeiligen Attributwerts einzurücken, sodass der XML-Kontext nicht ausreichte.

Screenshots des XML-Editors: Vergleichen von eingerückten und nicht eingerückten Ansichten

[Bearbeiten] Noch einige Punkte:

Text, der sich während der Eingabe durch den Bildschirm bewegt, stellt einige Herausforderungen dar (wie bereits erwähnt). Die automatische Vervollständigung von Tags/Attributen und die verzögerte Formatierung helfen jedoch. Außerdem gibt es in konventionelleren Editoren bereits einige Bewegungen von Tags, sodass dieses Verhalten nicht völlig unerwartet ist.

Es wurde darauf geachtet, Tastaturkürzel zu behandeln, die besondere Auswirkungen auf Leerzeichen haben (wie ctrl-backspace oder tab) damit es nicht zu viele Überraschungen gibt.

Der Editor funktioniert am besten mit aktiviertem Word-Wrap, aber viele Benutzer befolgen die Konventionen des Texteditors, um eine maximale Zeilenlänge durch Einfügen von Zeilenvorschüben beizubehalten. Eine optionale Funktion entfernt solche Zeilenvorschübe, erkennt jedoch, dass dies so viele Probleme verursachen kann, wie es löst.

Das Grundprinzip hinter dem automatischen Einrücken von XML-Tags in Kommentaren besteht darin, dass XML-Blöcke nach Belieben kommentiert/nicht kommentiert werden können. CData-Blöcke werden, obwohl sie XML-Tags enthalten können, als normaler Text behandelt. Dies liegt daran, dass die CData-Tags nicht entfernt werden können, ohne dass das XML ungültig wird. Der Inhalt von CData ist anders gefärbt als der analysierte Text, um Verwechslungen beim Einrücken zu vermeiden.

Einrücken von XML in Kommentaren: Obwohl automatisiert, ist dies unabhängig von der "echten" XML-Einrückung, um alles in Kommentaren zu vermeiden, was die Formatierung des restlichen XML beeinflusst.

Einfügen in andere XML-Tools - Da der Editor keine "fremden" Einrückungen verarbeiten kann, funktioniert dies wahrscheinlich besser als beim Kopieren zwischen zwei herkömmlichen Tools.

Einfügen in Nur-Text-Tools (z. B. ein Wiki) - Dies stellt ein Problem dar, es sei denn, dieses Tool erkennt RTF.

Es könnte eine Option zum Speichern mit Leerzeichen bereitgestellt werden. Ein umverteilbares/Online-Neuformatierungstool bietet jedoch möglicherweise mehr Flexibilität.

Nur zur Information: Dieser Editor wurde ursprünglich als Teil eines viel größeren XML-Verarbeitungssystems veröffentlicht. Um jedoch allgemeineres Feedback zu erhalten, habe ich jetzt auch eine einfachere, leichtere kostenlose Version veröffentlicht: XMLQuire . Angesichts der Anzahl der Downloads von Tag 1 hoffe ich, bald in der Lage zu sein, Nachteile direkt aus dem Feedback von Live-Benutzern zu bewerten ...

[Update] Downloads von Produkten, die dieses System verwenden, werden mit etwa 200 pro Woche ausgeführt, sodass die Gesamtzahl der Downloads inzwischen 10.000 überschreiten muss. Bisher haben sich noch keine Benutzer über die Behandlung von Leerzeichen beschwert, aber nur eine Handvoll haben ein kostenloses Feedback erhalten. Es scheint, dass diese Funktion für viele weitgehend unbemerkt bleibt.

5
pgfearo

Sie biegen normale Editor-Konventionen, sodass Benutzer sich daran gewöhnen müssen, keine Leerzeichen/Tabulatoren einzugeben und auch Text zu springen, wenn sie eine neue abgeschlossen haben Tag öffnen und beim Abschluss eines schließenden Tags verlassen. Nichts davon scheint an sich ein so großes Hindernis zu sein. Tatsächlich führen Sie bei jedem Tastendruck "Prettify" aus und geben so ein reaktionsschnelleres Feedback. Sie können es als analog zur Hervorhebung der Farbsyntax während der Eingabe ansehen. Die Leute mussten sich darauf einstellen, aber es ist ein Nettogewinn.

Die Usability-Fragen, die mir in den Sinn kommen, befinden sich im grauen Bereich zwischen UX-Fragen und Fragen zur Funktionalität der App.

  • Was ist mit <! CDATA []]>? Wird das automatische Einrücken dafür ausgeschaltet? Oder optional ausgeschaltet? Das Mischen von automatisiertem Einrücken und manuellem Mischen kann etwas verwirrend sein. Dies ist kein Problem mit einer App, bei der alle Formatierungen manuell erfolgen.
  • Die App funktioniert intern ohne Einrückung. Kann ich mit Einzug exportieren/speichern, wenn ich möchte? Ich möchte es möglicherweise mit einem Editor verwenden, der keine Einrückungen automatisch hinzufügen kann, oder es ausschneiden und in ein Wiki einfügen.

Bearbeiten

Danke für das Update.

Es klingt jetzt wie etwas, bei dem man nur dann nützlicher und detaillierter kommentieren kann, wenn man es tatsächlich ausprobiert. Vor einiger Zeit habe ich einen 'Instant Assembler' geschrieben, der die gesamte Syntax- und Typprüfung, Makroerweiterung und Codegenerierung während der Eingabe durchgeführt hat. Es war nicht einfach, die erforderliche Reaktionsfähigkeit zu erreichen, aber am Ende waren die Hauptprobleme bei der Benutzerfreundlichkeit nicht vorhanden. Die Usability-Probleme lagen im Verhalten beim Auswählen von Text, bei dem nicht alle Details der normalen Editorauswahl implementiert wurden (Ziehen zum Erweitern, was zum Scrollen des Fensters führt) - und das geschah, weil ich das nicht selbst mache und weil ich nicht einfach einen Standard erweitern konnte Editorsteuerung.

Testen Sie also mit ein bis drei Benutzern und erhalten Sie deren Feedback. Probleme liegen wahrscheinlich nicht in dem Bereich, über den Sie sich Sorgen machen.

Ich würde sagen, Sie wären sehr sicher, mit Ihrer Idee zu laufen. Es sieht so aus, als hätten Sie die Möglichkeit, dass Personen, die wirklich explizite Leerzeichen verwenden möchten, dies tun können, und Ihr Zielmarkt sieht so gut aus, dass sie diese Option finden - wenn sie sich zufällig an die alte Vorgehensweise halten möchten .

Es klingt eine schöne Idee. Viel Glück damit.

1
James Crook

Wenn Sie tatsächlich Einrückungszeichen aus der Quelle entfernen, anstatt nur zu rendern, als ob sie nicht vorhanden wären, können Sie die Interoperabilität mit anderen Editoren beeinträchtigen. Jemand, der eine manuell formatierte XML-Datei beispielsweise in Emacs (oder Notepad oder was auch immer) erstellt und dann Ihren Editor damit verwendet hat, sollte seine Fähigkeit nicht verlieren, zu seinem ursprünglichen Editor zurückzukehren.

2
Monica Cellio