229 } |
229 } |
230 |
230 |
231 @Override |
231 @Override |
232 public void childElement(UnmarshallingContext.State state, TagName arg) throws SAXException { |
232 public void childElement(UnmarshallingContext.State state, TagName arg) throws SAXException { |
233 ChildLoader child = childUnmarshallers.get(arg.uri,arg.local); |
233 ChildLoader child = childUnmarshallers.get(arg.uri,arg.local); |
234 if(child==null) { |
234 if (child == null) { |
235 if ((beanInfo != null) && (beanInfo.getTypeNames() != null)) { |
235 child = catchAll; |
236 Iterator typeNamesIt = beanInfo.getTypeNames().iterator(); |
236 if (child==null) { |
237 QName parentQName = null; |
237 super.childElement(state,arg); |
238 if ((typeNamesIt != null) && (typeNamesIt.hasNext()) && (catchAll == null)) { |
238 return; |
239 parentQName = (QName) typeNamesIt.next(); |
|
240 String parentUri = parentQName.getNamespaceURI(); |
|
241 child = childUnmarshallers.get(parentUri, arg.local); |
|
242 } |
|
243 } |
|
244 if (child == null) { |
|
245 child = catchAll; |
|
246 if(child==null) { |
|
247 super.childElement(state,arg); |
|
248 return; |
|
249 } |
|
250 } |
239 } |
251 } |
240 } |
252 |
241 |
253 state.setLoader(child.loader); |
242 state.setLoader(child.loader); |
254 state.setReceiver(child.receiver); |
243 state.setReceiver(child.receiver); |