1 19 20 package org.netbeans.modules.web.taglib; 21 import java.util.Enumeration ; 22 import org.w3c.dom.Element ; 23 import org.w3c.dom.Node ; 24 import org.xml.sax.*; 25 import org.netbeans.modules.xml.api.model.DTDUtil; 26 import org.netbeans.api.xml.services.UserCatalog; 27 28 32 public class TaglibGrammarQueryManager extends org.netbeans.modules.xml.api.model.GrammarQueryManager 33 { 34 private static final String XMLNS_ATTR="xmlns"; private static final String TAGLIB_TAG="taglib"; 37 public java.util.Enumeration enabled(org.netbeans.modules.xml.api.model.GrammarEnvironment ctx) { 38 if (ctx.getFileObject() == null) return null; 39 Enumeration en = ctx.getDocumentChildren(); 40 while (en.hasMoreElements()) { 41 Node next = (Node ) en.nextElement(); 42 if (next.getNodeType() == next.DOCUMENT_TYPE_NODE) { 43 return null; } else if (next.getNodeType() == next.ELEMENT_NODE) { 45 Element element = (Element ) next; 46 String tag = element.getTagName(); 47 if (TAGLIB_TAG.equals(tag)) { String xmlns = element.getAttribute(XMLNS_ATTR); 49 if (xmlns!=null && TaglibCatalog.J2EE_NS.equals(xmlns)) return org.openide.util.Enumerations.singleton (next); 51 } 52 } 53 } 54 55 return null; 56 } 57 58 public java.beans.FeatureDescriptor getDescriptor() { 59 return new java.beans.FeatureDescriptor (); 60 } 61 62 64 public org.netbeans.modules.xml.api.model.GrammarQuery getGrammar(org.netbeans.modules.xml.api.model.GrammarEnvironment ctx) { 65 UserCatalog catalog = UserCatalog.getDefault(); 66 if (catalog != null) { 67 EntityResolver resolver = catalog.getEntityResolver(); 68 if (resolver != null) { 69 try { 70 InputSource inputSource = resolver.resolveEntity(TaglibCatalog.TAGLIB_2_0_ID, null); 71 if (inputSource!=null) { 72 return DTDUtil.parseDTD(true, inputSource); 73 } 74 } catch(SAXException e) { 75 } catch(java.io.IOException e) { 76 } 77 } 78 } 79 return null; 80 } 81 82 } 83 | Popular Tags |