Issue in adding custom tag with attribute in xmpp message stanza using asmack PacketExtension

In my chat Application I want to delete message from both sender-receiver side,

for that I send acknowledgement through add replace tag with id attribute

sender side,

Message Removed

Receiver side get null id in replace tag,

Message Removed

---->for that I used PacketExtension

public class MessageExtensionProvider implements PacketExtension {

private String mess_server_id;

public static String namespace = “urn:xmpp:message-correct:0”; //<- what is namespace? what should it be?

public static String elementname = “replace”;

public MessageExtensionProvider() {

}

public MessageExtensionProvider(String id) {

this.mess_server_id = id;

}

public void setid(String value) {

this.mess_server_id = value;

}

public String getid() {

return mess_server_id;

}

public String getElementName() {

return MessageExtensionProvider.elementname;

}

public String getNamespace() {

return MessageExtensionProvider.namespace;

}

public String toXML() {

StringBuffer builder = new StringBuffer();

builder.append("<").append(getElementName()).append(" ");

builder.append(“xmlns=”").append(getNamespace()).append("" ");

builder.append(“id=”").append(mess_server_id).append(""" + “>” + “”);

return builder.tostring();

}

}

----->used this parser:

public class EditDeleteExtensionProvider implements PacketExtensionProvider {

//@Override

public PacketExtension parseExtension(XmlPullParser parser) throws Exception {

// TODO Auto-generated method stub

MessageExtensionProvider fileExt = new MessageExtensionProvider();

int eventType = parser.next();

while (eventType == XmlPullParser.START_TAG) {

String name = parser.getName();

// System.out.println(“Extension provider nm get” + fileExt.toXML() + " " + name);

switch (parser.getEventType()) {

case XmlPullParser.START_TAG:

if (name.equals(“id”)) {

fileExt.setid(parser.nextText());

}

}

eventType = parser.next();

}

return fileExt;

}

}

---->add this provider

ProviderManager.getInstance().addExtensionProvider(

MessageExtensionProvider.elementname,MessageExtensionProvider.namespace,

new EditDeleteExtensionProvider());

Your parser is faulty: You only set ‘name’ once.