1 package net.sf.saxon.xpath; 2 3 import net.sf.saxon.om.NamespaceResolver; 4 5 import javax.xml.namespace.NamespaceContext ; 6 import java.util.ArrayList ; 7 import java.util.Iterator ; 8 import java.util.List ; 9 10 15 16 public class NamespaceContextImpl implements NamespaceContext , NamespaceResolver { 17 18 NamespaceResolver resolver; 19 20 24 25 public NamespaceContextImpl(NamespaceResolver resolver) { 26 this.resolver = resolver; 27 } 28 29 37 38 public String getURIForPrefix(String prefix, boolean useDefault) { 39 return resolver.getURIForPrefix(prefix, useDefault); 40 } 41 42 46 47 public Iterator iteratePrefixes() { 48 return resolver.iteratePrefixes(); 49 } 50 51 56 57 public String getNamespaceURI(String prefix) { 58 if (prefix.equals("xmlns")) { 59 return "http://www.w3.org/2000/xmlns/"; 60 } 61 return resolver.getURIForPrefix(prefix, true); 62 } 63 64 69 70 public String getPrefix(String uri) { 71 Iterator prefixes = iteratePrefixes(); 72 while (prefixes.hasNext()) { 73 String p = (String )prefixes.next(); 74 String u = resolver.getURIForPrefix(p, true); 75 if (u.equals(uri)) { 76 return p; 77 } 78 } 79 return null; 80 } 81 82 87 public Iterator getPrefixes(String uri) { 88 List list = new ArrayList (4); 89 Iterator prefixes = iteratePrefixes(); 90 while (prefixes.hasNext()) { 91 String p = (String )prefixes.next(); 92 String u = resolver.getURIForPrefix(p, true); 93 if (u.equals(uri)) { 94 list.add(p); 95 } 96 } 97 return list.iterator(); 98 } 99 } 100 101 102 | Popular Tags |