{
Element child = (Element)anl.item(i);
String attributeName = child.getAttribute("name");
String attributeType = child.getAttribute("type");
ContentTypeAttribute contentTypeAttribute = new ContentTypeAttribute();
contentTypeAttribute.setPosition(i);
contentTypeAttribute.setName(attributeName);
contentTypeAttribute.setInputType(attributeType);
// Get extra parameters
Node paramsNode = org.apache.xpath.XPathAPI.selectSingleNode(child, "xs:annotation/xs:appinfo/params");
if (paramsNode != null)
{
NodeList childnl = ((Element)paramsNode).getElementsByTagName("param");
for(int ci=0; ci < childnl.getLength(); ci++)
{
Element param = (Element)childnl.item(ci);
String paramId = param.getAttribute("id");
String paramInputTypeId = param.getAttribute("inputTypeId");
ContentTypeAttributeParameter contentTypeAttributeParameter = new ContentTypeAttributeParameter();
contentTypeAttributeParameter.setId(paramId);
if(paramInputTypeId != null && paramInputTypeId.length() > 0)
contentTypeAttributeParameter.setType(Integer.parseInt(paramInputTypeId));
contentTypeAttribute.putContentTypeAttributeParameter(paramId, contentTypeAttributeParameter);
NodeList valuesNodeList = param.getElementsByTagName("values");
for(int vsnli=0; vsnli < valuesNodeList.getLength(); vsnli++)
{
Element values = (Element)valuesNodeList.item(vsnli);