Open SasinduDilshara opened 1 month ago
import ballerina/data.xmldata; import ballerina/io; xml x = xml ` <A a="2"> <name a="10">1</name> <name a="10">2</name> </A> `; xml x3= xml ` <A a="2"> <name a="10">a</name> <name a="10">2</name> </A> `; xml x2 = xml ` <A a="2"> <name b="10">1</name> </A> `; public function main() { record{|record{}...;|}|error c = xmldata:parseAsType(x); io:println(c); // current behaviour:- {"name":{"#content":2}} // Expected behaviour - error c = xmldata:parseAsType(x3); io:println(c); // current behaviour:- {"name":{"#content":2}} // Expected behaviour - error record{|record{}[]...;|}|error d = xmldata:parseAsType(x); io:println(d); // current behaviour:- {"name":[{"#content":1},{"#content":2}]} // Expected behaviour - {"name":[{"#content":1, a: 10},{"#content":2, a: 10}]} d = xmldata:parseAsType(x2); io:println(d); // current behaviour:- {"name":[{"#content":1}]} // Expected behaviour - {"name":[{"#content":1, a: 10}]} d = xmldata:parseAsType(x3); io:println(d); // current behaviour:- {"name":[{"#content":"a"},{"#content":2}]} // Expected behaviour - {"name":[{"#content":"a", a: 10},{"#content":2, a: 10}]} record{|int...;|}|error e = xmldata:parseAsType(x); io:println(e); // current behaviour:- error Error ("expected 'int' value for the field 'name' found 'array' value") // Expected behaviour - {a: 2} e = xmldata:parseAsType(x2); io:println(e); // current behaviour:- {"name":{"b":10,"#content":1}} // Expected behaviour - {a: 2} e = xmldata:parseAsType(x3); io:println(e); // current behaviour:- error Error ("'string' value 'a' cannot be converted to 'int'") // Expected behaviour - {a: 2} }