Netbeans: Xml-basierter File Type

Schade, mein Beitrag aus JF ist zu jung für den Cache… also saug ich mir das mal wieder aus den Fingern:

Hat jemand nützliche Links oder Hinweise auf Filetype auf XML-Basis?
Die gängige Literatur schneidet das nur in einem Kommentar beiläufig an und konzentriert sich auf Extension-based Typen. Mir fehlt etwas der Anstoß, wie ich Schema-sensitiv einen Filetype definiere. Brauch ich hierzu ein Schema? Ginge da auch xsd? (NB ist ja noch sehr DTD-lastig) Oder reicht das Root-Element? Welche Notation braucht das Root-Element dann? Reicht die Annotation MIMEResolver oder wird die Resolver-xml noch benötigt?

Was du brauchst ist die @NamespaceRegistration Annotation an deinem DataObject.

Da kannst du recht detailliert angeben, was gesucht werden soll in deiner XML Datei. Ob publicID oder Rootelement oder beides oder was auch immer. Der passende Layereintrag wird dann für dich automatisch erstellt.

Damit ich Dich richtig verstehe:

Angenommen, meine XML wäre derart:

[XML]

Hans
Wurst

[/XML]

…und würde auf Person einen DataObject anwenden, reicht dann die Annotation

@NamespaceRegistration(elementName="person")

?

[QUOTE=nuclearwinter]…und würde auf Person einen DataObject anwenden, reicht dann die Annotation```
@NamespaceRegistration(elementName=“person”)


Ich empfehle zusätzlich das "position" Attribut anzugeben, damit deine Resolver vor dem Standard-XML-Resolver ausgewertet wird. Irgendein Wert kleiner 999000 ist ausreichend.

Jens

Ok… werd ich mal ausprobieren.

Wo wir gerade beim Thema sind:

Gibt es spezielle Bindingmechanismen für XML-DataObjects in MutliViews (auch in Hinsicht auf Savable/ UndoRedo) oder muss man das auf althergebrachte Marshall/Unmarshall-JAXB-Wege machen?

So mal kleiners Update: elementName rockt!

Was bleibt ist das Datenhandling. Im MultiView Panel nehm ich mir bislang einfach den InputStream vom PrimaryFile und unmarshalle den in die entsprechende Objektstruktur. Nur wie Änderungen zwischen den Views (XML, Visual) synchronisiere, erschließt sich mir noch nicht…