SourceGen Project. Daniel Hoberecht Michael Lapp Kenneth Melby III

Size: px
Start display at page:

Download "SourceGen Project. Daniel Hoberecht Michael Lapp Kenneth Melby III"

Transcription

1 SourceGen Project Daniel Hoberecht Michael Lapp Kenneth Melby III June 21, 2007

2 Abstract Comverse develops and deploys world class billing and ordering applications for telecommunications companies worldwide. The Kenan FX line of products meets a majority of each client s needs for customer services calls to service activation and billing. Custom software for unique client functionality is often written by consultants in the professional services division to ensure that the software has all the functionality that a client may require. The process of starting a new custom project is quite tedious. A consultant often starts with a basic template that gets modified before beginning the customization. These modifications include renaming files and directories, modifying contents of existing files, and copying directories and files. During the modification, if a single error is made it could be very hard to find where the error is. Every custom application for a client begins with this process; there must be a better way. Our task is to develop an engine that reads in an XML file detailing changes to the template project, executes those changes, and returns the source for a new custom project. The engine would optimally be generic and flexible so that it can be extended for use in multiple settings. 2

3 Table of Contents 1 Introduction Purpose Requirements Functional Requirements Non-functional Requirements Use Cases Design Approach Class/Method Specifics UML Diagram XML Design Formatting Specifics XML Start Tree Parsed XML Tree Implementation Details Technical Requirements Issues Resolved Project Diagram Scope Conclusions References

4 Table of Figures Figure 1: Simplified Project Flow... 5 Figure 2: UML Diagram Figure 3: XML Start Tree Structure Figure 4: Parsed XML DOM Tree Figure 5: Project Diagram

5 1 Introduction 1.1 Purpose Comverse develops and deploys software and systems for communication service providers worldwide. Kenan FX is a core software solution for everything from customer service calls to service activation and billing. This meets a majority of clients' needs, but not all. Custom client functionality is often written by consultants in the professional services division to add unique functionality to an existing product. Before starting a new custom project, a basic template project must be modified. The template project contains the basic source code, configuration files, and directories for a plugin to existing software. The modifications include renaming files and directories, changing the contents of specific files, and moving and copying files and directories. This is a tedious process with little room for error. All of these changes must be made before the custom application can even be started. The purpose of this project is to create an automated process to replace this existing manual, step-by-step method. A template XML file describing basic changes and default parameters will be manually created for each project. A graphical user interface (GUI) will receive modifications from the user and update the XML template file (this will be the XML configuration file). The engine will read in the XML config file and use separate modules to copy, replace, or rename files and directories. A new directory structure ready to be customized will be the result. The overall flow of the project is shown in figure 1. Figure 1: Simplified Project Flow 5

6 2 Requirements 2.1 Functional Requirements 1. Engine must be able to execute the changes stored in the XML config file. 2. Engine must be able to copy files and directories. 3. Engine must be able to rename files and directories. 4. Engine must be able to rename elements in a file. 5. Engine must be able to delete files and directories. 6. Engine must load the XML config file. 2.2 Non-functional Requirements 1. Engine must be modular and flexible. 2. Project specific changes must be stored in an XML file. 3. Engine must use Xerces/Document Object Model (DOM) library to do XML parsing. 4. The XML config file will have a consistent formatting. 5. All code must be written in Java version The project must be built using Apache's Ant. 6

7 2.3 Use Cases Functional requirements for each use case are in parenthesis. 1) Engine loads XML config file detailing changes (6) Pre-conditions: XML config file exists. XML config file updated (Use case 6). Primary Flow: 1. XML config file is passed into engine and parsed. 2. Parsed tree is preprocessed (Use case 2). Post-conditions: Engine is ready to execute changes detailed in XML config file. Alternate Flow(s): 1A. If XML file is not found, then error message is logged. 2) Parsed XML tree is preprocessed (6) Pre-conditions: XML file has been parsed successfully (Part of use case 1). Primary Flow: 1. Variable placeholders within the variable block are replaced with values. 2. Variable placeholders within the start tree are replaced with values. 3. Start tree is pulled out of the full raw tree. Post-conditions: Engine has preprocessed start tree. Alternate Flow(s): None 3) Engine executes changes from XML file (1) Pre-conditions: XML config file has been loaded (Use case 1). Primary Flow: 7

8 1. Engine traverses start tree. The following are subject to what actions were defined in the XML. 2. Engine copies files and directories (Use case 4). 3. Engine renames files and directories (Use case 5). 4. Engine renames elements in specific files (Use case 6). 5. Engine deletes files and/or directories (Use case 7). Post-conditions: Desired changes from XML config file were executed successfully. Alternate Flow(s): None 4) Engine copies files and/or directories (2) Pre-conditions: XML config file has been loaded (Use case 1) Primary Flow: 1. Copy rules are loaded from the DOM tree. 2. Files and/or directories are copied to a new specified location as defined in the XML config file. Post-conditions: Desired files and/or directories were copied successfully. Alternate Flow(s): None 5) Engine renames files and/or directories (3) Pre-conditions: XML config file has been loaded (Use case 1) Primary Flow: 1. Rename rules are loaded from the DOM tree. 2. File and/or directories are renamed as defined in the XML config file. Post-conditions: Desired files and/or directories were renamed successfully. Alternate Flow(s): None 8

9 6) Engine renames an element in a file (4) Pre-conditions: XML config file has been loaded (Use case 1) Primary Flow: 1. Searches the file directories for the desired file. 2. Performs a find and replace inside the file from the specified pattern to a new pattern. Post-conditions: Pattern inside specified file has been changed. Alternate Flow(s): 2A. Logs if an element to be renamed in file is not found. 7) Engine deletes a file or directory (5) Pre-conditions: XML config file has been loaded (Use case 1) Primary Flow: 1. Searches the file directories for the desired file. 2. Deletes the specified file or directory Post-conditions: Specified file or directory was deleted. Alternate Flow(s): 2A. Logs an error if a directory had contents and an attempt was made to delete it. The directory is not deleted. 9

