Finally applied it properly. Thank you #lexicore
Here is my implementation for the mixed property
{
type: 'classInfo',
localName: 'ItemizedForDateType', //<date>
propertyInfos:[
{
type: 'element',
name: 'priceTextType',
elementName: 'price',
typeInfo: 'DOTWXML.PriceFormattedType'
},
{
type: 'element',
name: 'priceMinSellTextType',
elementName: 'priceMinimumSelling',
typeInfo: 'DOTWXML.PriceFormattedType'
}
]
},
{
type: 'classInfo',
localName: 'PriceFormattedType',
propertyInfos:[
{
type: 'elementRef',
name: 'charge',
elementName: 'formatted',
collection : true,
mixed: true
},
]
}
And the result of unmarshall is something like the following:
"itemizedForDateType": [
{
"TYPE_NAME": "DOTWXML.ItemizedForDateType",
"priceTextType": {
"TYPE_NAME": "DOTWXML.PriceFormattedType",
"charge": [
"236.8738",
{
"name": {
"namespaceURI": "",
"localPart": "formatted",
"prefix": "",
"key": "formatted",
"string": "formatted"
},
"value": "236.87"
}
]
}
}
]
I made a mistake by removing "collection : true" and was getting "{}" after unmarshall. Once I realized the "collection : true" was required, put it in the context and everything unmarshalled properly.