+ public static void registerNamespaceSafely(Session session, String prefix,
+ String uri) {
+ try {
+ registerNamespaceSafely(session.getWorkspace()
+ .getNamespaceRegistry(), prefix, uri);
+ } catch (RepositoryException e) {
+ throw new ArgeoException("Cannot find namespace registry", e);
+ }
+ }
+
+ public static void registerNamespaceSafely(NamespaceRegistry nr,
+ String prefix, String uri) {
+ try {
+ String[] prefixes = nr.getPrefixes();
+ for (String pref : prefixes)
+ if (pref.equals(prefix)) {
+ String registeredUri = nr.getURI(pref);
+ if (!registeredUri.equals(uri))
+ throw new ArgeoException("Prefix " + pref
+ + " already registered for URI "
+ + registeredUri
+ + " which is different from provided URI "
+ + uri);
+ else
+ return;// skip
+ }
+ nr.registerNamespace(prefix, uri);
+ } catch (RepositoryException e) {
+ throw new ArgeoException("Cannot register namespace " + uri
+ + " under prefix " + prefix, e);
+ }
+ }
+