Как проверить XML с помощью Jaxb? - PullRequest
1 голос
/ 05 октября 2019

у меня пружина без подпружиненного приложения. Итак, у меня есть 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());

Но как написать перехватчик для каждого объекта, чтобы использовать этот фрагмент кода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...