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. <code:java> 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();
}