Источник JAXB SchemaFactory порядок должен следовать порядку импорта между схемами?

Использование последней версии JAXB (Sun) и иерархия схем, которые используют директивы импорта между схемами для совместного использования определений типов. Проверка схемы активируется при вызове setSchema к Marshaller / Unmarshaller в JAXB, который должен отложить проверку до Xerces (используя Java 1.5). Я не хочу знать порядок директив импорта между схемами при создании объекта Schema с SchemaFactory. К сожалению, я не нашел возможности / свойства Xerces, которые бы позволяли это. Например, если a.xsd загружается в b.xsd с помощью импорта, следующий код не работает:

FileInputStream a = new FileInputStream("a.xsd");
FileInputStream b = new FileInputStream("b.xsd");

Schema schema = SchemaFactory.newInstance(
   XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(
      new Source[] { 
          new StreamSource(b),
          new StreamSource(a) 
      }
   );

Порядок массива Source должен быть a.xsd, а затем b.xsd. Есть ли способ обойти это?

9
задан skaffman 24 August 2010 в 05:56
поделиться

1 ответ

Что делать, если вы создаете схему в корневом источнике, а затем устанавливаете ResourceResolver (LSResourceResolver) для разрешения других импортированных схем во время создания схемы.

6
ответ дан 3 November 2019 в 01:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: