Announcement

Collapse
No announcement yet.

Emf xsd

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Emf xsd

    Hallo zusammen,

    hab da ein kleines Problem. Aus rechtlichen Gründen darf ich leider keinen Code posten.
    Folgendes: ich habe verschachtelte XSDs aus denen ich mitHilfe des Genmodels die Java-Klassen generiert habe.
    Sinn des Ganzen ist das ich von einem Servers mittels HTTP-Request einen XML Strom als Response empfange, aus diesem Stream wird mittels generierten XMLProcessor die Klasseninstanz erzeugt.
    Aus dieser Klasseninstanz möchte ich sowohl Attribute als auch Values auslesen.
    Und da kommt das Problem. Einige getter-Methoden laufen in Richtung "null", obwohl man aus dem XML-Stream eindeutig erkennt, dass dort Daten vorhanden sind.
    Letztendlich scheitere ich also bei der Auswertung an Null-Pointer-Exceptions oder handelt es sich um EList<E> dann ArrayIndexOutOfBoundsException.
    Hat jemand schon einmal ähnliches erlebt?

    Gibt es vielleicht beim load(Stream, options) die Möglichkeit in options eine strikterere Auswertung zu verlangen?

  • #2
    Warum keine Webservice?
    Was für ein XMLProcessor?
    Warum nicht mit JAXB?
    Christian

    Comment


    • #3
      zu 1.) Was meinst du mit WebService
      zu 2.) In EMF wird bei der Codegenerierung auch der entsprechende XMLProcessor erstellt, mit dem man dann eine XML-Datei, Stream, ... in eine entsprechende Klasseninstanz umwandeln kann.
      zu3) JAXB hat einfach zu viele Probleme gemacht, allein schon beim Einlesen der XSDs, ich hätte einfach zu viel an der Schnitttstellenbeschreibung ändern können.

      Leider hilft mir das noch nicht viel weiter!

      Comment


      • #4
        Ich konnte jetzt das Problem ein wenig eingrenzen:
        Es gibt 2 verschiedene Fälle in denen mehrere Sohnknoten den selben Typ und selben Namen besitzen.
        Im Fall 1 ist dies mit EList<E> umgesetzt. Mittels Iterator oder FOR-Schleife lassen sich diese Werte wunderbar auslesen.
        Im Fall 2 jedoch besitzt beispielsweise ein Vaterknoten A 2 Sohnknoten B.
        Also:
        <A>
        <B>
        <B>
        Die erzeugten Getter-Methoden in <A> heißen dann getB() und getB1().
        Jedoch ist in jedem Fall getB1() = null.

        Muss man vielleicht bereits in der XSD Steueranweisungen für EMF vornehmen um dies zu verhindern?

        Hoffe mir kann einer helfen?

        Comment

        Working...
        X