MOXy's Dynamic JAXB
MOXy предлагает динамическую реализацию JAXB. Вы можете загрузиться из схемы XML, и вместо статических классов вы можете взаимодействовать с экземплярами DynamicEntity с помощью общих методов get / set:
FileInputStream xsd = new FileInputStream("src/example/customer.xsd");
DynamicJAXBContext jaxbContext =
DynamicJAXBContextFactory.createContextFromXSD(xsd, null, null, null);
FileInputStream xmlInputStream = new FileInputStream("src/example/dynamic/customer.xml");
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
DynamicEntity customer = (DynamicEntity) unmarshaller.unmarshal(xmlInputStream);
System.out.println(customer.<String>get("name"));
Для получения дополнительной информации см .:
Объекты служебных данных (SDO)
Для этого вы также можете использовать объекты данных службы (JSR-235).
FileReader xsd = new FileReader("customer.xsd");
XSDHelper.INSTANCE.define(xsd, null);
FileReader xml = new FileReader("input.xml");
XMLDocument doc = XMLHelper.INSTANCE.load(xml, null, null);
DataObject customerDO = doc.getRootObject();
int id = customerDO.getInt("id");
DataObject addressDO = customerDO.getDataObject("contact-info/address");
Для получения дополнительной информации см .: