Announcement

Collapse
No announcement yet.

xml Auslesen als bestimmten Datentyp

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

  • xml Auslesen als bestimmten Datentyp

    Diese Zeile:
    Code:
    <xsl:value-of select=" Coordinate:setCoordSys($coordinateNode, CoordSys:fromValue (@mapName)) " />
    wirft folgende Fehlermeldung:
    Error at xsl:value-of on line 59
    Exception in extension function java.lang.IllegalArgumentException: NAV4
    at xsl:call-template name="itdPoint_LadeAlgo_Complete" (#21)
    at xsl:for-each (#20)
    processing /itdRequest/itdTripRequest[1]/itdItinerary[1]/itdRouteList[1]/itdRoute[1]/itdPartialRouteList[1]/itdPartialRoute[1]/itdPoint[1]
    at xsl:for-each (#19)
    processing /itdRequest/itdTripRequest[1]
    ; SystemID: ; Line#: 59; Column#: -1


    Was ist daran syntaktisch falsch?
    Bzw. mit welchen Änderungen könnten es funktionieren?
    Frank
    www.mehlhop.com

  • #2
    Eine der beiden Methoden (also setCoordSys oder fromValue) beschwert sich mit java.lang.IllegalArgumentException über ein Argument. Wie sieht denn die Signatur (also die formalen Typdefinition der Methode) aus?

    Comment


    • #3
      Originally posted by Martin Honnen View Post
      Wie sieht denn die Signatur (also die formalen Typdefinition der Methode) aus?
      Ich geb mal den Code der CoordSys Klasse wieder.
      Diese ist nicht von mir geschrieben.
      Was mich wunder / ich nicht kenne ist,
      dass die Klasse nie aufgerufen wird
      ( "public class CoordSys { ... }" ),
      aber die Klasse funktioniert trotzdem.

      Mit der Signatur meinst Du vermutlich
      Code:
      @XmlType(name = "CoordSys")
      , oder?

      Code:
      @XmlType(name = "CoordSys")
      @XmlEnum
      public enum CoordSys {
      
          @XmlEnumValue("WGS84")
          WGS_84("WGS84");
          private final String value;
      
          CoordSys(String v) {
              value = v;
          }
      
          public String value() {
              return value;
          }
      
          public static CoordSys fromValue(String v) {
              for (CoordSys c: CoordSys.values()) {
                  if (c.value.equals(v)) {
                      return c;
                  }
              }
              throw new IllegalArgumentException(v);
          }
      }
      www.mehlhop.com

      Comment


      • #4
        Mit der Signatur meine ich Namen und Typ der Argumente und des Resultates der Methode, aber du hast ja sogar den kompletten Code gepostet. Dabei wird in "fromValue" explizit ein "throw new IllegalArgumentException" ausgeführt, wenn in der for-Schleife der als Parameter übergebene "v"-Wert nicht gefunden wird.
        Du musst also dafür sorgen, dass an "fromValue" ein Wert aus der enum übergeben wird (die nur eine Wert WGS_84("WGS84") zu enthalten scheint).

        Comment


        • #5
          Vielen Dank Martin!
          www.mehlhop.com

          Comment

          Working...
          X