В моем примере мне требуется XML, который не имеет атрибута xmlns = "..." в корневом узле.Принимающая сторона (Bose SoundTouch 20) не знает, что делать с этим элементом, и вызывает ошибку.И я не могу это изменить.Итак, я пришел с этим кодом
public static class AnyType {
@Key("@attr")
public String attr;
@Key
public String elem;
@Key
public String value;
}
@Test
public void test01_renderXMLWithoutXmlNs() throws XmlPullParserException, IOException {
// Don't create any NS Elements
final XmlNamespaceDictionary dict = new XmlNamespaceDictionary().set("", "");
final XmlHttpContent xmlContentForPostCall = new XmlHttpContent(dict, "AnyType", new AnyType());
final OutputStream os = new ByteArrayOutputStream();
xmlContentForPostCall.writeTo(os);
System.out.println( os.toString());
}
На Android (я тестировал с Android 8.1.0, LG Nexus 5X) я получаю
<?xml version='1.0' encoding='UTF-8' ?><AnyType />
Если я использую тот же код св приложении J2SE результат
<?xml version="1.0"?><AnyType xmlns="" />
Не уверен, что это проблема с XPP ниже (Android vs. J2SE).Любая подсказка, как избежать сериализации xmlns на обеих платформах, Android и J2SE.