processPropertyAnnotations(info, cls, javaHasAnnotations, property);
if (helper.isAnnotationPresent(javaHasAnnotations, XmlPath.class)) {
XmlPath xmlPath = (XmlPath) helper.getAnnotation(javaHasAnnotations, XmlPath.class);
property.setXmlPath(xmlPath.value());
Field tempField = new XMLField(xmlPath.value());
boolean isAttribute = tempField.getLastXPathFragment().isAttribute();
property.setIsAttribute(isAttribute);
// set schema name
String schemaName = XMLProcessor.getNameFromXPath(xmlPath.value(), property.getPropertyName(), isAttribute);
QName qName;
NamespaceInfo nsInfo = getPackageInfoForPackage(cls).getNamespaceInfo();
if(isAttribute){
if (nsInfo.isAttributeFormQualified()) {
qName = new QName(nsInfo.getNamespace(), schemaName);
} else {
qName = new QName(schemaName);
}
}else{
if (nsInfo.isElementFormQualified()) {
qName = new QName(nsInfo.getNamespace(), schemaName);
} else {
qName = new QName(schemaName);
}
}
property.setSchemaName(qName);
//create properties for any predicates
XPathFragment fragment = tempField.getXPathFragment();
String currentPath = "";
while(fragment != null && !(fragment.nameIsText()) && !(fragment.isAttribute())) {
if(fragment.getPredicate() != null) {
//can't append xpath directly since it will contain the predicate
String fragmentPath = fragment.getLocalName();