Rename inputLen to inputLength
diff --git a/ndn-cpp/encoding/BinaryXMLDecoder.c b/ndn-cpp/encoding/BinaryXMLDecoder.c
index af512a0..5798364 100644
--- a/ndn-cpp/encoding/BinaryXMLDecoder.c
+++ b/ndn-cpp/encoding/BinaryXMLDecoder.c
@@ -12,7 +12,7 @@
   unsigned int value = 0;
   
 	while (1) {
-    if (self->offset >= self->inputLen)
+    if (self->offset >= self->inputLength)
       return "ndn_BinaryXMLDecoder_decodeTypeAndVal read past the end of the input";
     
 		unsigned int octet = (unsigned int)(self->input[self->offset++] & 0xff);
diff --git a/ndn-cpp/encoding/BinaryXMLDecoder.h b/ndn-cpp/encoding/BinaryXMLDecoder.h
index 65f04c7..0dba632 100644
--- a/ndn-cpp/encoding/BinaryXMLDecoder.h
+++ b/ndn-cpp/encoding/BinaryXMLDecoder.h
@@ -13,19 +13,28 @@
 
 struct ndn_BinaryXMLDecoder {
   const unsigned char *input;
-  unsigned int inputLen;
+  unsigned int inputLength;
   unsigned int offset;
 };
 
-static void ndn_BinaryXMLDecoder_init(struct ndn_BinaryXMLDecoder *self, const unsigned char *input, unsigned int inputLen) {
+static void ndn_BinaryXMLDecoder_init(struct ndn_BinaryXMLDecoder *self, const unsigned char *input, unsigned int inputLength) {
   self->input = input;
-  self->inputLen = inputLen;
+  self->inputLength = inputLength;
   self->offset = 0;
 }
 
 // Even though the first byte should not be zero, this silently ignores initial zeros.
 const char *ndn_BinaryXMLDecoder_decodeTypeAndValue(struct ndn_BinaryXMLDecoder *self, unsigned int *type, unsigned int *value);
 
+/**
+ * Set the offset into the input, used for the next read.
+ * @param self pointer to the ndn_BinaryXMLDecoder struct
+ * @param offset the new offset
+ */
+static inline void ndn_BinaryXMLDecoder_seek(struct ndn_BinaryXMLDecoder *self, unsigned int offset) {
+  self->offset = offset;
+}
+
 #ifdef	__cplusplus
 }
 #endif