В настоящее время я пытаюсь реализовать службу, совместимую с сбором открытых архивов, с использованием Spring Boot 3/Java 17. Протокол основан на XML, поэтому я генерирую классы Java из OAI-PMH.xsd (и других) и JAXB2Marshaller, когда отправка результата.
Однако упорядоченный ответ недействителен, согласно проверке XML, и причиной является отсутствие/неправильное размещение xsi:schemaLocation в некорневом элементе XML:
2024-07-03T14:02:59Z
http://localhost:4040/api/export/v1/oai/Identify
repositoryName
http://localhost:4040/api/export/v1/oai/Identify
2.0
info@example.com
2019-05-13T15:31:39Z
persistent
YYYY-MM-DDThh:mm:ssZ
oai
publications.example.com
:
oai:publications.example.com:1234
Сообщается об ошибке: cvc-complex-type.2.4.c: Соответствующий подстановочный знак является строгим, но для элемента 'oai:oai-identifier'.xml( cvc-complex-type.2.4.c)
Если я (вручную) добавляю xsi:schemaLocation в , документ становится действительным:
oai
publications.example.com
:
oai:publications.example.com:1234
Как можно автоматически добавить расположение схемы к элементу во время маршалинга?
Сам маршалинг выполняется с помощью Spring MarshallingHttpMessageConverter:@Configuration
class WebConfig implements WebMvcConfigurer {
@Override
public void extendMessageConverters(
@NonNull List
Подробнее здесь: https://stackoverflow.com/questions/787 ... marshaller
Как добавить SchemaLocation в элемент XML при маршалинге с помощью Jaxb2Marshaller? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение