private int pushNsDecls() { int total = nsContext.count(); NamespaceContextImpl.Element ns = nsContext.getCurrent(); if (total > prefixes.length) { // reallocate int m = Math.max(total, prefixes.length * 2); Encoded[] buf = new Encoded[m]; System.arraycopy(prefixes, 0, buf, 0, prefixes.length); for (int i = prefixes.length; i < buf.length; i++) buf[i] = new Encoded(); prefixes = buf; } int base = Math.min(prefixCount, ns.getBase()); int size = nsContext.count(); for (int i = base; i < size; i++) { String p = nsContext.getPrefix(i); Encoded e = prefixes[i]; if (p.length() == 0) { e.buf = EMPTY_BYTE_ARRAY; e.len = 0; } else { e.set(p); e.append(':'); } } prefixCount = size; return base; }
protected void writeNsDecls(int base) throws IOException { NamespaceContextImpl.Element ns = nsContext.getCurrent(); int size = nsContext.count(); for (int i = ns.getBase(); i < size; i++) writeNsDecl(i); }