JsonXMLRootProvider { protected QName getXmlRootElementName(Class<?> type) { XmlRootElement xmlRootElement = type.getAnnotation(XmlRootElement.class); if (xmlRootElement == null) { return null; } String localName; if ("##default".equals(xmlRootElement.name())) { localName = Character.toLowerCase(type.getSimpleName().charAt(0)) + type.getSimpleName().substring(1); } else { localName = xmlRootElement.name(); } XmlSchema xmlSchema = type.getPackage().getAnnotation(XmlSchema.class); String namespaceURI = getNamespaceURI(xmlRootElement, xmlSchema); return new QName(namespaceURI, localName, getPrefix(namespaceURI, xmlSchema)); }  QName getName(Class<?> type); JAXBElement<?> createElement(Class<?> type, Object value);  }
@Test public void testGetXmlRootElementName() { JsonXMLRootProvider provider = new JsonXMLRootProvider(); Assert.assertEquals(new QName("sampleRootElement"), provider.getXmlRootElementName(SampleRootElement.class)); Assert.assertNull(provider.getXmlRootElementName(EmptyType.class)); Assert.assertNull(provider.getXmlRootElementName(SampleType.class)); Assert.assertNull(provider.getXmlRootElementName(SampleTypeWithNamespace.class)); }