public static StringBuffer openNamespaceDeclarationTag( String prefix, String header, Collection namespaces, Map prefixMap, Map attrs, StringBuffer target) { target = target == null ? new StringBuffer() : target; target.append("<"); if (prefix != null) { target.append(prefix); target.append(":"); } target.append(header); if (namespaces != null && !namespaces.isEmpty()) { Collection usedNamespaces = new ArrayList(); for (Iterator iterator = namespaces.iterator(); iterator.hasNext(); ) { Object item = iterator.next(); String currentNamespace = null; if (item instanceof DAVElement) { DAVElement currentElement = (DAVElement) item; currentNamespace = currentElement.getNamespace(); } else if (item instanceof String) { currentNamespace = (String) item; } if (currentNamespace != null && currentNamespace.length() > 0 && !usedNamespaces.contains(currentNamespace)) { usedNamespaces.add(currentNamespace); target.append(" xmlns"); if (prefixMap != null) { target.append(":"); target.append(prefixMap.get(currentNamespace)); } target.append("=\""); target.append(currentNamespace); target.append("\""); } } usedNamespaces.clear(); } if (attrs != null && !attrs.isEmpty()) { for (Iterator iterator = attrs.entrySet().iterator(); iterator.hasNext(); ) { Map.Entry entry = (Map.Entry) iterator.next(); String name = (String) entry.getKey(); String value = (String) entry.getValue(); target.append(" "); target.append(name); target.append("=\""); target.append(SVNEncodingUtil.xmlEncodeAttr(value)); target.append("\""); } } target.append(">\n"); return target; }