Cette règle signale les références à l'un des types de schéma suivants :
http://www.w3.org/2001/XMLSchema:duration, http://www.w3.org/2001/XMLSchema:dateTime,
http://www.w3.org/2001/XMLSchema:time, http://www.w3.org/2001/XMLSchema:date,
http://www.w3.org/2001/XMLSchema:gYearMonth, http://www.w3.org/2001/XMLSchema:gYear, NAMESPACE:gMonth,
http://www.w3.org/2001/XMLSchema:gDay
Ces types de schéma et leurs types Java liés à JAX-RPC
java.util.String
et
java.util.Calendar
ne sont pas prises en charge par JAX-WS.
La migration vers JAX-WS et JAXB nécessitera l'utilisation de ces types de schémas avec les types Java pris en charge
l'utilisation de ces types de schémas avec les types Java pris en charge
javax.xml.datatype.XMLGregorianCalendar
à la place.
Un exemple de classe de calendrier JAX-RPC ressemble à ceci :
import java.util.Calendar;
import java.rmi.RemoteException;
public Calendar calculateShippingDate(Calendar requestedDate) throws RemoteException; {
// Réglez la date sur celle qui nous a été envoyée et ajoutez 7 jours.
requestedDate.addjava.util.Calendar.DAY_OF_MONTH, 7) ;
// . . .
return requestedDate;
}
Un exemple de classe JAX-WS XMLGregorianCalendar ressemble à ceci :
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.datatype.DatatypeConfigurationException;
public XMLGregorianCalendar calculateShippingDate(
XMLGregorianCalendar requestedDate) {
try {
// Créer une usine de types de données.
DatatypeFactory df = DatatypeFactory.newInstance() ;
// Fixez la date à celle qui nous a été envoyée et ajoutez 7 jours
et ajoutez 7 jours.
Duration = df.newDuration("P7D") ;
requestedDate.add(duration) ;
} catchDatatypeConfigurationException e) {
// TODO Bloc catch généré automatiquement
e.printStackTrace();
}
// . . .
return requestedDate;
}
Comme vous pouvez le voir dans l'exemple ci-dessus, le paramètre d'entrée est passé du type
java.util.Calendar
à
javax.xml.datatype.XMLGregorianCalendar
.
Cela s'explique par le fait que le WSDL a spécifié que ces paramètres devaient être de type,
xsd:dateTime
jAX-RPC fait correspondre ce type de données à
java.util.Calendar
tandis que JAX-WS et JAXB le font correspondre à
javax.xml.datatype.XMLGregorianCalendar
.