ho letto con successo uno schema XSD utilizzando org.eclipse.xsd.util.XSDResourceImpl
ed elaborare tutti gli elementi XSD contenuti, tipi, attributi ecc
Ma quando voglio processare un riferimento a un elemento dichiarato nella lo schema importato, ottengo null
come tipo. Sembra che gli schemi importati non vengano elaborati da XSDResourceImpl
. Qualche idea?Leggi XSD utilizzando org.eclipse.xsd.util.XSDResourceImpl
final XSDResourceImpl rsrc = new XSDResourceImpl(URI.createFileURI(xsdFileWithPath));
rsrc.load(new HashMap());
final XSDSchema schema = rsrc.getSchema();
...
if (elem.isElementDeclarationReference()){ //element ref
elem = elem.getResolvedElementDeclaration();
}
XSDTypeDefinition tdef = elem.getType(); //null for element ref
Aggiornamento:
ho fatto il XSD importato non valida, ma ottenere non fa eccezione. Significa che non è davvero analizzato. C'è un modo per forzare il caricamento di XSD importato insieme a quello principale?