Ez a szabály megjelöli a hivatkozásokat a következő sématípusok bármelyikére:
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
Ezek a sématípusok és a JAX-RPC-vel kapcsolatos Java típusok
java.util.String
és
java.util.Calendar
a JAX-WS nem támogatja.
A JAX-WS-re és a JAXB-re való áttelepítéshez a támogatott Java -típussal rendelkező sématípusok használatára lesz szükség
javax.xml.datatype.XMLGregorianCalendar
helyette.
A JAX-RPC naptár osztály példája így néz ki:
import java.util.Calendar ;
import java.rmi.RemoteException;
public Calendar Calendar calculateShippingDate(Calendar requestedDate ) dob RemoteException; {
// Állítsa be a dátumot a nekünk elküldött dátumra, és adjon hozzá 7 napot.
requestedDate .add( java.util.Calendar.DAY_OF_MONTH , 7);
// . . .
visszaküldés requestedDate;
}
A JAX-WS XMLGregorianCalendar osztály példája így néz ki:
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.datatype.DatatypeConfigurationException;
public XMLGregorianCalendar calculateShippingDate(
XMLGregorianCalendar requestedDate) {
próbáld meg {
// Hozzon létre egy adattípus-gyárat.
DatatypeFactory df = DatatypeFactory.newInstance( );
// Állítsa be a dátumot a nekünk elküldött dátumra, és adjon hozzá 7 napot.
Időtartam = df.newDuration("P7D" );
requestedDate .add(duration);
} fogás ( DatatypeConfigurationException e) {
// TODO Automatikusan generált fogási blokk
e.printStackTrace();
}
// . . .
visszaküldés requestedDate;
}
Amint az a fenti példából látható, a bemeneti paraméter típusától függően változik
java.util.Calendar
eddig:
javax.xml.datatype.XMLGregorianCalendar
.
Ennek az az oka, hogy a WSDL ezeket a paramétereket olyan típusúnak adta meg,
xsd:dateTime
, a JAX-RPC leképezi ezt az adattípust
java.util.Calendar
, míg a JAX-WS és a JAXB leképezi
javax.xml.datatype.XMLGregorianCalendar
.