Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * XProcNamespaceContext.java
   *
   * Copyright 2008 Mark Logic Corporation.
   * All rights reserved.
   *
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation, either version 2 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 package com.xmlcalabash.util;
 
 
 import java.util.Set;

Author(s):
ndw
 
 public class XProcNamespaceContext {
     Hashtable<String,Stringnshash = new Hashtable<String,String> ();
    
    
Creates a new instance of XProcNamespaceContext
 
     public XProcNamespaceContext(Hashtable<String,Stringbindings) {
         for (String prefix : bindings.keySet()) {
             .put(prefix,bindings.get(prefix));
         }
     }
 
     public String getNamespaceURI(String prefix) {
         if (.containsKey(prefix)) {
             return .get(prefix);
         } else if ("xml".equals(prefix)) {
             return .;
         } else if ("xmlns".equals(prefix)) {
             return .;
         } else {
             return .;
         }
     }
 
     public String getPrefix(String namespace) {
         for (String key : .keySet()) {
             if (namespace.equals(.get(key))) {
                 return key;
             }
         }
         
         if (..equals(namespace)) {
             return "xml";
         } else if (..equals(namespace)) {
             return "xmlns";
         } else {
             return null;
         }
     }
 
     public Set<StringgetAllPrefixes() {
         return .keySet();
     }
 
     public Hashtable<String,Stringbindings() {
         return ;
     }
     
     public Iterator getPrefixes(String namespace) {
         Vector<Stringpfxs = new Vector<String> ();
         for (String key : .keySet()) {
             if (namespace.equals(.get(key))) {
                 pfxs.add(key);
             }
         }
         return pfxs.iterator();
     }
 
     public Iterator getPrefixes() {
         return null;
     }
 
     public void addBinding(String prefixString namespace) {
         .put(prefixnamespace);
     }
 
     public void delBinding(String prefix) {
        .remove(prefix);
    }
    public QName parseQName(String name) {
        QName newName = null;
            
        if (name.contains(":")) {
            int pos = name.indexOf(":");
            String prefix = name.substring(0, pos);
            String localName = name.substring(pos+1);
            String namespace = .get(prefix);
            
            if ("xml".equals(prefix)) {
                namespace = .;
            }
            if (namespace == null) {
                throw new IllegalArgumentException("No binding for prefix in name: " + name);
            }
            
            newName = new QName(namespacelocalNameprefix);
        } else {
            newName = new QName(getNamespaceURI(.), name"");
        }
        
        return newName;
    }
    
    public void dump() {
        ..println("Namespace context: " + this.hashCode());
        for (String prefix : .keySet()) {
            ..println("\t" + prefix + "=" + .get(prefix));
        }
    }
    
New to GrepCode? Check out our FAQ X