# wsdl boolean wird ignoriert



## JimWiesel (13. Aug 2020)

Moin Moin 

ich hab ein Projekt geerbt das eine API auf Soap Basis bereitstellt (meine ersten Schritte damit)

ich würde gerne Abfangen, dass mir einfach irgendetwas geschickt wird und dachte damit ich nicht rum casten muss gebe ich direkt den Typ an


```
<xsd:element name="EinBoolFeld" type="xsd:boolean"/>
<xsd:element name="EinIntegerFeld" type="xsd:integer"/>
```

wenn ich beim Integer Feld Text eintrage dann bekomme ich eine Fehlermeldung (wie ich es auch erwartet habe)

```
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Client</faultcode>
         <faultstring>Unmarshalling Error: null</faultstring>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>
```

wenn ich aber beim Bool Feld eifnach irgendwas eintrage, dann wird das anstandslos hingenommen
was mache ich hier falsch? ich hätte erwartet wenn es boolean sein soll und "ABCD" oder 1234 geschickt wird, das es auch eine Fehlermeldung gibt

jemand ne Idee oder Hinweis was ich falsch mache?
Vielen Dank schonmal


----------



## JimWiesel (14. Aug 2020)

jetzt hatte ich mal probiert das als integer enum zu machen mit 0 und 1 
wird aber auch alles zugelassen was ne Zahl ist 

scheint als hätte ich da irgendwie ein falsches Verständnis von


----------



## mihe7 (14. Aug 2020)

Zunächst einmal hat das nicht direkt etwas mit SOAP zu tun. Es wird ein XML Schema (XSD) angegeben, das die Datentypen enthält. Validiert man ein XML gegen das Schema, wird eben automatisch überprüft, ob die angegebenen Einschränkungen (Wertebereiche etc.) eingehalten wurden. Außerdem eignet sich das XML Schema, um automatisch korrespondierende Java-Klassen zu erzeugen. Was mich ein wenig wundert: warum musst Du selbst in der WSDL rumspielen? Das sind Dinge, um die solltest Du Dich nicht zu kümmern brauchen, zumindest nicht mit JAX-WS.


----------

