Programmazione:Java/Eclipse RCP/Visualizzare il contenuto di un XSD in una Tree
Da WikiSitech.
Versione del 16 feb 2007 alle 10:04 di Rimondini (discussione | contributi)
Eclipse mette a disposizione delle classi che permettono il parsing e la visualizzazione di un qualsiasi XSD, andando eventualmente a risolvere le import e le include.
Dato che Eclipse utilizza un modello EMF per rappresentare in modo generalizzato l'XSD, per effettuare il parsing bisogna utilizzare le classi Resource di EMF.
XSDSchema loadXSD(String URL) {
Map option = new HashMap();
option.put("XSD_TRACK_LOCATION", Boolean.TRUE);
XSDItemProviderAdapterFactory syntacticAdapterFactory = new XSDItemProviderAdapterFactory();
BasicCommandStack commandStack = new BasicCommandStack();
AdapterFactoryEditingDomain editingDomain = new AdapterFactoryEditingDomain(syntacticAdapterFactory, commandStack);
editingDomain.getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("xsd", new XSDResourceFactoryImpl());
XSDResourceImpl xsdResource = (XSDResourceImpl)editingDomain.getResourceSet().createResource(URI.createURI(URL));
try {
xsdResource.load(editingDomain.getResourceSet().getLoadOptions());
} catch (IOException e) {
e.printStackTrace();
}
return xsdResource.getSchema();
}