[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [pde-dev] Parser problem when using it as plugin
|
Try importing the required jars to your project and referencing them in the
pluging.xml as such:
<runtime>
<library name="generator.jar"/>
<library name="jars/xsdbeans.jar"/>
<library name="jars/xalan.jar"/>
<library name="jars/xercesImpl.jar"/>
<library name="jars/xml-apis.jar"/>
</runtime>
Hope this helps,
Bob Zuidema
----- Original Message -----
From: "Trin t" <svkk2@xxxxxxxxxxx>
To: <pde-dev@xxxxxxxxxxx>
Sent: Thursday, December 11, 2003 1:32 AM
Subject: [pde-dev] Parser problem when using it as plugin
>
> Hi,
> I am trying to validate a XML file using SAX parser. The program works
> fine when it is a standalone application. But when I convert it to a
plugin,
> The catch block for SAXParseException is not getting called, which it
should
> be otherwise. Any one has any idea what could the problem be ?
> I am using the following versions
>
> org.apache.xerces (4.0.13) "Xerces Based XML Parser"
> java.version=1.4.2_01
> eclipse platform version 2.1.1
>
> And the java code snippet along with plugin.xml is as follows :
>
> public void warning(final SAXParseException exception)
> {
> errorMsg = "Warning: " + exception.getMessage();
> errorMsg += " at line " + exception.getLineNumber()
> + ", column " + exception.getColumnNumber();
>
> doc.set(errorMsg);
> viewer.setDocument(doc);
> // Well-formedness is a prerequisite for validity
> valid = false;
>
> }
>
> public void error(final SAXParseException exception)
> { errorMsg = "Error: " + exception.getMessage();
> errorMsg += " at line " + exception.getLineNumber()
> + ", column " + exception.getColumnNumber();
> doc.set(errorMsg);
> viewer.setDocument(doc);
>
> valid = false;
> }
>
> public void fatalError(final SAXParseException exception)
> {
> errorMsg = "Fatal Error: " + exception.getMessage();
> errorMsg += " at line " + exception.getLineNumber()
> + ", column " + exception.getColumnNumber();
> doc.set(errorMsg);
> viewer.setDocument(doc);
>
> }
>
>
>
> /**
> * The action has been activated. The argument of the
> * method represents the 'real' action sitting
> * in the workbench UI.
> * @see IWorkbenchWindowActionDelegate#run
> */
> public void run(IAction action) {
> try {
>
> IFile fname =((IFileEditorInput)
> PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getAc
> tiveEditor().getEditorInput()).getFile();
> document = fname.getLocation().toString();
>
> parser = new SAXParser();
> final SampleAction handler = new SampleAction();
> parser.setErrorHandler(handler);
> // Turn on validation.
>
> parser.setFeature("http://xml.org/sax/features/validation", true);
> parser.setFeature("http://apache.org/xml/features/validation/schema",true)
> ;
> parser.setProperty("http://apache.org/xml/properties/schema/external-
> schemaLocation","http://www.w3.org/1999/xhtmlC:\\XHTML.xsd" );
> parser.parse(document);
>
>
> if (handler.isValid()) {
> errorMsg = document + " is valid.";
> doc.set(errorMsg);
> viewer.setDocument(doc);
> }
>
> else {
> // If the document isn't well-formed, an exception has
> // already been thrown and this has been skipped.
> errorMsg = document + " is well-formed.";
> doc.set(errorMsg);
> viewer.setDocument(doc);
> }
>
> }//try
> catch (SAXParseException err)
> {
> errorMsg = document + " is not well-formed at ";
> errorMsg += "Line " + err.getLineNumber() + ", column " +
> err.getColumnNumber();
> doc.set(errorMsg);
> viewer.setDocument(doc);
> }
>
> catch (IOException e)
> {
> errorMsg = "Due to an IOException, the parser could not check " +
document;
> doc.set(errorMsg);
> viewer.setDocument(doc);
> }
> catch (SAXException e) {
> e.printStackTrace();
> }
> }
>
> /**
> * Selection in the workbench has been changed. We
> * can change the state of the 'real' action here
> * if we want, but this can only happen after
> * the delegate has been created.
> * @see IWorkbenchWindowActionDelegate#selectionChanged
> */
> public void selectionChanged(IAction action, ISelection selection) {}
> /**
> * We can use this method to dispose of any system
> * resources we previously allocated.
> * @see IWorkbenchWindowActionDelegate#dispose
> */
> public void dispose() {}
>
> /**
> * We will cache window object in order to
> * be able to provide parent shell for the message dialog.
> * @see IWorkbenchWindowActionDelegate#init
> */
> public void init(IWorkbenchWindow window) {
> this.window = window;
> try {
> consoleView =
>
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showVie
w("org.eclipse.debug.ui.ConsoleView");
> viewer = (TextViewer)((AbstractDebugView) consoleView).getViewer();
> doc = viewer.getDocument();
> }
> catch (PartInitException e1) {
> e1.printStackTrace();
> }
>
>
> }
> }
> ===============================================
> Plugin.xml
>
> <runtime>
> <library name="validate.jar">
> <export name="*"/>
> </library>
> </runtime>
> <requires>
> <import plugin="org.eclipse.core.resources"/>
> <import plugin="org.eclipse.ui"/>
> <import plugin="org.apache.xerces"/>
> <import plugin="org.eclipse.debug.core"/>
> <import plugin="org.eclipse.debug.ui"/>
> <import plugin="org.eclipse.core.runtime"/>
> <import plugin="org.eclipse.core.boot"/>
> <import plugin="org.eclipse.ui.views"/>
> <import plugin="org.apache.lucene"/>
> <import plugin="org.eclipse.help"/>
> <import plugin="org.eclipse.help.appserver"/>
> <import plugin="org.eclipse.jface"/>
> <import plugin="org.eclipse.jface.text"/>
> <import plugin="org.eclipse.swt"/>
> <import plugin="org.eclipse.text"/>
> <import plugin="org.eclipse.ui.editors"/>
> <import plugin="org.eclipse.ui.workbench"/>
> <import plugin="org.eclipse.ui.workbench.texteditor"/>
> <import plugin="org.eclipse.update.core"/>
> </requires>
>
> _________________________________________________________________
> Discover India. Celebrate her diversity.
> http://server1.msn.co.in/features/tourism/ Come, fall in love!
>
> _______________________________________________
> pde-dev mailing list
> pde-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/pde-dev
>