10 3 Design 3.1 Approach Originally the design consisted of plugins for copy, rename, delete, and substitution, which would all plug into the Engine class. We developed a specific XML format to go along with this design, which had a block for each action. If the user wanted to do multiple copies there would be multiple copy tags. This seemed tedious and not very straight forward for the user creating an XML file. Upon further examination a more object oriented (OO) design came about. Having file and directory classes that have methods to be copied, renamed, deleted, and for files substituted within appears to be the easier approach to conceptually understand. The XML file is easier and more intuitive to format under the OO approach. The OO approach also lends itself to Java; being an object oriented language. 3.2 Class/Method Specifics Class methods are explained using a flow, pseudocode, or description of what the method does. A few definitions of terms used in this section: "raw tree" - The tree resulting from XML parsing. "processed tree" - Tree resulting from preprocessing. Has variable values plugged in for placeholders. Consists of only the "start branch." "start branch" - Everything underneath the start node. Consists of only rules that need to be executed on the directory structure. The requirement(s) that each method helps satisfy are listed next to that method in parenthesis. Engine: Reads in the XML file and executes all changes detailed within it. Has a Parser. private readdata(file xmlfile): (6) 1. Engine reads in XML. 2. Engine passes XML on to Parser. 3. Parser parses XML to "raw tree." 4. Parser passes "raw tree" to Preprocessor. 5. Preprocessor inserts variable values into placeholder locations. 6. Preprocessor returns a "processed tree." 10

11 public run(file xmlfile): (1, 6) 1. readdata(file) 2. start("processed tree") private start(node start): (6) Find number of start node's children. For each child create a PSDirectory from the <dir> tag traverse(psdirectory, Node) endfor private traverse(psdirectory dir, Node rules): (2, 3, 4, 5, 6) 1. Copies the directory if it has the tag. 2. Traverses the children of the file system. 3. Renames the directory if it has a tag. 4. Deletes the directory if it has a tag. private traverse(psfile file, Node rules): (2, 3, 4, 5, 6) 1. Copies the file if it has a tag (to a different name also) 2. Goes through file and does all substitutions 3. Renames the file if it has a tag 4. Deletes the file if it has a tag private Node findnode(node input, String seek): (2, 3, 4, 5, 6) Takes in a Node and returns the node whose name matches the String passed in from the first set of children. private String findnewpath(string source, String from, String to): (3) Takes in a source file or directory (pathname) and then uses the from and to string with regular expressions to change the source pathname into the proper "to" path. Parser: Parses XML file to a raw tree Has a Preprocessor. public parsexml(file xmlfile): (6) Parses XML file into a "raw tree." public preprocess(node rawtree): (6) Preprocessor.preprocess("raw tree") public getstart(): (6) Returns the local "start tree" variable. Preprocessor: Substitutes variables in start and within other variables and "cleans" the tree. 11

12 public preprocess(node rawtree): (6) 1. Saves "raw tree" as a local variable. 2. variablesubstitution() 3. cleantree() private variablesubstitution(): (6) 1. Finds the NodeList with all <var> nodes and the Node that points to the top of the start tree. 2. loadhash(nodelist variables); 3. substitutioninvariables(); 4. substitutioninstart(node starttree); private void loadhash(nodelist variables): (6) Loads all the variables in the NodeList into a HashTable. The name of each variable is the key. This provides a fast O(1) retrieval of variable values when placeholders are replaced with variable values. private void substitutioninstart(node node): (6) Finds variable placeholders and calls updatevariable() to change the placeholder to an actual variable value in the start tree. The following attributes support variable placeholders: 1. from attribute in a dir or file tag. 2. to attribute in a copy or rename tag within actions. 3. seek or replace in a sub tag within subs. 4. boolean attribute in a delete tag within actions. private void updatevariable(node node, String attributename): (6) Replaces a variable placeholder in the specified attribute name for the given node with the variable value. private void substitutioninvariables(): (6) Replaces variable placeholders in the variables themselves with the appropriate variable value. Infinite loops are possible and it is up to the user to avoid situations where they would come up (a variable cannot depend upon itself). private Node findnode(nodelist list, String seek): (6) Returns a node from the given NodeList that has the name that was passed in. private cleantree(): (6) Sets the local "tree" to equal the "start tree." 12

13 public getstart(): (6) Returns the local "start tree" variable. PSFile: File that can use implemented actions. public copy(string to): (2) Implements copy for a file. public remove(): (5) Implements remove for a file. public substitution(string find, String replace): (4) Opens the file, finds a desired string, and changes that string to a new updated string. PSDirectory: Directory that can use implemented actions. public copy(string to): (2) Implements copy for a directory. public remove(): (5) Implements delete for a directory. The directory must be empty to be able to be deleted so the contents of the directory must be deleted first. AbstractPSFile: Parent of PSFile and PSDirectory that inherits from java.io.file. public abstract copy(): (2) Both PSFile and PSDirectory will need a copy method, but the implementation will be different between them. public abstract remove(): (5) Similar to copy() method above. public rename(string newname): (3) Since both files and directories are treated as Files in Java, renaming them is done the same way. 13

14 3.3 UML Diagram The engine class is at the heart of our design. It has a Parser to parse and preprocess XML files and will use PSFile and PSDirectory when traversing the "start tree." Parser has a Preprocessor so that all preprocessing is done through the Parser. Both PSFile and PSDirectory inherit from AbstractPSFile, which inherits from java.io.file. Figure 2 further illustrates the relationships between all classes. Figure 2: UML Diagram 14

