Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Plug-in System for the Xylia Extensible XML Editor Student: Jonathan Milley Supervisor: Dr. T. S. Norvell Outline Introduction Background Project Details Results/Status of project Future work Introduction Project Origination: Stemmed from work by Dr. Norvell, and Zhikai (Jack) Ding The SIMPLE System, a system for Proving and Programming Xylia a WYSIWYG XML editor library for Java was started as the editor component of SIMPLE Since its inception there have been 4 work terms completed on it. Introduction Motivation Previous work on Xylia has focused on the editing feature set Now Xylia needs a mechanism for building useful Systems Eventual goal is to complete the SIMPLE system that was the genesis of the project Introduction Objectives: Implement a standard interface to the Document Implement a plug-in system for dynamic addition/removal of features Implement a reference editor with plug-in capability Background XML (eXtensible Markup Language) XML is a standard set of rules for creating and defining mark up languages Markup languages are used to represent structured documents, HTML is a markup language XML is very strict on well-formedness and validity Background The Java Programming Language Created by Sun Microsystems Inc. Cross platform, i.e. Source code is compiled to byte code, which can be interpreted on any system with a Java runtime Syntax similar to C++, but more object oriented Many powerful libraries, and Third Party software available Background SIMPLE Integrated Development Environment for Programs, Proofs, and Proofs of Programs Not just a WYSIWYG editor, but also proof/program checker, other tools to help developer Tightly coupled Proof/Program Assistant for immediate feedback to user Project Details Two Major pieces for the Plug-in system The Document Interface Allows the plug-in to interact with the Document Implements the Standard Document Object Model interface The plug-in mechanism Allows the editor to load/unload plug-ins, as well as interact with them. Allows user to add/remove plug-ins from the system. Project Details Why the DOM? <p> <i> <b>abc</b> <em>def</em> </i> <b> <u>ghi</u> </b> </p> Rendered HTML Project Details The same document represented using the DOM Interface is much less cluttered, and requires no knowledge of the internal editor behavior to operate on the document. Project Details Plug-in Mechanism Allows developers to create feature sets, with out needing to know the internals of the editor Allows application developers to customize the base platform to create new applications Allows easy adaptation of existing components to work with Xylia Project Details Examples of possible Plug-ins Spell Checker: SIMPLE Proof Assistant Periodically scan the text of a document, after notification the document changes Interact with the SIMPLE proof assistant, as a component of the final SIMPLE system Database Interface Use Xylia to display/edit data from a Relational Database Project Details Methodology Standard Object Oriented programming techniques: information hiding, subclassing, etc. Design Patterns such as Adapter, Bridge, Factory, etc. Testing Methodology involved mainly Unit Testing using JUnit a Third Party Java tool Results/Status Project Status Partial DOM implementation Scaled back plug-in mechanism, one type of plug-in (Task plug-ins, which work on the document, and have User Interaction) All aspects of the Xylia plug-in system documented, including unfinished unimplemented portions Future Work Probable that more students will continue the project, either as a work term or a Senior Design project Xylia has been an ongoing project for several years, there is still much room for continuation and improvement It is also hoped that Xylia will see usage by members of the Faculty and the student body Thank You, I would welcome any questions at this time.