Madgarr / ksoap2-android

Automatically exported from code.google.com/p/ksoap2-android
0 stars 0 forks source link

Adding attributes to a simple property #112

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?

I am trying to create a new property inside a SoapObject that will contain 
simple string properties with attributes to them like this:

<Power Unit="kw">1500</Power>

here is the code i am using for my samples below.

 final SoapObject powerObject= new SoapObject(namespace, "CostOfRepairs");
        powerObject.addAttribute("Unit", getPowerUnit());

        PropertyInfo powerObjectProperty = new PropertyInfo();
        powerObjectProperty .setName("");
        powerObjectProperty .type = String.class;
        powerObjectProperty .setValue(getPower());
        powerObjectProperty .addProperty(powerObjectProperty);
        root.addSoapObject(powerObject); // this is my root for the hierarchy

What do you see instead?

The best that i could reach is the following:
<Power Unit="kw"><>1500</></Power>

i even tried to add everything as a string but that encodes the <> tags.
&ltPower Unit"kw"&gt1500&lt/Power&gt

What version of the product are you using? On what operating system?
ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar on android.

Please provide any additional information below.

Original issue reported on code.google.com by darkogro...@gmail.com on 19 Mar 2012 at 8:15

GoogleCodeExporter commented 8 years ago
Seems like you found an issue indirectly. I will push a fix and the test case 
for you soon.

Original comment by mosa...@gmail.com on 21 Mar 2012 at 12:01

GoogleCodeExporter commented 8 years ago
The commit 
https://github.com/mosabua/ksoap2-android/commit/f0e23aed58d2b8d0aabc4ae2436a2dc
8c4e036bc

has a unit test that produces the output as well as the fix needed for it to 
work. PropertyInfo is not intended to be used like you are trying to do here as 
far as I can tell.. 

Please verify and let me know of any problems. I can cut a new release whenever 
needed.

Original comment by mosa...@gmail.com on 21 Mar 2012 at 4:10

GoogleCodeExporter commented 8 years ago
Also i came across a new thing still related to this.

it is happening when ksoap is trying to parse the response when it is like this:

<Document Description="None">Some random text here</Document>

it fails inside soapSerializationEnvelope throwing a runtime exception: Mixed 
content:

in this method specifically:
 protected Object readUnknown(XmlPullParser parser, String typeNamespace, String typeName) throws IOException,
    XmlPullParserException;

on row 75:
  if (text != null && text.trim().length() != 0) {
                Logger.d("tag", text);
                //  throw new RuntimeException("Malformed input: Mixed content");
            }

now i know the text that needs to be extracted here is present and the 
resulting object should be again a soapPrimitive instead of a soap object.

Original comment by darkogro...@gmail.com on 21 Mar 2012 at 7:54