Jaxb получает корневой элемент, который проверяет XML на соответствие нескольким корневым элементам XSD.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Jaxb получает корневой элемент, который проверяет XML на соответствие нескольким корневым элементам XSD.

Сообщение Anonymous »

У нас есть xsd с несколькими возможными корневыми элементами.
Проверяемый xml может принимать любой из них, но, очевидно, один раз для каждого xml.
Я не могу разглашать фактический xsd но давайте представим что-то подобное:

Код: Выделить всё




[...]




[...]



В фактическом принятом xsd корневых элементов гораздо больше, чем два, а также их содержимое может сильно различаться.

Мы не можем изменить способ это сделать , мы должны соблюдать его стандарт.
У нас также есть Java-код валидатора Jaxb, который уже работает нормально, это только его «очаг»:

Код: Выделить всё

    // From parameters
String xmlCode = "[...]" // OMISSIS the content of the xml
String xsdFilePath = "com/sample/schema/xsd/Sample.xsd";

[...]

ByteArrayInputStream xmlInputStream = new ByteArrayInputStream(xmlCode.getBytes("UTF-8"));
SimpleHandler xmlParseHandler = new SimpleHandler();

SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schemaFactory.setErrorHandler(xmlParseHandler);

URL schemaURL = Thread.currentThread().getContextClassLoader().getResource(xsdFilePath);
Schema schema = schemaFactory.newSchema(schemaURL);

Validator schemaValidator = schema.newValidator();
schemaValidator.setErrorHandler(xmlParseHandler);

// Validate xml instance against the grammar.
schemaValidator.validate(new StreamSource(xmlInputStream));
if (xmlParseHandler.getSaxParseExceptionList() != null) {
logger.warn("WARNING : xml is not valid : " + xmlParseHandler.getSaxParseExceptionMessages().toString());
[...]
}
Однако мне необходимо определить, какой из всех корневых элементов действительно подтвердил XML.
Итак, какой единственный корневой элемент был принят в текущий проверенный xml .
Проект получит очень большое количество этих XML-файлов, поэтому я хотел бы принять более легкое возможное решение (т. е. отсутствие дальнейшего DOM в памяти).
Это было бы еще лучше, если бы Jaxb сам мне сказал какой корневой элемент проверил XML после процесса проверки.

Подробнее здесь: https://stackoverflow.com/questions/792 ... lements-xs
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»