Erstellen Sie automatisch eine Ressourcenklasse basierend auf XML in Java

8

In Android-Anwendungen werden Ressourcen in xml-Dokumenten angegeben, die automatisch in die Klasse R integriert werden und im Quellcode leicht als stark typisiert verfügbar sind.

Gibt es eine Möglichkeit, einen ähnlichen Ansatz für eine normale Java-Desktop-Anwendung zu verwenden?

Was ich erreichen möchte, ist sowohl das Entfernen von Strings aus dem Code (als eine Trennung von "Layern", mehr oder weniger) als auch das Hinzufügen von Unterstützung für die Lokalisierung, indem einfach dem Programm gesagt wird Wählen Sie die XML-Datei, die der gewünschten Sprache entspricht.

Ich habe ein wenig gegoogelt, aber die Dinge, nach denen ich suche, scheinen in den Ergebnissen über das Parsen oder Ausgeben von XML zu ersticken, anstatt Tools, die XML zum Generieren von Code verwenden.

    
Tomas Lycken 05.01.2012, 03:40
quelle

4 Antworten

2

Die Eclipse-Message-Bundle-Implementierung (z. B. von Plugins) integriert sich in die Externalize Strings-Funktion und generiert sowohl eine statische Klasse als auch eine Ressourceneigenschaftendatei für Ihre Strings:

Ссылка

Damit diese Integration funktioniert, muss Eclipse org.eclipse.osgi.util.NLS im Klassenpfad sehen. Aus dem Speicher heraus waren die Abhängigkeiten der Bibliotheken, in denen es verfügbar war, für das Projekt, in dem ich diesen Ansatz verwendete, ein wenig schwierig, also habe ich nur die Quelle und habe sie als eigenständige Klasse in meinem Kernmodul (siehe die Kommentare für mehr auf diesem).

Es bietet die Typensicherheit, nach der Sie suchen, und die IDE-Funktionen sparen viel Zeit. Ich habe bis jetzt keine Nachteile gefunden.

Edit: das ist tatsächlich, was ghostbust555 in den Kommentaren erwähnt, aber in diesem Artikel nicht klar, dass dies nicht auf Eclipse-Plugins beschränkt ist und Sie auf Ihre Ressourcen über statische Mitglieder einer Nachrichtenklasse verweisen.

Ich habe keine Erwähnung von anderen gesehen, die diesen Ansatz mit ihren eigenen Anwendungen verwenden, aber für mich ist es angesichts der IDE-Integration und der Typsicherheit durchaus sinnvoll.

    
Danny Thomas 09.01.2012, 22:31
quelle
0

Ich bin mir nicht sicher, ob Sie das meinen, aber schauen Sie sich die Internationalisierung an - Ссылка

    
ghostbust555 05.01.2012 03:50
quelle
0

Suchen Sie nach etwas, das XML-Dateien analysiert und Java-Instanzen ähnlicher "struct-like" -Objekte generiert, z. B. JAXP und JAXB ?

    
Spencer Kormos 09.01.2012 22:44
quelle
0

Ich bin auf ResGen gestoßen, das bei gegebenen Ressourcenbündel-XML-Dateien Java-Dateien erzeugt, die für den typsicheren Zugriff auf die Ressourcen verwendet werden können.

Ссылка

    
prunge 09.01.2012 22:51
quelle

Tags und Links