15 3.4 XML Design Formatting Specifics The XML config file must adhere to a strict format in order for the system to work properly. The following are the specifics of each tag needed to create a working XML config file. A listing of valid locations for variable placeholders is above in section 3.2 under the Preprocessor class. File actions should be listed most specific at the top. <project-mapping> Contains all specifics for the project. XML must contain one. <project-name> Contains the project name. Optional. <project-description> Contains a description of the project. Optional. <variables> Contains all variables that can refer to other variables or contain information for use in the start tree. No limit on number of variables. XML must contain one. <var name="" value="" /> Details a single variable. The name and value of the variable are the attributes. To use a variable put ${your_variable_name} where you want the value for that particular variable to be placed. <start> Contains all directories and files to be modified and the rules that detail what modifications are to be made. <dir from=""> Can contain other dirs or files. Must have an action block. The XML must contain at least one dir. Attribute from is the location where the dir currently is that the user wants to manipulate. <file from=""> <actions> Every dir and file must have an actions block detailing what is to be done to the dir or file. <copy to=""/> 15

16 Copies the file or directory to where the to attribute specifies. If the name of the file or directory is different from the from attribute it will rename and copy at the same time. <rename to=""/> Renames the file or directory to what the to attribute specifies. <subs> Contains all the substitutions for find/replace within a file. Only applies to files. <sub seek="" replace=""/> Attributes seek and replace specify what to look for in a file and what to replace it with. <delete boolean="false"/> Attribute boolean specifies whether the file or directory should be deleted XML Start Tree Figure 3 is a basic layout of what the start node looks like in the XML config file. Each directory and file has an action block detailing all the changes needed to be made. Directories and files do not necessarily correspond directly to a specific directory or file in the operating system. Using regular expressions and wildcard characters groups or specific types of files or directories can be changed. Figure 3: XML Start Tree Structure <start> <dir from=""> <dir from="" > <file from=""> <actions> <copy to=""/> <rename to=""/> <subs> <sub seek="" replace=""/> </subs> <delete boolean="false"/> </actions> </file> <actions> <copy to=""/> <rename to=""/> <delete boolean="false"/> </actions> </dir> <file from=""> <actions> 16

17 <copy to=""/> <rename to=""/> <subs> <sub seek="" replace=""/> </subs> <delete boolean="false"/> </actions> </file> <actions> <copy to=""/> <rename to=""/> <delete boolean="false"/> </actions> </dir> </start> Parsed XML Tree After the XML file is parsed it will be stored in a tree. This tree structure can be seen in figure 4. The processed tree that will be executed by the engine is the entire start branch on the right. Sample XML code for this start branch is detailed above in section Each tag in the XML file corresponds to a node in the tree. Figure 4: Parsed XML DOM Tree 17

18 4 Implementation Details There are many pieces of the design that were updated during implementation. Inside the XML file, variable dependency support was added so that variables can depend on other variables. The decision was also made to execute actions (copy, rename, etc.) on the original directory or file that the actions block resides in. Before that decision all actions were executed on whatever file or directory had been detailed in the copy tag. We used paired programming extensively to catch errors in programming and improve code as we worked. 4.1 Technical Requirements The entire project was written in Java 1.5. The client requested Java as the language and their organization is currently using 1.5 so this project should be compatible within their codebase. The Apache Xerces library was used to do Document Object Model (DOM) XML parsing. Our client suggested using this library, which supports both the Simple API for XML (SAX) and the Document Object Model (DOM) for XML parsing. Comverse has a review board that approves the use of third party packages or libraries. The Xerces library has already been approved and is already being used in other projects. Upon further research we found that DOM is the better technique for our implementation when compared to SAX. DOM builds an entire tree of the XML file, which our project traverses to execute changes [1]. The project can be built with Apache Ant, which was also requested by our client. Debug statements, error messages, and exceptions are all written to a log file using Log4j. Log4j is an easy to use system for logging within Java and is another piece if open source software from Apache. All classes within the project have a Logger to write to the log file. 4.2 Issues Resolved While attempting to do renames and deletes of files, the engine would only change random files. After some investigating we found that during the file copy we would open a filestream but never actually close the file stream, so when the file was trying to either be renamed or deleted it would just ignore the file as write-protected. To fix this we simply closed the file stream. Another issue was that when we implemented delete it "worked" but created null pointer errors during our testing. We then noticed that delete was actually being done before the engine would traverse its children or rename, and because of this it would not "exist" and so when trying to access the parent the 18

19 engine would error out. Fixing this involved simply moving the delete part of traverse to be the last action taken, creating a semi "order of operations." The XML formatting went through several versions including our initial idea of having everything classified based off of the action being performed, i.e. group all copies together. Then for user ease we switched to a formatting that not only made better sense conceptually but also mimicked the file structure. From this idea we made a few adjustments including how to define what actions to be performed, solved by adding an actions tag, and also what to perform it on, which we have finally decided on the source (whether you copy or not the action is preformed on the source not where you copied to). We cleaned the code for traverse in order to find a bug in the code that was causing a slight issue in our result. Through this process we identified the actual error to be a regular expression issue, in which (.*) is a greedy regular expression, which would match all patterns and not just the ones we wanted. After some searching we found that changing it to (.*?) made the pattern matching work correctly. 4.3 Project Diagram The entire project flow is detailed below in figure 5. An XML config file is passed to the Engine. The Engine then passes the XML config file to the Parser. Parsing and preprocessing produce a "start tree" ready to be traversed. The traverse method in Engine recursively moves through the "start tree" and performs actions (copy, rename, etc.). When Engine finishes running, a new directory structure is the result. Figure 5: Project Diagram 19

