I just added a possibly relevant recipe to the Aegis page on the online doc which explains how to fix this in Java or in a .aegis.xml file.
________________________________ From: Brice Ruth [mailto:[EMAIL PROTECTED] Sent: Wednesday, December 20, 2006 10:11 PM To: [email protected] Subject: Re: [xfire-user] WSDL Contains 'minOccurs="0"' For Required Fields With JAXB2 (and maybe with the other bindings, too) - you can specify annotations, for XmlElement, you can provide 'nillable=true/false' and with XmlAttribute, you can specify 'required=true/false'. I'm guessing this is the path you'll need to go down, either customizing your POJOs with annotations specific to the binding you're using (jaxb2, xmlbeans, aegis, etc.) or customizing the xsd generated by XFire and providing a custom xsd instead of letting XFire generate it from that point forward. There may be other routes/mechanisms, but that's all I've found. Cheers, Brice On 12/20/06, Preston Lee < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > wrote: I have an XFire service being consumed by a .net application which is giving me grief. It seems to boil down to the minOccurs="0" attribute being added to required elements of objects passed as parameters to my service methods. Here's a relevant section of the WSDL which shows the undesired minOccurs="0" attribute (type names have changed for IP reasons).. --BEGIN WSDL SNIPPET-- <xsd:complexType name="DataDto"> <xsd:sequence> <xsd:element minOccurs="0" name="id" type="xsd:long" /> <xsd:element minOccurs="0" name="date" type="xsd:dateTime" /> <xsd:element minOccurs="0" name="someString" nillable="true" type="xsd:string" /> <xsd:element minOccurs="0" name="anotherString" nillable="true" type="ns1:AnotherType" /> </xsd:sequence> </xsd:complexType> --END-- The non-trivial model objects being accepted by the service, as well as all fields of those objects, need to be set, so I'm pretty sure I don't want 'minOccurs="0"' to be valid. When the .net guy generates his classes, he ends up with "setIdSpecified" as well as "setId", for example, since id is a primitive type and there isn't another way to differentiate between 0 and null. (I don't think the .net generator would do this if minOccurs was gone.) Is there an annotation I need to add to fields of my DTOs which marks them as "required"? Help greatly appreciated! Thanks, Preston --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email -- Brice Ruth Software Engineer, Madison WI
