Element elem = DOMUtils.getFirstElement(element);
while (elem != null) {
String name = elem.getLocalName();
if ("properties".equals(name) || "headers".equals(name)) {
Metadata map = parseMapData(context, beanMetadata, elem);
beanMetadata.addProperty(name, map);
} else if ("binding".equals(name)) {
setFirstChildAsProperty(element, context, beanMetadata, "bindingConfig");
} else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name) || "outInterceptors".equals(name)
|| "outFaultInterceptors".equals(name) || "features".equals(name) || "schemaLocations".equals(name) || "handlers".equals(name)) {
Metadata list = parseListData(context, beanMetadata, elem);
beanMetadata.addProperty(name, list);
} else if ("features".equals(name) || "providers".equals(name)
|| "schemaLocations".equals(name) || "modelBeans".equals(name)
|| "serviceBeans".equals(name)) {
Metadata list = parseListData(context, beanMetadata, elem);
beanMetadata.addProperty(name, list);
} else if ("model".equals(name)) {
List<UserResource> resources = ResourceUtils.getResourcesFromElement(elem);
MutablePassThroughMetadata value = context.createMetadata(MutablePassThroughMetadata.class);
value.setObject(resources);