private UaValue BuildInnerComplex(string description, int length, bool generateSchema)
        {
            if (length == 1)
            {
                return(BuildJsonForObject(description, generateSchema));
            }

            var     jArray = new JArray();
            UaValue uaVal  = new UaValue();

            for (int i = 0; i < length; i++)
            {
                uaVal = BuildJsonForObject(description, generateSchema);
                jArray.Insert(i, uaVal.Value);
            }

            var jSchema = (generateSchema) ? DataTypeSchemaGenerator.GenerateSchemaForArray(new[] { length }, uaVal.Schema) : null;

            return(new UaValue(jArray, jSchema));
        }
        private UaValue BuildSimple(string type, int length, bool generateSchema)
        {
            var builtinType = DataTypeAnalyzer.GetBuiltinTypeFromTypeName(type.Split(':')[0], type.Split(':')[1]);
            var jSchema     = generateSchema ? DataTypeSchemaGenerator.GenerateSchemaForStandardTypeDescription(builtinType) : null;

            if (length == 1)
            {
                var jValue = JToken.FromObject(ReadBuiltinValue(builtinType));
                return(new UaValue(jValue, jSchema));
            }

            var a = new List <object>();

            for (int i = 0; i < length; i++)
            {
                a.Add(ReadBuiltinValue(builtinType));
            }

            var arrSchema = generateSchema ? DataTypeSchemaGenerator.GenerateSchemaForArray(new[] { length }, jSchema) : null;

            return(new UaValue(JToken.FromObject(a), arrSchema));
        }