20 5 Scope Emphasis was placed on developing an engine for the source generator first. This needed to be flexible and useful for a wide variety of projects. A GUI wizard to receive user input and update the XML config file was a secondary task. The "Engine" part of the project was completed successfully. It consists of packages for parsing and preprocessing, files and directories, and the engine itself. Due to many different challenges during implementation we did not have enough time to complete the GUI part of the project. 6 Conclusions This was a challenging, but very rewarding project. We were able to complete a quality "engine," but did not have enough time to create a GUI. The GUI is a possible future add on. Our idea for it was to have a JTable generated from the variables in an existing XML config file and then update the values of the variables. The absolute path of the XML template file would be provided to the GUI so that it could be modified. After making changes, the GUI would call the Engine class to execute all the changes detailed in the XML config file. The project should be useful for those in Comverse Professional Services that will not have to manually ready a project template for a custom plugin. Our client was responsible for testing and was satisfied with the result. Most errors encountered stemmed from incorrect XML usage. The other errors were small and easily fixed. Overall, it was a successful and worthwhile project. 20

21 References [1] "Parsing XML Efficiently," sep/o53devxml.html. Accessed May 18,

CSE 12 Abstract Syntax Trees

CSE 12 Abstract Syntax Trees CSE 12 Abstract Syntax Trees Compilers and Interpreters Parse Trees and Abstract Syntax Trees (AST's) Creating and Evaluating AST's The Table ADT and Symbol Tables 16 Using Algorithms and Data Structures

More information

Getting Started with Relationship Groups

Getting Started with Relationship Groups Getting Started with Relationship Groups Understanding & Implementing Salesforce, Winter 17 @salesforcedocs Last updated: October 31, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved.

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

The Xlint Project * 1 Motivation. 2 XML Parsing Techniques

The Xlint Project * 1 Motivation. 2 XML Parsing Techniques The Xlint Project * Juan Fernando Arguello, Yuhui Jin {jarguell, yhjin}@db.stanford.edu Stanford University December 24, 2003 1 Motivation Extensible Markup Language (XML) [1] is a simple, very flexible

More information

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

XML Parsers. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University XML Parsers Asst. Prof. Dr. Kanda Runapongsa Saikaew (krunapon@kku.ac.th) Dept. of Computer Engineering Khon Kaen University 1 Overview What are XML Parsers? Programming Interfaces of XML Parsers DOM:

More information

Programming Assignment IV

Programming Assignment IV Programming Assignment IV 1 Introduction In this assignment, you will implement the static semantics of Cool. You will use the abstract syntax trees (AST) built by the parser to check that a program conforms

More information

Programming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon)

Programming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon) Programming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon) Thus spake the master programmer: A well-written program is its own heaven; a poorly written

More information

Contents. Enterprise Systems Maven and Log4j. Maven. What is maven?

Contents. Enterprise Systems Maven and Log4j. Maven. What is maven? Contents Enterprise Systems Maven and Log4j Behzad Bordbar Lecture 4 Maven What is maven Terminology Demo Log4j and slf4j What is logging Advantages Architecture 1 2 Maven What is maven? How does it work?

More information

XPath Expression Syntax

XPath Expression Syntax XPath Expression Syntax SAXON home page Contents Introduction Constants Variable References Parentheses and operator precedence String Expressions Boolean Expressions Numeric Expressions NodeSet expressions

More information

ASG-Rochade XML Facilities Readme

ASG-Rochade XML Facilities Readme ASG-Rochade XML Facilities Readme Version 1.21.009 January 07, 2006 This file contains product information, installation instructions, and information about starting and using ASG-Rochade XML Facilities

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

TagSoup: A SAX parser in Java for nasty, ugly HTML. John Cowan

TagSoup: A SAX parser in Java for nasty, ugly HTML. John Cowan TagSoup: A SAX parser in Java for nasty, ugly HTML John Cowan (cowan@ccil.org) Copyright This presentation is: Copyright 2002 John Cowan Licensed under the GNU General Public License ABSOLUTELY WITHOUT

More information

COSC 3311 Software Design Report 2: XML Translation On the Design of the System Gunnar Gotshalks

COSC 3311 Software Design Report 2: XML Translation On the Design of the System Gunnar Gotshalks Version 1.0 November 4 COSC 3311 Software Design Report 2: XML Translation On the Design of the System Gunnar Gotshalks 1 Introduction This document describes the design work and testing done in completing

More information

Programming in Python 3

Programming in Python 3 Programming in Python 3 A Complete Introduction to the Python Language Mark Summerfield.4.Addison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich

More information

The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet.

The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet. 1 2 3 The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet. That's because XML has emerged as the standard

More information

Chapter 10: File-System Interface. Operating System Concepts with Java 8 th Edition

Chapter 10: File-System Interface. Operating System Concepts with Java 8 th Edition Chapter 10: File-System Interface 10.1 Silberschatz, Galvin and Gagne 2009 File Concept A file is a named collection of information that is recorded on secondary storage. Types: Data numeric character

More information

P2: Collaborations. CSE 335, Spring 2009

P2: Collaborations. CSE 335, Spring 2009 P2: Collaborations CSE 335, Spring 2009 Milestone #1 due by Thursday, March 19 at 11:59 p.m. Completed project due by Thursday, April 2 at 11:59 p.m. Objectives Develop an application with a graphical

More information

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.

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. 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. 16 Attributes p. 17 Comments p. 18 Document Type Definition

More information

Chapter 11: File-System Interface

Chapter 11: File-System Interface Chapter 11: File-System Interface Silberschatz, Galvin and Gagne 2013 Chapter 11: File-System Interface File Concept Access Methods Disk and Directory Structure 11.2 Silberschatz, Galvin and Gagne 2013

More information

Computational Expression

Computational Expression Computational Expression String Class Janyl Jumadinova 24 September, 2018 Janyl Jumadinova Computational Expression 24 September, 2018 1 / 16 Data Types: Review Java has two categories of data: - primitive

More information

One of the main selling points of a database engine is the ability to make declarative queries---like SQL---that specify what should be done while

One of the main selling points of a database engine is the ability to make declarative queries---like SQL---that specify what should be done while 1 One of the main selling points of a database engine is the ability to make declarative queries---like SQL---that specify what should be done while leaving the engine to choose the best way of fulfilling

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

