Pete,
Thanks for spotting that - we had a number of authors on the xcql.xsd
and although I thought I'd edited it into a form that would get through
WSDL compilers, I obviously missed this one.
I think we will probably regard these as errata to the schemas rather
than something for a new version.
Matthew
> -----Original Message-----
> From: Z39.50 Next-Generation Initiative [mailto:[log in to unmask]]
> On Behalf Of Peter Ciuffetti
> Sent: Monday, July 14, 2003 3:07 PM
> To: [log in to unmask]
> Subject: Re: echoRequest in SRW
>
> Peter Ciuffetti wrote:
>
> > I noticed that the WSDL2Java operation did not pick up on the fact
> > that an echoedRequest element in a searchRetrieveResponse
> can contain
> > an optional searchRetrieveRequest and/or a series of
> > unknownParameter's. The class it generated only contains
> setter's and
> > getter's for 'unknownParameter'.
>
>
> Sorry, the above was a red herring. WSDL2Java created an EchoRequest
> class that extended SearchRetrieveRespnse, so all the methods
> available
> in that class were accessible through EchoRequest.
>
> ...However, there were two other minor aspects of xcql.xsd that
> WSDL2Java did not handle correctly:
>
> Two parameters, prefixesType and modifiersType, are defined in the xsd
> as repeating sequences of a single element:
>
> <xs:complexType name="prefixesType">
> <xs:sequence maxOccurs="unbounded">
> <xs:element name="prefix" type="prefixType"/>
> </xs:sequence>
> </xs:complexType>
>
> and
>
> <xs:complexType name="modifiersType">
> <xs:sequence maxOccurs="unbounded">
> <xs:element name="modifier" type="modifierType"/>
> </xs:sequence>
> </xs:complexType>
>
> For these, WSDL2Java did not create array getters and setters
> to access
> the repeating children, it only created:
>
> private gov.loc.www.zing.cql.v1_0.xcql.PrefixType prefix;
> public gov.loc.www.zing.cql.v1_0.xcql.PrefixType getPrefix()
>
> and
>
> private gov.loc.www.zing.cql.v1_0.xcql.ModifierType modifier;
> public gov.loc.www.zing.cql.v1_0.xcql.ModifierType getModifier()
>
> If I changed the xql.xsd to define these types as '[1]
> sequence of [1 or
> more] repeating elements' as opposed to '[1 or more] sequences of [1]
> element', e.g.
>
> <xs:complexType name="prefixesType">
> <xs:sequence>
> <xs:element name="prefix" type="prefixType" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:complexType>
>
> and
>
> <xs:complexType name="modifiersType">
> <xs:sequence>
> <xs:element name="modifier" type="modifierType"
> maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:complexType>
>
> ...then WSDL2Java generated a more functional class that modelled the
> prefixes and modifiers as arrays, with array getter's and setter's:
>
> private gov.loc.www.zing.cql.v1_0.xcql.PrefixType[] prefix;
> public gov.loc.www.zing.cql.v1_0.xcql.PrefixType[] getPrefix()
> public void
> setPrefix(gov.loc.www.zing.cql.v1_0.xcql.PrefixType[] prefix)
> public gov.loc.www.zing.cql.v1_0.xcql.PrefixType getPrefix(int i)
> public void setPrefix(int i, gov.loc.www.zing.cql.v1_0.xcql.PrefixType
> value)
>
> and
>
> private gov.loc.www.zing.cql.v1_0.xcql.ModifierType[] modifier;
> public gov.loc.www.zing.cql.v1_0.xcql.ModifierType[] getModifier()
> public void setModifier(gov.loc.www.zing.cql.v1_0.xcql.ModifierType[]
> modifier)
> public gov.loc.www.zing.cql.v1_0.xcql.ModifierType getModifier(int i)
> public void setModifier(int i,
> gov.loc.www.zing.cql.v1_0.xcql.ModifierType value)
>
> So this change may be desireable for future versions of the
> xcql schema.
> I don't think it changes the semantics as far as validation
> goes, but it
> makes WSDL2Java happier.
>
> Regards,
> Pete Ciuffetti
> KnowledgeSite, Inc.
>
>
|