у меня пружина без подпружиненного приложения. Итак, у меня есть Spring-Configuration и Web, Business и Data Layer.
Приложение меняет xml без использования World с помощью элементов xml. Если клиент попытается написать какой-то XML-файл в приложении, его XML-файл сопоставляется с моделью Jaxb в методе @RestController, а затем вычисляется в businessLayer.
Мне нужно проверить XML-файл, прежде чем передать его на бизнес-уровне, как это сделать? Я делаю это.
Существует модель jaxb пользователя, подобная этой:
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "RiskMetric")
@XmlAccessorType(XmlAccessType.FIELD)
@EqualsAndHashCode
class User{
@XmlElement(name="name")
private String name;
@XmlElement(name="surname")
private String surname;
@XmlElement(name="age")
privage int age;
}
И есть мой контроллер:
@RestController
public class UserController{
@Autowired
private UserBusinessService service;
@RequestMapping(value="/user", method=RequestMethod.POST)
public void add(@RequestBody User user){
service.add(user);
}
}
Может ли jaxb использовать только xsd для проверки вводасообщения (я не нашел)
Я нашел фрагмент кода следующим образом:
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(locationOfMySchema);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setSchema(schema);
marshaller.marshal(objectToMarshal, new DefaultHandler());
Но как написать перехватчик для каждого объекта, чтобы использовать этот фрагмент кода?