From: Darin C. <DC...@pd...> - 2014-08-29 21:59:03
|
You might try something like <collection create-type=”java.util.ArrayList” field=”childElems”> <structure name=”ChildElem”><value name=”ChildElemValue” style=”attribute” type=”java.lang.String”/></structure> </collection> That is, the collection has no name, in particular, but is composed of a bunch of ‘ChildElem’ elements. The ‘ChildElem’ elements, themselves, don’t have any special binding to an object, but are just structural XML, containing an attribute named “ChildElemValue” which is a String. Not absolutely sure this will work right, but it might. From: Bhowmik, Bindul [mailto:bin...@gm...] Sent: Friday, August 29, 2014 3:43 PM To: jib...@li... Subject: [jibx-users] Unmarshalling attributes of child element to a collection Hello, I am trying to use JiBX to parse a larger XML, which includes a structure similar to the ones noted below: Schema: <xs:complexType name="Parent"> <xs:sequence> <xs:element name="ChildElem" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="ChildElemValue" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="Child1" type="xs:string"/> <xs:attribute name="Child2" type="xs:int"/> </xs:complexType> Sample Value: <Parent Child1="AttrVal" Child2="999"> <ChildElem ChildElemValue="SomeVal"/> <ChildElem ChildElemValue="SomeVal2"/> </Parent> The equivalent class I am trying to map this to is: public class Parent { private String child1; private int Child2; private List<String> childElems; } I am trying to write a mapping for marshalling and unmarshalling, without requiring a class to represent the ChildElem, because all it will ever have is a string in the ChildElemValue attribute. I am open to (but not experienced with) custom Marshaller / Unmarshaller, and if so, I would like to reuse them as much as possible, as there are similar structures as above (with different element / attribute names) all over the project. Any help or direction in accomplishing this would be greatly appreciated. Regards, Bindul ________________________________ This message and its contents (to include attachments) are the property of National Health Systems, Inc. and may contain confidential and proprietary information. This email and any files transmitted with it are intended solely for the use of the individual or entity to whom they are addressed. You are hereby notified that any unauthorized disclosure, copying, or distribution of this message, or the taking of any unauthorized action based on information contained herein is strictly prohibited. Unauthorized use of information contained herein may subject you to civil and criminal prosecution and penalties. If you are not the intended recipient, you should delete this message immediately and notify the sender immediately by telephone or by replying to this transmission. |