Стандартного механизма не существует, но я, кажется, люди достигают этого, пытаясь создать JAXBContext в классе:
public boolean isValidJAXBClass(Class aClass) {
try {
JAXBContext.newInstance(aClass);
} catch(JAXBException e) {
return false;
}
return true;
}
Вам не нужны аннотации для маршалинга объекта JAXB.Чтобы обойтись без наличия @XmlRootElement, оберните его в JAXBElement.
Если вы хотите использовать альтернативные средства для представления метаданных, EclipseLink JAXB (MOXy) имеет файл связывания с внешним доступомна основе метаданных JAXB
Пример файла выглядит примерно так:
<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm">
<java-types>
<java-type name="org.example.order.PurchaseOrder">
<java-attributes>
<xml-attribute java-attribute="id"/>
<xml-element java-attribute="customer">
<xml-java-type-adapter value="org.example.order.CustomerAdapter"/>
</xml-element>
<xml-element java-attribute="lineItems" name="line-item"/>
</java-attributes>
</java-type>
</java-types>
</xml-bindings>
Для получения дополнительной информации см .: