CS190 Requirements Document Colin Hartnett PROJECT TITLE XIDE: XML Integrated Development Environment BACKGROUND There exist many integrated development environments for common program languages that make large projects with many interdependent files easy to manage. Currently, there is no full-featured noncommericial Linux IDE for XML (Extensible Markup Language). Many specialized XML text editors exist, but there is no editor that incorporates file editing, project management, and testing features. USERS XIDE is useful for any developers working with large, interconnected XML-based projects. BASIC DESCRIPTION XIDE will provide a multiwindowed environment in which to edit XML documents and XML DTDs. There will be a graphical representation of the active document's tree, a project management feature that provides a means to group XML documents together, a console for executing XPath (addressing) commands, and a means of applying XSLT transformations and quickly viewing the results. XML documents could be validated inline against a DTD, XML Schema, or RELAX document. REQUIREMENTS * indicates essential + indicates important, but not essential - indicates low priority Text editor * Basic syntax highlighting * Smart indenting * Auto tag completion (user can disable) + Unlimited undo + Advanced syntax highlighting based on active DTD or XML Schema + User-definable macros for tag insertion - Unicode support Project management * Group multiple files together into a project * Saveable project files (in XML format) * Display files sorted by: name DTD/Schema default root namespace actual file structure date modified GUI * "Unlimited" open files * More than one document visible on the same screen * Collapsable representation of projects + Collapsable representation of the active document's parse tree + Lists of elements and entities from the current DTD - Grey out elements that are not permissible at the current cursor position - Visually indicate required elements at current cursor position - If cursor is inside element tag, list element's attributes - Visually indicate required attributes - Indicate content permissible in attributes + Window giving information on the current element including: name datatype enum values occurence (required/implied/optional) annotation - Support for easily specifying DTD/Schemas (Wizard-like) - Automatically generate a DTD from the current document Testing * Console to execute XPath * XML representation of results + Graphical, collapsable tree representation * XSLT transformations * DTD validation + XML Schema validation - RELAX validation - Realtime validation (i.e., some sort of indicator that shows whether the current document is or is not validated at all times) - Should only attempt to validate when document is well-formed - Error right away when an invalid element, entity, or attribute is entered - Step-by-step XSLT debugging