x ide xml Integrated Development Environment Specifications Document 1 Project Description 2 Specifi fications

Similar documents
COMP9321 Web Application Engineering

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML

User Manual and Programmers' Reference


7.1 Introduction. extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML

COMP9321 Web Application Engineering. Extensible Markup Language (XML)

M359 Block5 - Lecture12 Eng/ Waleed Omar

XML. Objectives. Duration. Audience. Pre-Requisites

User Manual and Programmers' Reference

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

A Guide to CMS Functions

Introduction to Topologi Markup Editor , 2005 Topologi Pty. Ltd.

Introduction to Topologi Professional Edition

Agenda. Summary of Previous Session. XML for Java Developers G Session 6 - Main Theme XML Information Processing (Part II)

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

Altova XMLSpy 2013 Tutorial

Introduction to XML 3/14/12. Introduction to XML

Introduction to XML. XML: basic elements

516. XSLT. Prerequisites. Version 1.2

COMP9321 Web Application Engineering

WPS Workbench. user guide. "To help guide you through using the WPS user interface (Workbench) to create, edit and run programs"

Altova XMLSpy 2014 Tutorial

Altova XMLSpy Tutorial

Oxygen Xsd From Xml File Visual Studio Generate Sample

.. Cal Poly CPE/CSC 366: Database Modeling, Design and Implementation Alexander Dekhtyar..

A Guide to Quark Author Web Edition 2015

XML Metadata Standards and Topic Maps

Programming with XML in the Microsoft.NET Framework

Oxygen XML Developer plugin

XML. Jonathan Geisler. April 18, 2008

User Interaction: XML and JSON

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

Mulberry Classes Guide to Using the Oxygen XML Editor (v20.0)

Introduction to Topologi Professional Edition

XML: Extensible Markup Language

Chapter 1: Getting Started. You will learn:

CSI 3140 WWW Structures, Techniques and Standards. Representing Web Data: XML

XML: Introduction. !important Declaration... 9:11 #FIXED... 7:5 #IMPLIED... 7:5 #REQUIRED... Directive... 9:11

XML Parsers. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

XML for Java Developers G Session 2 - Sub-Topic 1 Beginning XML. Dr. Jean-Claude Franchitti

XML APIs Testing Using Advance Data Driven Techniques (ADDT) Shakil Ahmad August 15, 2003

XML: some structural principles

Altova XMLSpy 2007 Tutorial

SRI VIDYA COLLEGE OF ENGINEERING & TECHNOLOGY- VIRUDHUNAGAR

Agenda. Summary of Previous Session. XML for Java Developers G Session 7 - Main Theme XML Information Rendering (Part II)

Microsoft SharePoint Designer 2010

Introduction p. 1 An XML Primer p. 5 History of XML p. 6 Benefits of XML p. 11 Components of XML p. 12 BNF Grammar p. 14 Prolog p. 15 Elements p.

EMC Documentum xdb. High-performance native XML database optimized for storing and querying large volumes of XML content

Chapter 13 XML: Extensible Markup Language

XML for Java Developers G Session 8 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti

Table of Contents Chapter 1 - Introduction Chapter 2 - Designing XML Data and Applications Chapter 3 - Designing and Managing XML Storage Objects

Oracle Cloud. Using the Oracle Mapper Release 16.4 E

XML 2 APPLICATION. Chapter SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.

Adaptive Multimedia Messaging based on MPEG-7 The M 3 -Box

Installing and Using the Cisco Unity Express Script Editor

Please note that this process must be repeated if a new PC is used.

Extreme Java G Session 3 - Sub-Topic 5 XML Information Rendering. Dr. Jean-Claude Franchitti

ESRI stylesheet selects a subset of the entire body of the metadata and presents it as if it was in a tabbed dialog.

Data Exchange. Hyper-Text Markup Language. Contents: HTML Sample. HTML Motivation. Cascading Style Sheets (CSS) Problems w/html

XML. Marie Dubremetz Uppsala, April 2014

Manipulating XML Trees XPath and XSLT. CS 431 February 18, 2008 Carl Lagoze Cornell University

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 27-1

Microsoft Office 2003: Features, Strategies, and Trends

Macromedia RoboHelp Course Outline

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial.

How To Validate An Xml File Against A Schema Using Xmlspy

Information Systems. XML Essentials. Nikolaj Popov

Use of XML Schema and XML Query for ENVISAT product data handling

Comp 336/436 - Markup Languages. Fall Semester Week 4. Dr Nick Hayward

XML Tools in Visual Studio Working with XML Data XML Editor XML Schema Designer Security Considerations when Working with XML Data Debugging XSLT

Markup Languages SGML, HTML, XML, XHTML. CS 431 February 13, 2006 Carl Lagoze Cornell University

WEB APPLICATION DEVELOPMENT. How the Web Works

IT2353 WEB TECHNOLOGY Question Bank UNIT I 1. What is the difference between node and host? 2. What is the purpose of routers? 3. Define protocol. 4.

Chapter 2 XML, XML Schema, XSLT, and XPath

Section 2. Slides. By the end of this Section you should be able to:

Thermo Scientific. GRAMS Envision. Version 2.0. User Guide. Revision A

XML. COSC Dr. Ramon Lawrence. An attribute is a name-value pair declared inside an element. Comments. Page 3. COSC Dr.

Quark XML Author for FileNet 2.5 with BusDocs Guide

11. EXTENSIBLE MARKUP LANGUAGE (XML)

Web Standards Mastering HTML5, CSS3, and XML

Version: Copyright World Programming Limited

Nauticom NetEditor: A How-to Guide

XML. extensible Markup Language. ... and its usefulness for linguists

Thermo Scientific. GRAMS Envision. Version 2.1. User Guide

Stylus Studio 2009 XML Feature Comparison Matrix

Xerces Http Apache Org Xml Features Validation Schema Full Checking

User and Reference Manual

Blackboard Portfolio System Owner and Designer Reference

CS6501 IP Unit IV Page 1

Oracle Application Server 10g Oracle XML Developer s Kit Frequently Asked Questions September, 2005

Oracle BI Publisher 11g R1: Fundamentals

OpenForms360 Validation User Guide Notable Solutions Inc.

Lou Burnard Consulting

<title> An XML based web service for an electronic logbook </title>

IBM Forms V8.0 IBM Forms Classic - Forms Designer IBM Corporation

User Interaction: XML and JSON

The Specification Xml Failed To Validate Against The Schema Whitespace

Talend Open Studio for MDM Web User Interface. User Guide 5.6.2

Code Editor. The Code Editor is made up of the following areas: Toolbar. Editable Area Output Panel Status Bar Outline. Toolbar

XMLInput Application Guide

Transcription:

x ide xml Integrated Development Environment Specifications Document Colin Hartnett (cphartne) 7 February 2003 1 Project Description There exist many integrated development environments 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. audience A relatively robust ide would be warmly welcomed by the xml community at large. A good local test user base could be found within the Computer Science Department specifically, students in cs196 9: Document Engineering. 2 Specifi fications An integrated development environment is a complex program. It is not used linearly; thus, the specifications will be organized by module. general description of modules User Interface Tools and Windowing. Provides the window, toolbar, and menu widgets. User Interface Document and Project Visualization. Produces a collapsible graphical tree representation of a document or project. Validating Parser. A w3c compliant validating xml parser. Also provides basic gui windowing and tools gui document and project visualization validating parser project management text editing document testing

information about documents such as dtd, character encoding, &c. Text Editing. Provides text editing capabilities. Handles fancy editing features such as syntax highlighting and auto indenting. Project Management. Groups files into projects. Handles organization of files and saving of projects. Document Testing. Allows execution of XPath commands and xslt transformations. user interface tools and windowing The user interface follows standard wimp protocol and has a menu and toolbar across the top of the main window. The main toolbar contains buttons to manipulate single documents. Buttons are: new, open, save, and validate. A separate project toolbar includes buttons to save and open projects, add files to and remove files from projects, sort the project view in various ways, and add project files to soft groups. The body of the window is divided horizontally into three areas: the project pane, the document pane, and the information pane. The project pane displays the graphical representation of the current open project. The document pane is where subwindows containing open documents reside. These documents can be edited. Windows in the document pane can be arranged in standard ways: cascade, tile vertically, and tile horizontally. The information pane contains four main items, all of which should be moveable and resizable: The element information pane displays information about the current element (determined by the cursor position). The element list displays a list of all the menu and toolbar dock project management pane document pane document subwindow Multiple subwindows can be open. The data in the information pane corresponds to the active document. information pane Contains moveable and resizable element list, attribute list, element info, and document tree panes.

elements in the specified dtd. The elements that are not valid at the current position should be greyed out, that is, displayed in such a way that it is obvious to the user that they are invalid. The attribute list displays all the valid attributes of the current element. The document tree shows a tree-like graphical depiction (outline in next subsection) of the current document. user interface document and project visualization Both documents and projects will be graphically represented as trees much like those found in common file manager applications. An xml document is a tree, therefore this module simply takes the parsed document and produces a tree representation where each node of the tree is an element in the document. Attributes of elements are represented on a line underneath each element prefixed with a marker (icon) that indicates the data on that line is an attribute. The xml document cannot be modified through this tree. (Version 2: Actually editing the document with the graphical tree.) Projects are represented by file much like those in a file manager. They can be sorted by filename, type (dtd), and character encoding. When a file is sorted by one of these properties, each unique value is displayed as a folder, and each file is displayed as a file in that folder. files can also be soft grouped, that is, files can be added to zero, one, or many specialized groups (e.g., a computer science paper in a project that represents a journal could belong to both the computer graphics and computational biology groups). files can also be sorted by group. When a file is double-clicked, it should be opened in an editor window. This module also graphically represents lists of valid elements and attributes obtained from the parser. These elements should be clickable and insert the tag into the document at the current cursor position. validating parser The parser module needs not only to parse and store an internal representation of the document, it must also return basic information about the document, such as its type. The parser must also return information about the document type. The parser must not die unless a document is not well-formed. In its internal representation, each node (element or attribute) must include information on whether it is valid, invalid and not in the dtd, or in the dtd,

