private void parseClassList() {
		try {
			classList = new ArrayList<Class<?>>();
			int pos = this.index + this.dataCount;
			int fullNameLength = 0;
			String fullName = null;
			byte b;
			while (pos < this.count) {
				b = this.value[pos++];
				fullNameLength = ByteUtils.byteToInt(this.value[pos++]);
				fullName = new String(this.value, pos, fullNameLength);
				if (b == XsonConst.CLASS_DES) {
					classList.add(XsonTypeUtils.findClass(fullName));
				} else if (b == XsonConst.CLASS_REF) {
					Class<?> customType = XsonSupport
							.getCustomAgreementType(fullName);
					if (null == customType) {
						throw new XsonDeserializerException(
								"Unknown user-defined types key : " + fullName);
					}
					classList.add(customType);
				} else {
					throw new XsonDeserializerException(
							"Illegal class identity : " + (b & 0xFF));
				}
				pos += fullNameLength;
			}
		} catch (Exception e) {
			throw new XsonDeserializerException(e);
		}
	}