INFOSYS 290 / Section 14 : XML and Related Technologies [html] | |||
Instructor R. Alexander Milowski e-mail: milowski at sims.berkeley.edu | |||
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 | Assignment Description & Downloads for Assignment 1 - due on 01/20 | ||
01/20 | XML Documents , Namespaces, and Unicode | ||
Lecture | Readings Required:
Documents to browse: | ||
01/25 | Namespaces, Trees and Infosets, Base URI's, and Modular Documents | ||
Lecture | Readings Documents to browse: | Assignment Description & Downloads for Assignment 2 - due on 02/01 | |
01/27 | Basics of XPath | ||
Lecture | Readings | ||
02/01 | Basics of XSLT | ||
Lecture | Readings Required:
Documents to browse: | ||
02/03 | XPath Datatypes & Functions, Using Ant, and XSLT in Web Applications | ||
Lecture | Assignment Description & Downloads for Assignment 3 - due on 02/10 | ||
02/08 | Predicates & Conditionals in XPath & XSLT | ||
Lecture | |||
02/10 | Advanced XSLT | ||
Lecture | Readings Required:
| 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:
| ||
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:
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 | Readings Required:
Documents to browse: | ||
02/24 | Modeling Elements and Attributes | ||
Lecture | Assignment Description & Downloads for Assignment 5 - due on 03/08 | ||
03/03 | Basic ComplexType Derivation and Substitution Groups | ||
Lecture | Readings Required:
| ||
03/08 | Schema Composition and The Modeling Process | ||
Lecture | |||
03/10 | Defining Simple Types | ||
Lecture | Readings Required:
| 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 | Readings Required:
| ||
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 | Assignment Description & Downloads for Assignment 7 - due on 04/14 | ||
04/07 | Building Web Applications with Pipelines: A Mobile Application for My Dog | ||
Lecture | |||
04/12 | WSDL, SOAP, and Alphabet Soup | ||
Lecture | Readings The SOAP specifications and the SOAP Primer. The WSDL 1.1 specification and a nice article on WSDL. | ||
04/14 | RSS & ATOM | ||
Lecture | |||
04/19 | CSS | ||
Lecture | |||
04/21 | XSL Formatting Objects | ||
Lecture | |||
04/26 | Graphs, XML, and RDF | ||
Lecture | |||
04/28 | OWL and Ontologies | ||
Lecture | |||
05/03 | Presentations | ||
Lecture
| |||
05/05 | Presentations | ||
Lecture
| |||
05/10 | Presentations | ||
Lecture
|
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:
Complete all assignments.
Develop a web application that uses at least two XML technologies.
Present your application and architecture to the class.
Document your project and write a short paper describing it.
Turn in a working application (preferably a .war file)
1 Unit Version:
Complete 75% all assignments.
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:
50% Assignments
15% Presentation
35% Project
1 Unit Version:
90% Assignments
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.