but in an invalid position. It must also include basic element data, such as namespace. Given a physical point in the document, the parser must be able to return information obtained from the dtd about the current element consisting of its namespace, name, datatype, enum values, occurrence, and annotation. The parser must also be able to return a list of valid elements at the given point. text editing The text editing module provides basic text editing capabilities. It also includes syntax highlighting. Valid tags should be highlighted with one color. Invalid tags should be highlighted using two different colors: one for tags that are not anywhere in the dtd and another for tags that are not in a valid position. Attributes should be highlighted using one color for valid attributes and another for invalid attributes. Tags should be automatically closed (e.g., once I type the > in <foo>, </foo> should be inserted and the cursor should be placed between the two tags). project management This module supports adding and removing files to projects. It must store basic data about each file including its name, type, encoding, and soft groups. It saves projects as xml files. It should also be able to open (with the help of the parser) any previously saved project files. document testing The testing module allows a user to execute XPath expressions and xslt transformations and view the results as a new xml file in an edit window. This is relatively straightforward. 3 Version 2 Possibilities More automated editing features could and should be added to version 2. In addition to the aforementioned addition of graphical editing, tools could be added to reverse engineer a dtd from on a prototype document, and wizards could be added to assist in creating dtds. Project management could be fleshed out with features such as extended search and replace. More technologies could be supported for testing, such as the xml Schema and relax languages, which are more robust ways of specifying document types,

and the xml Query Language, which allows an xml document to be queried much like a database. 4 Implementation Suggestions There are good, free implementations of many of the components of this system. The Apache xml Project provides Xerces, a validating parser, and Xalan, a stylesheet processor. Both are available in C++ and Java versions. These components could be used as core elements in the parser and testing modules. 5 Nonfunctional Requirements The goal of any development environment is to increase productivity. This project should provide an environment that allows users to quickly and easily work with xml based projects. This program have the potential to go above and beyond even powerful text editors like Emacs with its ability to present multiple perspectives of the document to the developer simultaneously. In order to enhance productivity, the user interface must be well-designed, the program must execute quickly, files must open and close quickly, and editing must be intuitive. These are not concrete, testable concepts, but a general consensus can be reached by analyzing the performance of commonly used programs. 6 Updated Requirements The list of basic features was trimmed to a more manageable level. The requirements are the same in content, but the priorities have been dramatically adjusted. user interface Unlimited open files More than one document visible at once Collapsible tree representation of project Collapsible tree representation of current document Lists of elements valid in current position Grey out elements not permissible at current position (medium) Visually indicate required elements at current position (medium) List of attributes for current element (medium)

Display information obtained from dtd about current element Automatically generate dtd from a document (low) Wizard-like support for specifying dtds (low) text editor Basic syntax highlighting Syntax highlighting based on dtd (medium) Smart indenting Auto tag completion Unlimited undo (medium) User-definable macros for tag insertion (low) Unicode support (low) project management Group multiple files together in a project Save projects in an xml format Group files together (medium) Files can belong to multiple groups (medium) Display files sorted by: Name Type Date modified Groups (medium) testing Method of executing XPath expressions Return results as xml Return results graphically (low) Execute xslt transformations (medium) Validate against: dtd xml Schema (low) relax (low) Realtime validation Step-by-step xslt debugging (low) Execute xml Queries

7 Risks and Dependencies Writing an xml parser is a large task one that could seriously stall the project. On the other hand, if the project is implemented using an external parser and stylesheet processor, a huge external dependency is introduced. Luckily, xml is a public standard, and most parsers including Xerces implement the dom (Document Object Model), which is simple, robust way of retrieving information from xml documents. Since the standards and specifications were written well before any parsers were developed, the language and protocols are concretely defined and well-documented. This project would require the members of the team to at least have a basic knowledge of xml. Those developing the parser and testing modules need to have a much more intimate knowledge of the language and protocols. 8 Defi finitions xml (Extensible Markup Language) A markup language that allows users to represent data in plain text. Its syntax is similar to that of html, but authors can create their own elements ( tags in html lingo) and attributes. Some common uses for xml include representing mathematical formulae, vector graphics, remote function calls, and syndicated news feeds. dtd (Document Type Definition) A method of specifying the legal structure of an xml document. Validating parser An xml parser that, in addition to parsing and allowing access to the document, indicates whether or not the document conforms to its dtd. XPath (xml Path Language) A method of selecting information from an xml document. XPath s syntax is similar to Unix paths. xslt (Extensible Stylesheet Language Transformations) A method of transforming one xml document into another of a different format. 9 Further Reading The official World Wide Web Consortium (w3c) xml site http://www.w3.org/xml/ The official w3c xsl and xslt site http://www.w3.org/style/xsl/

The official w3c XPath site http://www.w3.org/tr/xpath/ The Apache xml Project http://xml.apache.org/