INFOSYS 290 / Section 14 : XML and Related Technologies [xhtml]

Instructor

R. Alexander Milowski

Description:

This course complements IS 243 (Document Engineering) with more extensive coverage of XML technologies and the use of those technologies to build applications. The course will cover in depth XML syntax and processing, Unicode, XPath and XSLT, XML Schema, and processing models for XML. It will also cover using XML technologies to build web-based applications. Some experience using Java (e.g. IS 255) will be helpful but is not required.

There is a one credit option of this course. For that 1 credit, no final project will be required and subset of the assignments will be required.

Office Hours

Tuesdays 12:30-1:30, 3:30-4:30, Thursdays 3:30-4:30 - Either in 303B or 110 South Hall

Texts:

Required

Definitive XML Schema, Priscilla Walmsley , Prentice Hall, 0-13-065567-8

Beginning XSLT, Jeni Tennison , APress Books, 1-59059-260-3

Recommended

Java & XML, Brett McLughlin , O'Reilly, 0-596-00197-5

Schedule

01/18 01/20 01/25 01/27 02/01 02/03 02/08 02/10 02/15 02/17 02/22 02/24 03/03 03/08 03/10 03/15 03/17 03/29 03/31 04/05 04/07 04/12 04/14 04/19 04/21 04/26 04/28 05/03 05/05 05/10

01/18

Course Introduction, Demonstrations, and Netbeans

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Assignment

Description & Downloads for Assignment 1 - due on 01/20

01/20

XML Documents , Namespaces, and Unicode

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

Required:

  1. Beginning XSLT, Chapter 1

  2. Beginning XSLT, Chapter 2, pages 25-56

Documents to browse:

  1. Extensible Markup Language (XML) 1.1

  2. Namespaces in XML 1.1

01/25

Namespaces, Trees and Infosets, Base URI's, and Modular Documents

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

Assignment

Description & Downloads for Assignment 2 - due on 02/01

01/27

Basics of XPath

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

Required:

  1. Beginning XSLT, Chapter 7

Documents to browse:

  1. XML Path Language (XPath) Version 1.0

02/01

Basics of XSLT

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

Required:

  1. Beginning XSLT, Chapters 3 & 4

Documents to browse:

  1. XSL Transformations (XSLT) Version 1.0

  2. Jeni's XSLT Pages

02/03

XPath Datatypes & Functions, Using Ant, and XSLT in Web Applications

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Assignment

Description & Downloads for Assignment 3 - due on 02/10

02/08

Predicates & Conditionals in XPath & XSLT

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

02/10

Advanced XSLT

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

Required:

  1. Beginning XSLT, Chapters 5 & 6

Assignment

Description & Downloads for Assignment 4 - due on 02/22

02/15

JAXP and XSLT in Web Applications

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

JAXP Samples :

online - [application/zip]

JAXP Web Application :

online - [application/zip]

Readings

Required:

  1. Beginning XSLT, Chapters 9 & 11

02/17

Processing Models & XML Pipelines

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

The smallx pipeline engine is available as a netbeans module. Download the jar file called smallx-xml-module.jar and install it into Netbeans as follows:

  1. Place the 'smallx-xml-module.jar' in a directory where you want it to stay "permanently".

  2. Select the 'Options' menu item from the 'Tools' menu.

  3. Locate item 'IDE Configuration/System/Modules' in the left-side tree--expanding the items as necessary.

  4. Right-click on the 'Modules' and select 'Add->Module' from the menu.

  5. Select the 'small-xml-module.jar' from the directory in step (1) and click on 'Install'.

After installing the "Smallx XML Pipeline Support" module should be listed under "XML". You should now see an icon (an arrow with vertical bars) on the toolbar for any XML document and pipeline files with extensions '.pd' should show up. The validate button on pipelines will compile the pipeline and there also is support for creating new pipelines in the File/New menu & wizard.

02/22

Bottom-Up and Top Down: Introduction to XML Schema

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

Required:

  1. Definitive XML Schema, Chapter 7 & 8

Documents to browse:

  1. XML Schema Part 0: Primer Second Edition

02/24

Modeling Elements and Attributes

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Assignment

Description & Downloads for Assignment 5 - due on 03/08

03/03

Basic ComplexType Derivation and Substitution Groups

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

Required:

  1. Definitive XML Schema, Chapter 13, 14.1-14.6 and 16

03/08

Schema Composition and The Modeling Process

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

03/10

Defining Simple Types

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

Required:

  1. Definitive XML Schema, Chapter 9-12

Assignment

Description & Downloads for Assignment 6 - due on 03/29

03/15

Simple Type Uses and Restriction, Schema Documentation

Lecture

simple types slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

schema documentation slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

03/17

Schema Validation and the PSVI

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

technology for projects :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Netbeans Project for Xerces Samples :

online - [application/zip]

smallx Examples Distribution :

online - [application/zip]

03/29

Groups, Keys, and Redefine

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

Required:

  1. Definitive XML Schema, Chapter 17 (keys) & 18 (redefine)

03/31

Schema Best Practices, Design Schema Libraries, and Schemas in Application Architecture

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

project structure :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

04/05

Building Web Services with Pipelines: A Web Service for My Dog

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Assignment

Description & Downloads for Assignment 7 - due on 04/14

04/07

