Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [pde-dev] Parser problem when using it as plugin

Ask this question on the eclipse.platform newsgroup.

Bob

----- Original Message ----- 
From: "Trin t" <svkk2@xxxxxxxxxxx>
To: <pde-dev@xxxxxxxxxxx>
Sent: Thursday, December 11, 2003 12: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
>
>



Back to the top