DATA STRUCTURE AND ALGORITHM USING PYTHON

DATA STRUCTURE AND ALGORITHM USING PYTHON DATA STRUCTURE AND ALGORITHM USING PYTHON Advanced Data Structure and File Manipulation Peter Lo Linear Structure Queue, Stack, Linked List and Tree 2 Queue A queue is a line of people or things waiting

More information

XML. Rodrigo García Carmona Universidad San Pablo-CEU Escuela Politécnica Superior

XML. Rodrigo García Carmona Universidad San Pablo-CEU Escuela Politécnica Superior XML Rodrigo García Carmona Universidad San Pablo-CEU Escuela Politécnica Superior XML INTRODUCTION 2 THE XML LANGUAGE XML: Extensible Markup Language Standard for the presentation and transmission of information.

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Geneos Gateway Authentication Technical Reference. Functional Area: Geneos Gateway Authentication. Geneos Release: v4.9. Document Version: v1.0.

Geneos Gateway Authentication Technical Reference. Functional Area: Geneos Gateway Authentication. Geneos Release: v4.9. Document Version: v1.0. Geneos Gateway Authentication Technical Reference Functional Area: Geneos Gateway Authentication Geneos Release: v4.9 Document Version: v1.0.0 Date Published: 25 October 2018 Copyright 2018. ITRS Group

More information

Analysis Tool Project