Building Web Applications with Pipelines: A Mobile Application for My Dog

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

04/12

WSDL, SOAP, and Alphabet Soup

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

Readings

The SOAP specifications and the SOAP Primer.

The WSDL 1.1 specification and a nice article on WSDL.

04/14

RSS & ATOM

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

04/19

CSS

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

04/21

XSL Formatting Objects

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

04/26

Graphs, XML, and RDF

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

04/28

OWL and Ontologies

Lecture

slides :

online - [text/xhtml], [text/html]

print - [text/xhtml], [text/html]

05/03

Presentations

Lecture

  • Shufei Lee

  • Chitra Madhwacharyula

  • Joshua Chao

05/05

Presentations

Lecture

  • Andrew Iskandar

  • Mano Marks

  • Matthew Meiske

  • John Ward

05/10

Presentations

Lecture

  • Grant Henderson

  • Hye Helen Kim

  • Christine Jones

  • Linus Lang

1. ORGANIZATION

This course is organized into a series of lectures for the majority of the course. During the last few weeks of class, those who do projects will be presenting their projects during class time. Typically there will be a few presentations followed by a short lecture.

The lectures are designed to detail exactly how different XML technologies work and show examples. Questions are welcome at any time during the lecture and the slides and examples will be provided online. The intent is to give a sufficiently complete coverage of the core XML technologies: XML 1.1, XPath, XSLT, and XML Schema as well as detail their use via examples.

2. OBJECTIVES

  • To develop a solid knowledge of:

    • XML, Unicode, Namespaces, and Infosets.

    • XPath and XSLT

    • XML Schema and Schema Development Practices

    • Formatting XML using CSS or XSL Formating Objects

  • Apply these technologies in a web-applications context:

    • Utilizing XSLT to format websites.

    • Simple web services.

    • XML in application architecture

    • XML Pipelines

    • JAXP & J2EE integration.

  • See/utilize specialized vocabularies:

    • RSS 1.0 & 2.0

    • XHTML

    • WSDL & SOAP

    • RDF & OWL

3. ASSIGNMENTS & READINGS

Typically there will be one assignment per week and will consist of using the technologies detailed in a previous lectures to accomplish some task. Every so often there will be question & answer types of assignments.

The readings will be assigned each week as well. They are intended either to supplement the lecture or to provide additional reference material. Some readings are assigned specifically so that you are aware of the document and are not intended to be read in detail (e.g. The XML 1.1 recommendation). Such readings will be outlined on the course website as to which are "required" and which are there for your awareness.

4. TOOLS

For this course, you are required to use a tool/environment that supports:

  • XML 1.0 compliant parsing and namespace handling.

  • OASIS XML Catalogs for schema validation.

  • XSLT Transformation, version 1.0

  • XML Schema validation

  • Tomcat (or some other J2EE compliant servlet container).

  • Ant for builds.

  • XHTML compliant browser: Mozilla, Netscape 7.x, Firefox, Thuderbird, Opera (i.e. not Internet Explorer).

The only tool that satisfies all of these at once (except the browser) is Netbeans--which is an IDE tool. It supports development of web applications as well as Java applications. It has many features supporting editing, authoring, and testing XML-based applications. In addition, it embeds Tomcat and so you can readily test web applications. It is highly recommended that you use Netbeans over any other tool--including Eclipse.

All the assignments will be made available as Netbeans projects so they can easily be run within the IDE. This does not preclude the ability to work on the assignments in some other tool.

5. REQUIREMENTS & GRADING

The following assignments are required to get a grade in this course:

  • 3 Unit Version:

    1. Complete all assignments.

    2. Develop a web application that uses at least two XML technologies.

    3. Present your application and architecture to the class.

    4. Document your project and write a short paper describing it.

    5. Turn in a working application (preferably a .war file)

  • 1 Unit Version:

    1. Complete 75% all assignments.

    2. Write a one (or more) page XML-related project proposal that you think is feasible given what you've learned.

Project usually consist of development of small prototype application that demonstrates some aspect of XML-based development. They must use two different XML technologies and XSLT/XPath count as one. Some examples from previous years are:

  • Developed a cocoon-based forms infrastructure that utilizes XML descriptions of the forms and processing.

  • Developed a simple web service and front end for grades.

  • Developed a schema for syllabi and XSLT for aggregating and presenting syllabi.

The recommended project structure is described online: text/html text/xhtml

Also, grading will follow these simple rules:

  • Grade assignments will be based on performance relative to your peers.

  • Points will be awarded and percentages will be calculated.

  • 3 Unit Version:

    1. 50% Assignments

    2. 15% Presentation

    3. 35% Project

  • 1 Unit Version:

    1. 90% Assignments

    2. 10% Project Proposal Paper

6. ACADEMIC HONESTY

While working on your assignments or the project, you may find many resources that will help you accomplish your task. If you take advantage of such resources, including code samples, java class libraries, etc., please reference them in what you turn in. It is completely fine to have taken advantage of a known solution as that is what you all might do in a commercial setting. Do not pass off other peoples code, XSLT, schemata, etc. as you own. It will probably be easy to tell (especially with our friend Google available).

In addition, all students should be familiar with the Code of Student Conduct and know that the general rules stated in that document apply to this class. These rules and guidelines are available from Office of Student Life.