Programmazione:Java/Eclipse RCP/Visualizzare il contenuto di un XSD in una Tree

Da WikiSitech.
Vai alla navigazioneVai alla ricerca

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();

}