1 19 20 28 29 package org.netbeans.modules.xml.wsdl.ui.schema.visitor; 30 31 import java.util.Iterator ; 32 import java.util.List ; 33 import javax.xml.namespace.QName ; 34 import org.netbeans.modules.xml.schema.model.Attribute; 35 import org.netbeans.modules.xml.schema.model.Element; 36 import org.netbeans.modules.xml.xam.Nameable; 37 import org.netbeans.modules.xml.xam.dom.AbstractDocumentComponent; 38 39 43 public class SchemaUtility { 44 45 46 public SchemaUtility() { 47 } 48 49 54 public static Attribute findAttribute(QName attrQName, Element element) { 55 Attribute attribute = null; 56 SchemaElementAttributeFinderVisitor seaFinder = new SchemaElementAttributeFinderVisitor(element); 57 element.accept(seaFinder); 58 59 List <Attribute> attributes = seaFinder.getAttributes(); 60 Iterator <Attribute> it = attributes.iterator(); 61 62 while(it.hasNext()) { 63 Attribute attr = it.next(); 64 if(attr instanceof Nameable) { 65 Nameable namedAttr = (Nameable) attr; 66 String attrName = namedAttr.getName(); 67 if (attrName.equals(attrQName.getLocalPart())) return attr; 68 69 QName aq = QName.valueOf(attrName); 70 String ns = aq.getNamespaceURI(); 71 String prefix = aq.getPrefix(); 72 if(ns == null || ns.trim().equals("") && prefix != null) { 73 ns = ((AbstractDocumentComponent) element).lookupNamespaceURI(prefix); 74 } 75 76 QName normalizedQName = new QName (ns, aq.getLocalPart()); 77 78 if(attrQName.equals(normalizedQName)) { 79 attribute = attr; 80 break; 81 } 82 } 83 } 84 85 return attribute; 86 } 87 } 88 | Popular Tags |