@WebParam Annotation



The @WebParam API
@Retention(RUNTIME) @Target(PARAMETER)
public @interface WebParam {
String name() default "";
public enum Mode {IN, OUT, INOUT};
String targetNamespace() default "";
boolean header() default false;
String partName() default "";
};


The @javax.jws.WebParam annotation, is similar to @WebResult as it customizes the parameters for the web service methods. Its API permits changing the name of the parameter in the WSDL, the namespace, and the type. Valid types are IN, OUT, or INOUT (both), which determine how the parameter is flowing (default is IN). 

@WebService
public class ATMValidator {
public boolean validate(@WebParam(name= "ATM-Card", mode = IN) ATMCard atmCard) {
// Business logic
}
}


After Changing
<!-- Default -->
<xs:element name="arg0" type="tns:atmCard" minOccurs="0"/>
<!-- Renamed to ATM-Card -->
<xs:element name="ATM-Card" type="tns:atmCard" minOccurs="0"/>






Ref : Beginning of JavaEE 7