Title: RE: [jira] Commented: (AXIS-1818) MessageElement [] for <any> doesn't include all elements

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&gt;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



Reply via email to