Обычно объекты jaxb разбираются на основе их пространства имен, поэтому пространство имен связано с вашими объектами JAXB.В частности, если вы сгенерировали свои классы JAXB из XSD, пакет (jaxbObject.getCLass (). GetPackage () будет содержать информацию аннотации, которая включает в себя объявленное пространство имен.
Вы можете сделать это сложным способом и посмотреть вверхобъект пакета и его аннотацию, или вы можете использовать JAXBIntrospector из вашего экземпляра контекста. Таким образом, предполагается, что ваш объект jaxb - это «jaxbObject», а «jaxbContent» - это ваш экземпляр JAXBContext:
JAXBIntrospector introspector = jaxbContext.createJAXBIntrospector();
if (!introspector.isElement(jaxbObject))
throw new JAXBException("Type '" + objectToMarshall.getClass().getName() + "' is not a JAXB object.");
QName qname = introspector.getElementName(jaxbObject);
if (qname == null)
throw new JAXBException("Type '" + jaxbObject.getClass().getName()
+ "' is not a JAXB object instance.");
String namespaceUri = qname.getNamespaceURI();