private synchronized NamespaceImpl create(String namespace) throws SQLException {
   if (byNamespace.containsKey(namespace)) return byNamespace.get(namespace);
   table.insert(null, namespace);
   NamespaceImpl ns = new NamespaceImpl(null, namespace);
   byNamespace.put(ns.getName(), ns);
   return ns;
 }
 public void setPrefix(String prefix, String name) throws RdbmsException {
   NamespaceImpl ns = findNamespace(name);
   try {
     table.updatePrefix(prefix, name);
   } catch (SQLException e) {
     throw new RdbmsException(e);
   }
   ns.setPrefix(prefix);
   byPrefix.put(prefix, ns);
 }
 public void removePrefix(String prefix) throws RdbmsException {
   NamespaceImpl ns = findByPrefix(prefix);
   if (ns == null) return;
   try {
     table.updatePrefix(prefix, ns.getName());
   } catch (SQLException e) {
     throw new RdbmsException(e);
   }
   ns.setPrefix(null);
   byPrefix.remove(prefix);
 }