This is "as designed" in JAXB, it isn't a limitation. In my opinion, XFire should let the user create services that handle JAXBElements instead of JAXB's generated value classes.
-denis > -------- Original Message -------- > Subject: Re: [xfire-user] imported wsdl complex types > From: Dan Diephouse <[EMAIL PROTECTED]> > Date: Wed, March 29, 2006 7:51 am > To: [email protected] > > Hi Frank, > Unfortunately this is a limitation with JAXB it seems, but I really need > to investigate further. The easy way around this is to create a global > schema <element> and not a <complexType> in your schema. > > - Dan > > Frank Sweeney wrote: > > > Hi there, > > > > I have made a client stub generation (with binding = jaxb) of a > > webservice also created with xfire. It automatically generates a class > > of the imported complex type as seen below. > > > > My question is that it seems to create the class with types of > > JAXBElement<String> rather than that of type string, is there anyway > > that I can get it generate a imported class with the java types > > instead. As it makes using the class more difficult > > > > Type long seems to be handled properly, it is strings and dates that > > are set to these types > > > > > > Regards > > > > Frank > > > > > > > > package com.docaccess.webservices.bean; > > > > import javax.xml.bind.JAXBElement; > > import javax.xml.bind.annotation.AccessType; > > import javax.xml.bind.annotation.XmlAccessorType; > > import javax.xml.bind.annotation.XmlElement; > > import javax.xml.bind.annotation.XmlElementRef; > > import javax.xml.bind.annotation.XmlType; > > import javax.xml.datatype.XMLGregorianCalendar; > > import com.accarda.docaccess.webservices.bean.DocSearch; > > > > > > /** > > * <p>Java class for DocSearch complex type. > > * > > * <p>The following schema fragment specifies the expected content > > contained within this class. > > * > > * > > */ > > @XmlAccessorType(AccessType.FIELD) > > @XmlType(name = "DocSearch", propOrder = { > > "additionalTitles", > > "creationDateFrom", > > "creationDateTo", > > "docType", > > "invoiceDateFrom", > > "invoiceDateTO", > > "invoiceNr", > > "issuerNr", > > "kundeNr", > > "lastModifiedDateFrom", > > "lastModifiedDateTo", > > "mandant", > > "maxRecords", > > "objectName", > > "searchType", > > "state", > > "tenantNr", > > "vuNr" > > }) > > public class DocSearch { > > > > @XmlElementRef(name = "additionalTitles", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> additionalTitles; > > @XmlElement(namespace = > > "http://bean.webservices.docaccess.accarda.com") > > protected XMLGregorianCalendar creationDateFrom; > > @XmlElement(namespace = > > "http://bean.webservices.docaccess.accarda.com") > > protected XMLGregorianCalendar creationDateTo; > > @XmlElementRef(name = "docType", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> docType; > > @XmlElement(namespace = > > "http://bean.webservices.docaccess.accarda.com") > > protected XMLGregorianCalendar invoiceDateFrom; > > @XmlElement(namespace = > > "http://bean.webservices.docaccess.accarda.com") > > protected XMLGregorianCalendar invoiceDateTO; > > @XmlElementRef(name = "invoiceNr", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> invoiceNr; > > @XmlElementRef(name = "issuerNr", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> issuerNr; > > @XmlElementRef(name = "kundeNr", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> kundeNr; > > @XmlElement(namespace = > > "http://bean.webservices.docaccess.accarda.com") > > protected XMLGregorianCalendar lastModifiedDateFrom; > > @XmlElement(namespace = > > "http://bean.webservices.docaccess.accarda.com") > > protected XMLGregorianCalendar lastModifiedDateTo; > > @XmlElementRef(name = "mandant", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> mandant; > > @XmlElement(namespace = > > "http://bean.webservices.docaccess.accarda.com") > > protected Long maxRecords; > > @XmlElementRef(name = "objectName", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> objectName; > > @XmlElementRef(name = "searchType", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> searchType; > > @XmlElementRef(name = "state", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> state; > > @XmlElementRef(name = "tenantNr", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> tenantNr; > > @XmlElementRef(name = "vuNr", namespace = > > "http://bean.webservices.docaccess.accarda.com", type = > > JAXBElement.class) > > protected JAXBElement<String> vuNr; > > > > /** > > * Gets the value of the additionalTitles property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getAdditionalTitles() { > > return additionalTitles; > > } > > > > /** > > * Sets the value of the additionalTitles property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setAdditionalTitles(JAXBElement<String> value) { > > this.additionalTitles = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the creationDateFrom property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public XMLGregorianCalendar getCreationDateFrom() { > > return creationDateFrom; > > } > > > > /** > > * Sets the value of the creationDateFrom property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public void setCreationDateFrom(XMLGregorianCalendar value) { > > this.creationDateFrom = value; > > } > > > > /** > > * Gets the value of the creationDateTo property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public XMLGregorianCalendar getCreationDateTo() { > > return creationDateTo; > > } > > > > /** > > * Sets the value of the creationDateTo property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public void setCreationDateTo(XMLGregorianCalendar value) { > > this.creationDateTo = value; > > } > > > > /** > > * Gets the value of the docType property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getDocType() { > > return docType; > > } > > > > /** > > * Sets the value of the docType property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setDocType(JAXBElement<String> value) { > > this.docType = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the invoiceDateFrom property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public XMLGregorianCalendar getInvoiceDateFrom() { > > return invoiceDateFrom; > > } > > > > /** > > * Sets the value of the invoiceDateFrom property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public void setInvoiceDateFrom(XMLGregorianCalendar value) { > > this.invoiceDateFrom = value; > > } > > > > /** > > * Gets the value of the invoiceDateTO property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public XMLGregorianCalendar getInvoiceDateTO() { > > return invoiceDateTO; > > } > > > > /** > > * Sets the value of the invoiceDateTO property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public void setInvoiceDateTO(XMLGregorianCalendar value) { > > this.invoiceDateTO = value; > > } > > > > /** > > * Gets the value of the invoiceNr property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getInvoiceNr() { > > return invoiceNr; > > } > > > > /** > > * Sets the value of the invoiceNr property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setInvoiceNr(JAXBElement<String> value) { > > this.invoiceNr = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the issuerNr property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getIssuerNr() { > > return issuerNr; > > } > > > > /** > > * Sets the value of the issuerNr property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setIssuerNr(JAXBElement<String> value) { > > this.issuerNr = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the kundeNr property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getKundeNr() { > > return kundeNr; > > } > > > > /** > > * Sets the value of the kundeNr property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setKundeNr(JAXBElement<String> value) { > > this.kundeNr = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the lastModifiedDateFrom property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public XMLGregorianCalendar getLastModifiedDateFrom() { > > return lastModifiedDateFrom; > > } > > > > /** > > * Sets the value of the lastModifiedDateFrom property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public void setLastModifiedDateFrom(XMLGregorianCalendar value) { > > this.lastModifiedDateFrom = value; > > } > > > > /** > > * Gets the value of the lastModifiedDateTo property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public XMLGregorianCalendar getLastModifiedDateTo() { > > return lastModifiedDateTo; > > } > > > > /** > > * Sets the value of the lastModifiedDateTo property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] XMLGregorianCalendar } > > * */ > > public void setLastModifiedDateTo(XMLGregorianCalendar value) { > > this.lastModifiedDateTo = value; > > } > > > > /** > > * Gets the value of the mandant property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getMandant() { > > return mandant; > > } > > > > /** > > * Sets the value of the mandant property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setMandant(JAXBElement<String> value) { > > this.mandant = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the maxRecords property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] Long } > > * */ > > public Long getMaxRecords() { > > return maxRecords; > > } > > > > /** > > * Sets the value of the maxRecords property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] Long } > > * */ > > public void setMaxRecords(Long value) { > > this.maxRecords = value; > > } > > > > /** > > * Gets the value of the objectName property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getObjectName() { > > return objectName; > > } > > > > /** > > * Sets the value of the objectName property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setObjectName(JAXBElement<String> value) { > > this.objectName = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the searchType property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getSearchType() { > > return searchType; > > } > > > > /** > > * Sets the value of the searchType property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setSearchType(JAXBElement<String> value) { > > this.searchType = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the state property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getState() { > > return state; > > } > > > > /** > > * Sets the value of the state property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setState(JAXBElement<String> value) { > > this.state = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the tenantNr property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getTenantNr() { > > return tenantNr; > > } > > > > /** > > * Sets the value of the tenantNr property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setTenantNr(JAXBElement<String> value) { > > this.tenantNr = ((JAXBElement<String> ) value); > > } > > > > /** > > * Gets the value of the vuNr property. > > * > > * @return > > * possible object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public JAXBElement<String> getVuNr() { > > return vuNr; > > } > > > > /** > > * Sets the value of the vuNr property. > > * > > * @param value > > * allowed object is > > * [EMAIL PROTECTED] JAXBElement [EMAIL PROTECTED] <[EMAIL > > PROTECTED] String [EMAIL PROTECTED] >} > > * */ > > public void setVuNr(JAXBElement<String> value) { > > this.vuNr = ((JAXBElement<String> ) value); > > } > > > > } > > > > > > > > > > > > > > > -- > Dan Diephouse > (616) 971-2053 > Envoi Solutions LLC > http://netzooid.com