Analysis Tool Project Tool Overview The tool we chose to analyze was the Java static analysis tool FindBugs (http://findbugs.sourceforge.net/). FindBugs is A framework for writing static analyses Developed at the University

More information

Binary Search Trees. Chapter 21. Binary Search Trees

Binary Search Trees. Chapter 21. Binary Search Trees Chapter 21 Binary Search Trees Binary Search Trees A Binary Search Tree is a binary tree with an ordering property that allows O(log n) retrieval, insertion, and removal of individual elements. Defined

More information

WRITING CONSOLE APPLICATIONS IN C

WRITING CONSOLE APPLICATIONS IN C WRITING CONSOLE APPLICATIONS IN C with Visual Studio 2017 A brief step-by-step primer for ME30 Bryan Burlingame, San José State University The Visual Studio 2017 Community Edition is a free integrated

More information

Chapter 13 XML: Extensible Markup Language

Chapter 13 XML: Extensible Markup Language Chapter 13 XML: Extensible Markup Language - Internet applications provide Web interfaces to databases (data sources) - Three-tier architecture Client V Application Programs Webserver V Database Server

More information

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

CSI 3140 WWW Structures, Techniques and Standards. Representing Web Data: XML CSI 3140 WWW Structures, Techniques and Standards Representing Web Data: XML XML Example XML document: An XML document is one that follows certain syntax rules (most of which we followed for XHTML) Guy-Vincent

More information

A Project of System Level Requirement Specification Test Cases Generation

A Project of System Level Requirement Specification Test Cases Generation A Project of System Level Requirement Specification Test Cases Generation Submitted to Dr. Jane Pavelich Dr. Jeffrey Joyce by Cai, Kelvin (47663000) for the course of EECE 496 on August 8, 2003 Abstract

More information

By Chung Yeung Pang. The Cases to Tackle:

By Chung Yeung Pang. The Cases to Tackle: The Design of Service Context Framework with Integration Document Object Model and Service Process Controller for Integration of SOA in Legacy IT Systems. By Chung Yeung Pang The Cases to Tackle: Using

More information

Chapter 10: File System

Chapter 10: File System Chapter 10: File System Chapter 10: File-System File Concept File attributes, File operations, File types, File structures Access Methods Directory Structure File-System Mounting File Sharing Protection

More information

Generic BST Interface

Generic BST Interface Generic BST Interface Here s a partial generic BST interface: public class BST

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.0 SP1.5 User Guide P/N 300 005 253 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All

More information

MAVEN INTERVIEW QUESTIONS

MAVEN INTERVIEW QUESTIONS MAVEN INTERVIEW QUESTIONS http://www.tutorialspoint.com/maven/maven_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Maven Interview Questions have been designed specially to get

More information

THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman

THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman THE NEW ERA OF WEB DEVELOPMENT qooxdoo Andreas Ecker, Derrell Lipman The Ajax Experience, 25-27 July 2007 1 Introduction Client-side JavaScript framework Professional application development Comprehensive

More information

JDT Plug in Developer Guide. Programmer's Guide

JDT Plug in Developer Guide. Programmer's Guide JDT Plug in Developer Guide Programmer's Guide Table of Contents Java Development Tooling overview...1 Java elements and resources...1 Java elements...1 Java elements and their resources...3 Java development

More information

Algorithms. Deleting from Red-Black Trees B-Trees

Algorithms. Deleting from Red-Black Trees B-Trees Algorithms Deleting from Red-Black Trees B-Trees Recall the rules for BST deletion 1. If vertex to be deleted is a leaf, just delete it. 2. If vertex to be deleted has just one child, replace it with that

More information

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline Advanced Java Database Programming JDBC overview SQL- Structured Query Language JDBC Programming Concepts Query Execution Scrollable

More information

Filtering Portal Content Based on User Attributes

Filtering Portal Content Based on User Attributes Filtering Portal Content Based on User Attributes Applies To: SAP Enterprise Portal EP6 SP2 SAP Enterprise Portal 6.0 SP9 and above Article Summary This technical paper will cover how to implement a filtering

More information

Liferay Portal 4 - Portal Administration Guide. Joseph Shum Alexander Chow Redmond Mar Jorge Ferrer

Liferay Portal 4 - Portal Administration Guide. Joseph Shum Alexander Chow Redmond Mar Jorge Ferrer Liferay Portal 4 - Portal Administration Guide Joseph Shum Alexander Chow Redmond Mar Jorge Ferrer Liferay Portal 4 - Portal Administration Guide Joseph Shum Alexander Chow Redmond Mar Jorge Ferrer 1.1

More information

SAX & DOM. Announcements (Thu. Oct. 31) SAX & DOM. CompSci 316 Introduction to Database Systems

SAX & DOM. Announcements (Thu. Oct. 31) SAX & DOM. CompSci 316 Introduction to Database Systems SAX & DOM CompSci 316 Introduction to Database Systems Announcements (Thu. Oct. 31) 2 Homework #3 non-gradiance deadline extended to next Thursday Gradiance deadline remains next Tuesday Project milestone

More information

Lecturer: William W.Y. Hsu. Programming Languages

Lecturer: William W.Y. Hsu. Programming Languages Lecturer: William W.Y. Hsu Programming Languages Chapter 9 Data Abstraction and Object Orientation 3 Object-Oriented Programming Control or PROCESS abstraction is a very old idea (subroutines!), though

More information

Chapter 20: Binary Trees

Chapter 20: Binary Trees Chapter 20: Binary Trees 20.1 Definition and Application of Binary Trees Definition and Application of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two other

More information

Chapter 11: File-System Interface

Chapter 11: File-System Interface Chapter 11: File-System Interface Chapter 11: File-System Interface File Concept Access Methods Disk and Directory Structure File-System Mounting File Sharing Protection Objectives To explain the function

More information

Chapter 3. Architecture and Design

Chapter 3. Architecture and Design Chapter 3. Architecture and Design Design decisions and functional architecture of the Semi automatic generation of warehouse schema has been explained in this section. 3.1. Technical Architecture System

More information

Objectives. Chapter 4: Control Structures I (Selection) Objectives (cont d.) Control Structures. Control Structures (cont d.) Relational Operators

Objectives. Chapter 4: Control Structures I (Selection) Objectives (cont d.) Control Structures. Control Structures (cont d.) Relational Operators Objectives Chapter 4: Control Structures I (Selection) In this chapter, you will: Learn about control structures Examine relational and logical operators Explore how to form and evaluate logical (Boolean)

More information

Updated after review Removed paragraph mentioned java source code.

Updated after review Removed paragraph mentioned java source code. Functional Specification for DCR Plug-in Support Author(s): joel.binnquist.xc@ericsson.com Version: 1.3 Version Date Comment 0.1 2009-01-20 First version 1.0 2009-04-02 Updated after review. - Removed

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Programming Languages and Translators COMS W4115. Department of Computer Science. Fall TweaXML. Language Proposal

Programming Languages and Translators COMS W4115. Department of Computer Science. Fall TweaXML. Language Proposal Programming Languages and Translators COMS W4115 Department of Computer Science Fall 2007 TweaXML Language Proposal Kaushal Kumar kk2457@columbia.edu Srinivasa Valluripalli sv2232@columbia.edu Abstract

More information

Creating Workflows. What is Prime Network Workflow? CHAPTER

Creating Workflows. What is Prime Network Workflow? CHAPTER CHAPTER 12 The following topics describe how to use the Prime Network Workflow GUI client to create workflow templates that allow you to deploy and executed in runtime. What is Prime Network Workflow?,

More information

RenderMonkey SDK Version 1.71

RenderMonkey SDK Version 1.71 RenderMonkey SDK Version 1.71 OVERVIEW... 3 RENDERMONKEY PLUG-IN ARCHITECTURE PHILOSOPHY... 3 IMPORTANT CHANGES WHEN PORTING EXISTING PLUG-INS... 3 GENERAL... 4 GENERATING A RENDERMONKEY PLUG-IN FRAMEWORK...

More information

UML PROFILING AND DSL

UML PROFILING AND DSL UML PROFILING AND DSL version 17.0.1 user guide No Magic, Inc. 2011 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced

More information

Java Software Solutions

Java Software Solutions Chapter 7 Object-Oriented Design Concepts Java Software Solutions Foundations of Program Design Seventh Edition John Lewis William Loftus OO Class Terminology Interface (conceptual definition): Set of

More information

Table of Contents. 1 Context 2. 2 Problem statement 2. 3 Related work 2

Table of Contents. 1 Context 2. 2 Problem statement 2. 3 Related work 2 Table of Contents 1 Context 2 2 Problem statement 2 3 Related work 2 4 Solution approach 3 4.1 Separation is the key 3 4.2 The Module class 3 4.3 Directory contents 5 4.4 Binary instead of library 6 4.5

More information

Introduction IS

Introduction IS Introduction IS 313 4.1.2003 Outline Goals of the course Course organization Java command line Object-oriented programming File I/O Business Application Development Business process analysis Systems analysis

More information

6.001 Notes: Section 31.1

6.001 Notes: Section 31.1 6.001 Notes: Section 31.1 Slide 31.1.1 In previous lectures we have seen a number of important themes, which relate to designing code for complex systems. One was the idea of proof by induction, meaning

More information

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005 Wrapping a complex C++ library for Eiffel FINAL REPORT July 1 st, 2005 Semester project Student: Supervising Assistant: Supervising Professor: Simon Reinhard simonrei@student.ethz.ch Bernd Schoeller Bertrand

More information

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

Delivery Options: Attend face-to-face in the classroom or remote-live attendance. XML Programming Duration: 5 Days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options. Click here for more info. Delivery Options:

More information

Inheritance: Develop solutions by abstracting real-world object and their interaction into code to develop software solutions. Layering: Organization

Inheritance: Develop solutions by abstracting real-world object and their interaction into code to develop software solutions. Layering: Organization Final Exam Overview: Monday, 3pm-6pm, in WLH 2005 First pages: Quiz question - No quiz of week 2 - No bit manipulation (shifting and masking) - Quizzes: week 4, 6, 8, 10 One page on C++ language features

More information

Chapter 11: File-System Interface. Operating System Concepts 9 th Edition

Chapter 11: File-System Interface. Operating System Concepts 9 th Edition Chapter 11: File-System Interface Silberschatz, Galvin and Gagne 2013 Chapter 11: File-System Interface File Concept Access Methods Disk and Directory Structure File-System Mounting File Sharing Protection

More information

Chapter 4: Control Structures I (Selection) Objectives. Objectives (cont d.) Control Structures. Control Structures (cont d.

Chapter 4: Control Structures I (Selection) Objectives. Objectives (cont d.) Control Structures. Control Structures (cont d. Chapter 4: Control Structures I (Selection) In this chapter, you will: Objectives Learn about control structures Examine relational and logical operators Explore how to form and evaluate logical (Boolean)

More information

Vector Issue Tracker and License Manager - Administrator s Guide. Configuring and Maintaining Vector Issue Tracker and License Manager

Vector Issue Tracker and License Manager - Administrator s Guide. Configuring and Maintaining Vector Issue Tracker and License Manager Vector Issue Tracker and License Manager - Administrator s Guide Configuring and Maintaining Vector Issue Tracker and License Manager Copyright Vector Networks Limited, MetaQuest Software Inc. and NetSupport

More information

XML: Managing with the Java Platform

XML: Managing with the Java Platform In order to learn which questions have been answered correctly: 1. Print these pages. 2. Answer the questions. 3. Send this assessment with the answers via: a. FAX to (212) 967-3498. Or b. Mail the answers

More information

CS664 Compiler Theory and Design LIU 1 of 16 ANTLR. Christopher League* 17 February Figure 1: ANTLR plugin installer

CS664 Compiler Theory and Design LIU 1 of 16 ANTLR. Christopher League* 17 February Figure 1: ANTLR plugin installer CS664 Compiler Theory and Design LIU 1 of 16 ANTLR Christopher League* 17 February 2016 ANTLR is a parser generator. There are other similar tools, such as yacc, flex, bison, etc. We ll be using ANTLR

More information

Here is the design that I created in response to the user feedback.

Here is the design that I created in response to the user feedback. Mobile Creative Application Development Assignment 2 Report Design When designing my application, I used my original proposal as a rough guide as to how to arrange each element. The original idea was to

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

Basic Tutorial on Creating Custom Policy Actions

Basic Tutorial on Creating Custom Policy Actions Basic Tutorial on Creating Custom Policy Actions This tutorial introduces the Policy API to create a custom policy action. As an example you will write an action which excludes certain values for an asset

More information

Scanner - A tool for collecting object oriented software metrics from C++ class definitions

Scanner - A tool for collecting object oriented software metrics from C++ class definitions Scanner - A tool for collecting object oriented software metrics from C++ class definitions Murray Wong June 2, 1998 1 Introduction This paper presents Scanner, a tool for automating the collection of

More information

Solution READ THIS NOW! CS 3114 Data Structures and Algorithms

Solution READ THIS NOW! CS 3114 Data Structures and Algorithms READ THIS NOW! Print your name in the space provided below. There are 5 short-answer questions, priced as marked. The maximum score is 100. This examination is closed book and closed notes, aside from

More information

Adobe Marketing Cloud Dataset Configuration

Adobe Marketing Cloud Dataset Configuration Adobe Marketing Cloud Dataset Configuration Contents Dataset Configuration...6 Understanding Dataset Construction...6 Log Processing...6 Transformation...7 Understanding Dataset Configuration...8 Required

More information

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) Dept. of Computer Science & Engineering Chentao Wu wuct@cs.sjtu.edu.cn Download lectures ftp://public.sjtu.edu.cn User:

More information

CS 3114 Data Structures and Algorithms READ THIS NOW!

CS 3114 Data Structures and Algorithms READ THIS NOW! READ THIS NOW! Print your name in the space provided below. There are 7 short-answer questions, priced as marked. The maximum score is 100. This examination is closed book and closed notes, aside from

More information

EWD Custom Tag Development. Built-in Custom Tags for defining and manipulating Javascript

EWD Custom Tag Development. Built-in Custom Tags for defining and manipulating Javascript EWD Custom Tag Development Built-in Custom Tags for defining and manipulating Javascript Build 790 Introduction A number of very powerful custom tags have been added to EWD. Unlike many of the built-in

More information

Installation Guide. Sitecore Federated Experience Manager. Installation & Configuration Guide

Installation Guide. Sitecore Federated Experience Manager. Installation & Configuration Guide Sitecore Federated Experience Manager Installation Guide Rev: 23 August 2014 Sitecore Federated Experience Manager Installation Guide Installation & Configuration Guide Table of Contents Chapter 1 Overview...

More information

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

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance. XML Programming Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options: Attend face-to-face in the classroom or

More information

rpaths Documentation Release 0.2 Remi Rampin

rpaths Documentation Release 0.2 Remi Rampin rpaths Documentation Release 0.2 Remi Rampin June 09, 2014 Contents 1 Introduction 1 2 Classes 3 2.1 Abstract classes............................................. 3 2.2 Concrete class Path............................................

More information

Introduction to Computers and Java

Introduction to Computers and Java Introduction to Computers and Java Chapter 1 Objectives Overview of computer hardware and software, programs and compilers Introduce program design and objectoriented programming Overview of the Java programming

More information

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

Introduction to Computers and Java

Introduction to Computers and Java Introduction to Computers and Java Chapter 1 Objectives Overview of computer hardware and software, programs and compilers the Java programming language Example program Hardware and Software Computer systems

More information

Custom Fields With Virtuemart 2. Simple Custom Fields. Creating a Custom Field Type

Custom Fields With Virtuemart 2. Simple Custom Fields. Creating a Custom Field Type Customization in Virtuemart 2 Custom Fields With Virtuemart 2 Custom Plugin Fields in Virtuemart 2 Part 1. Installing and Using Custom Plugin Fields Custom Plugin Fields in Virtuemart 2 Part 2. Programming

More information

CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING C ++ Basics Review part 2 Auto pointer, templates, STL algorithms

CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING C ++ Basics Review part 2 Auto pointer, templates, STL algorithms CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING 2011 C ++ Basics Review part 2 Auto pointer, templates, STL algorithms AUTO POINTER (AUTO_PTR) //Example showing a bad situation with naked pointers void MyFunction()

More information

Tutorial on text transformation with pure::variants

Tutorial on text transformation with pure::variants Table of Contents 1. Overview... 1 2. About this tutorial... 1 3. Setting up the project... 2 3.1. Source Files... 4 3.2. Documentation Files... 5 3.3. Build Files... 6 4. Setting up the feature model...

More information

1/29/2011 AUTO POINTER (AUTO_PTR) INTERMEDIATE SOFTWARE DESIGN SPRING delete ptr might not happen memory leak!

1/29/2011 AUTO POINTER (AUTO_PTR) INTERMEDIATE SOFTWARE DESIGN SPRING delete ptr might not happen memory leak! //Example showing a bad situation with naked pointers CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING 2011 C ++ Basics Review part 2 Auto pointer, templates, STL algorithms void MyFunction() MyClass* ptr( new

More information

COURSE 2 DESIGN PATTERNS

COURSE 2 DESIGN PATTERNS COURSE 2 DESIGN PATTERNS CONTENT Fundamental principles of OOP Encapsulation Inheritance Abstractisation Polymorphism [Exception Handling] Fundamental Patterns Inheritance Delegation Interface Abstract

More information

Document Object Model (DOM) Java API for XML Parsing (JAXP) DOM Advantages & Disadvantage &6&7XWRULDO (GZDUG;LD

Document Object Model (DOM) Java API for XML Parsing (JAXP) DOM Advantages & Disadvantage &6&7XWRULDO (GZDUG;LD &6&7XWRULDO '20 (GZDUG;LD Document Object Model (DOM) DOM Supports navigating and modifying XML documents Hierarchical tree representation of documents DOM is a language-neutral specification -- Bindings

More information

Java Programming Fundamentals

Java Programming Fundamentals Java Programming Fundamentals Course JAVAB Five Days Instructor-led Hands on This five-day, instructor-led course helps any programmer learn Java faster and better than ever before: It's the one Java course

More information

Devirtualize Documentation

Devirtualize Documentation Devirtualize Documentation Release 0.1 Adam Schwalm January 25, 2017 Contents 1 The basics 1 1.1 Requirements............................................... 1 1.2 Installation................................................

More information

XML APIs. Web Data Management and Distribution. Serge Abiteboul Philippe Rigaux Marie-Christine Rousset Pierre Senellart

XML APIs. Web Data Management and Distribution. Serge Abiteboul Philippe Rigaux Marie-Christine Rousset Pierre Senellart XML APIs Web Data Management and Distribution Serge Abiteboul Philippe Rigaux Marie-Christine Rousset Pierre Senellart http://gemo.futurs.inria.fr/wdmd January 25, 2009 Gemo, Lamsade, LIG, Telecom (WDMD)

More information

Assignment 4: Trees CS102: Data Structures, Fall 2013 Eric Koskinen and Daniel Schwartz-Narbonne New York University

Assignment 4: Trees CS102: Data Structures, Fall 2013 Eric Koskinen and Daniel Schwartz-Narbonne New York University 1 of 5 10/30/2013 12:09 PM Assignment 4 Assignment 4: Trees CS102: Data Structures, Fall 2013 Eric Koskinen and Daniel Schwartz-Narbonne New York University Context Due: 11:55PM (23:55:00), Thursday November

More information

Winshuttle InfoPath Controls. Adrian Jimenez Winshuttle

Winshuttle InfoPath Controls. Adrian Jimenez Winshuttle Winshuttle InfoPath Controls Adrian Jimenez Winshuttle 1 Introduction Winshuttle Workflow Controls 2 Target Audience Business Process Developers 3 Basic Concepts Winshuttle Workflow Workflow engine Designer

More information

Intro to XML. Borrowed, with author s permission, from:

Intro to XML. Borrowed, with author s permission, from: Intro to XML Borrowed, with author s permission, from: http://business.unr.edu/faculty/ekedahl/is389/topic3a ndroidintroduction/is389androidbasics.aspx Part 1: XML Basics Why XML Here? You need to understand

More information

COMP9321 Web Application Engineering. Extensible Markup Language (XML)

COMP9321 Web Application Engineering. Extensible Markup Language (XML) COMP9321 Web Application Engineering Extensible Markup Language (XML) Dr. Basem Suleiman Service Oriented Computing Group, CSE, UNSW Australia Semester 1, 2016, Week 4 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2442

More information

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

XPath. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University XPath Asst. Prof. Dr. Kanda Runapongsa Saikaew (krunapon@kku.ac.th) Dept. of Computer Engineering Khon Kaen University 1 Overview What is XPath? Queries The XPath Data Model Location Paths Expressions

More information

Chapter 10: File-System Interface. File Concept Access Methods Directory Structure File-System Mounting File Sharing Protection

Chapter 10: File-System Interface. File Concept Access Methods Directory Structure File-System Mounting File Sharing Protection Chapter 10: File-System Interface File Concept Access Methods Directory Structure File-System Mounting File Sharing Protection Objectives To explain the function of file systems To describe the interfaces

More information

ITI Introduction to Computing II

ITI Introduction to Computing II ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Binary search tree (part I) Version of March 24, 2013 Abstract These lecture notes are meant

More information

An Algorithm for Streaming XPath Processing with Forward and Backward Axes

An Algorithm for Streaming XPath Processing with Forward and Backward Axes An Algorithm for Streaming XPath Processing with Forward and Backward Axes Charles Barton, Philippe Charles, Deepak Goyal, Mukund Raghavchari IBM T.J. Watson Research Center Marcus Fontoura, Vanja Josifovski

More information