No, the any clearly indicates that any element from the targetnamespace is valid to appear after the Id element. The XSD validator in Xerces agrees with me.
Cheers
Simon
-----Original Message-----
From: Venkat Reddy (JIRA) [mailto:[email protected]]
Sent: Wed 2/16/2005 10:31 PM
To: Simon Fell
Cc:
Subject: [jira] Commented: (AXIS-1818) MessageElement [] for <any> doesn't include all elements
[ http://issues.apache.org/jira/browse/AXIS-1818?page=comments#action_59302 ]
Venkat Reddy commented on AXIS-1818:
------------------------------------
I doubt if the second ID element should be treated as <any>, because it is specified by the schema. However, then the second ID element should cause the validation to fail during deserialization because the maxOccurs attribute is set to 1.
I guess this is an issue with validation of the message against maxOccurs and minOccurs attributes in schema.
> MessageElement [] for <any> doesn't include all elements
> --------------------------------------------------------
>
> Key: AXIS-1818
> URL: http://issues.apache.org/jira/browse/AXIS-1818
> Project: Axis
> Type: Bug
> Components: Serialization/Deserialization
> Versions: 1.2RC2
> Environment: XP / JDK 1.4.x / Axis 1.2 RC3
> Reporter: Simon Fell
> Assignee: Venkat Reddy
>
> This is with Axis 1.2 RC3
> Given this type fragment
> <sequence>
> <element name="type" type="xsd:string"/>
> <element name="fieldsToNull" type="xsd:string" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
> <element name="Id" type="tns:ID" nillable="true" minOccurs="0" maxOccurs="1"/>
> <any namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded"/>
> </sequence>
> If a runtime message returns the Id element twice, the 2nd instance, which should end up in the any collection gets dropped.
> There's a sample service at http://soap.4s4c.com/dotnet/any.wsdl that this test code shows this problem.
> AnyServiceLocator loc = new AnyServiceLocator();
> Soap svc = loc.getSoap();
>
> QueryResult qr = svc.query("blah");
>
> for (int i =0; i < qr.getRecords().length; i++ ) {
> SObject s = qr.getRecords(i);
> MessageElement [] e= s.get_any();
> System.out.println("MessageElement array size is " + e.length);
> for (int j = 0; j < e.length; j++ ){
> System.out.print(" " + e[j].getValue());
> }
> System.out.println("");
> }
> This prints out "MessageElement array size is 2", even though there's 3 elements that appear after the first Id element, here's the fragement of the response.
> <records xsi:type="sf:sObject">
> <sf:type>Contact</sf:type>
> <sf:Id>00330000006jryXAAQ</sf:Id>
> <sf:Id>00330000006jryXAAQ</sf:Id>
> <sf:FirstName>Fred</sf:FirstName>
> <sf:LastName>A>B</sf:LastName>
> </records>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
Title: RE: [jira] Commented: (AXIS-1818) MessageElement [] for <any> doesn't include all elements
- [jira] Commented: (AXIS-1818) Messa... Simon Fell
- [jira] Commented: (AXIS-1818) ... Simon Fell (JIRA)
- [jira] Commented: (AXIS-1818) ... Venkat Reddy (JIRA)
- [jira] Commented: (AXIS-1818) ... Simon Fell (JIRA)
- [jira] Commented: (AXIS-1818) ... Ashutosh Shahi (JIRA)
- [jira] Commented: (AXIS-1818) ... Jayachandra Sekhara Rao Sunkara (JIRA)
- [jira] Commented: (AXIS-1818) ... Davanum Srinivas (JIRA)
- [jira] Commented: (AXIS-1818) ... Ashutosh Shahi (JIRA)
- [jira] Commented: (AXIS-1818) ... Davanum Srinivas (JIRA)
- [jira] Commented: (AXIS-1818) ... Ashutosh Shahi (JIRA)
- [jira] Commented: (AXIS-1818) ... Davanum Srinivas (JIRA)
