# Editor, der nur Elemente einfuegt, die nach xsd zulaessig



## im07 (3. Mai 2007)

Ich moechte einen xml-Editor schreiben, der mir ermoeglicht, dass ich wenn ich an einer Stelle etwas aendern oder einfuegen oder loeschen moechte, dass nur zulaesst, wenn die vorgaben aus der xsd-Datei nicht verletzt werden.

D.h. ich bin auf der sucher nach moeglichkeiten, die z.B.
die xsd-Datei einlesen, daraus auch eine art hierrachie erstellen (wichtig das auch includes innerhalb der xsd-Datei aufgeloest werden),
wenn ich auf ein element meiner xml-Datei /xml-Datei-Tree zugreifen und je nach element/Atribute in einem bestimmten Knoten des xsd-Datei-Tree nachschauen welche Werte z.B. zulaessig sind. 
Somit kann dem user z.B. beim einfuegen eines neuen elements ein ComboBox gezeigt werden aus denn er von allen an dieser Stelle gueltigen Elemente eins auswaehlen kann.

Hab hier im forum artikel gelesen, die (grob) in diese Richtung gehen. allerdigns sind die beitraege schon etwas aelter, deswegen wollt ich  noch mal nach fragen, ob es mittlerweile moeglichkeiten gibt, und ich das nicht komplett selber schreiben muss.

Bzw. hab ich mir mal jaxb angeschaut. Da ist meiner meinung nicht guenstig weil ich vorher (nicht zur laufzeit),die klassen aus dem xsd erzeugen muss und auch der quellcode auf diese klassen angepasst werden muss. D.h. wenn ich zur Laufzeit mehrer verschieden xsds hab ist das unguenstig/nicht moeglich.

vielen dank schon mal fuer antworten


----------



## schalentier (3. Mai 2007)

Der XML Editor von IntelliJ's IDEA kann das. Also er zeigt Fehler im XML, die durch ein XSD gefunden werden, so wie Java Fehler an. Zudem kann er auch Autovervollstaendigung. Gibts kein XSD ist der Editor schlau genug und holt sich die Informationen fuers Autocomplete aus dem bisherigen XML... ziemlich genial .. Natuerlich kann er auch Refaktorisieren (XSD-Tag umbenennen-> Benennt alle Vorkommen in allen XML's mit um; usw.)


----------



## im07 (3. Mai 2007)

oh je,
ich glaub, da hab ich mich wohl nciht ganz deutlich ausgedrueckt:
also ich moechte selbst eine solchen editor schrieben der das kann.
d.h. ich moechte wissen ob es parser etc. gibt, mit denen ich sowas ganz komfortabel programmieren kann.


----------

