/// <summary> Return a byte array with namespace compensation /// witht the orginal encoding format /// </summary> /// <returns> /// /// </returns> public byte[] toBytes() { byte[] ba = new byte[Size]; int os = (int)l; int len = (int)(l >> 32); int os1 = 0; byte[] xml = vn.getXML().getBytes(); if (stLen == 0) { Array.Copy(xml, os, ba, 0, len); return(ba); } int enc = vn.getEncoding(); int temp = 0; switch (enc) { case VTDNav.FORMAT_UTF_16BE: case VTDNav.FORMAT_UTF_16LE: temp = (stLen + 1) << 1; break; default: temp = stLen + 1; break; } Array.Copy(xml, os, ba, 0, temp); //namespace compensation os1 += temp; int tos = 0, tlen = 0; for (int i = 0; i < fib.size_Renamed_Field; i++) { //System.out.println("i ==>"+fib.intAt(i)); switch (enc) { case VTDNav.FORMAT_UTF_16BE: Array.Copy(ws, 0, ba, os1, 2); os1 += 2; tos = vn.getTokenOffset(fib.intAt(i)) << 1; tlen = (vn.getTokenLength(fib.intAt(i)) & 0xffff) << 1; Array.Copy(xml, tos, ba, os1, tlen); os1 += tlen; Array.Copy(ws, 2, ba, os1, 2); os1 += 2; tos = (vn.getTokenOffset(fib.intAt(i) + 1) - 1) << 1; tlen = ((vn.getTokenLength(fib.intAt(i) + 1) & 0xffff) + 2) << 1; Array.Copy(xml, tos, ba, os1, tlen); os1 += tlen; break; case VTDNav.FORMAT_UTF_16LE: Array.Copy(ws, 1, ba, os1, 2); os1 += 2; tos = vn.getTokenOffset(fib.intAt(i)) << 1; tlen = (vn.getTokenLength(fib.intAt(i)) & 0xffff) << 1; Array.Copy(xml, tos, ba, os1, tlen); os1 += tlen; Array.Copy(ws, 3, ba, os1, 2); os1 += 2; tos = (vn.getTokenOffset(fib.intAt(i) + 1) - 1) << 1; tlen = ((vn.getTokenLength(fib.intAt(i) + 1) & 0xffff) + 2) << 1; Array.Copy(xml, tos, ba, os1, tlen); os1 += tlen; break; default: Array.Copy(ws, 1, ba, os1, 1); os1++; tos = vn.getTokenOffset(fib.intAt(i)); tlen = (vn.getTokenLength(fib.intAt(i)) & 0xffff); Array.Copy(xml, tos, ba, os1, tlen); os1 += tlen; Array.Copy(ws, 3, ba, os1, 1); os1++; tos = vn.getTokenOffset(fib.intAt(i) + 1) - 1; tlen = (vn.getTokenLength(fib.intAt(i) + 1) & 0xffff) + 2; Array.Copy(xml, tos, ba, os1, tlen); os1 += tlen; break; } } switch (enc) { case VTDNav.FORMAT_UTF_16BE: case VTDNav.FORMAT_UTF_16LE: temp = (stLen + 1) << 1; break; default: temp = stLen + 1; break; } Array.Copy(xml, os + temp, ba, os1, len - temp); return(ba); }