XML and Related Technologies
R. Alexander Milowski
milowski at sims.berkeley.edu
#1
Course Objective #1
To develop a solid knowledge of:
XML, Unicode, Namespaces, and Infosets.
XPath and XSLT
XML Schema and schema development practices
Basic formatting of XML using CSS or XSL Formating Objects
Tool technology to utilize these technologies.
#2
Course Objective #2
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.
#3
Course Objectives #3
See/utilize specialized vocabularies:
XHTML
RSS 2.0
RDF & OWL
WSDL & SOAP
#4
Books
Required:
Beginning XSLT, Jeni Tennison, APress Books, ISBN 1-59059-260-3
Definitive XML Schema, Priscilla Walmsley, Prentice Hall, ISBN 0-13-065567-8
Recommended:
Java & XML, Brett McLughlin, O'Reilly, ISBN 0-596-00197-5
#5
Online Course Materials
Course Website: http://www.sims.berkeley.edu/academics/courses/is290-14/s05/
Also, this course should be listed and linked to on the SIMS courses page as Infosys 290-14.
Mailing list: xml-tech@sims.berkeley.edu
Subscribe via:
Online at https://my.sims.berkeley.edu/E-Mail/Mailing_Lists/
Send an e-mail to majordomo@sims.berkeley.edu with the phrase 'subscribe xml-tech'
Instant Messaging:
Yahoo: alexmilowski@yahoo.com
AIM: alexmilowski
MSN: alexmilowski@hotmail.com
Note: Please e-mail before you add me to your contacts so that I know your IM id. Otherwise, I will deny you request.
#6
Related Courses
INFOSYS 243: Document Engineering - Bob Glushko
INFOSYS 290 / Section 17: Java Web Applications - Brian Hayes
#7
Tools
For this course, you are required to use a tool/environment that supports:
OASIS XML Catalogs for schema validation.
XSLT Transformation, version 1.0
XML Schema validation
Java 1.4.2 SDK (see http://java.sun.com/j2se/1.4.2/download.html)
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).
XMLSpy IS NOT ALLOWED. IT IS VERY BROKEN!
#8
Tools - Netbeans
Netbeans satisfies all these requirements except the browser and is my strong recommended tool.
I will only support Netbeans!
It is free and available from http://www.netbeans.org
Netbeans is an IDE for developing Java and web applications.
It is just like Eclipse but much better! (my opinion).
All course assignments and examples will be setup to work directly with Netbeans.
...and here it is! (demo)
#9
Tools - Netbeans & Java
You need to install Java if you don't have it regardless of whether you use Netbeans.
Some comments about installing Java:
You many already have a JDK installed. Check this by typing 'java -version' at the command-line.
You really need JDK version 1.4.2 or better.
I've not tried JDK 1.5 and you might run into compatibility problems. Use at your own risk.
Downloading from Sun's Java website:
Do not download the Netbeans+J2SE bundle because it contains a previous version of Netbeans (3.6).
You want the "J2SE SDK" but the J2EE SDK won't cause problems.
You if like, you can download the documentation for J2SE as well.
#10
Tools - Eclipse
Eclipse is missing all of the XML support necessary for this course.
The Oxygen plug-in does not add all the right capabilities either.
#11
Example Applications
Three examples:
Contacts Database w/ web service and mobile access.
RSS feed conversion.
XML Websites
#12
Example Applications - Contacts Database
Figure 1. Architecture
Talks to a web service that holds the contacts in XML form.
Supports basic query by name.
Front end supports browsing contacts via desktop and mobile browsers.
#13
Example Applications - RSS Feed Conversion
Figure 2. Architecture
RSS feeds contain escaped HTML which makes them difficult to use with XML tools.
An XML pipeline was used to build a web service that converts this escaped content into XML.
The pipeline streams the content so that large feeds can be converted.
A simple front-end interacts with the service and uses XSLT to format the feed.
#14
Example Applications - XML Website
RDF is used to describe the topics on my website.
The navigation of the sides--topic sidebars and bread crumbs are built from this RDF.
All the site content is converted by an XML pipeline "on the fly" to wrap the content with the site navigation.
This allows content to be re-purposed within the site as well as ambivalent to the site navigation.
#15
Example Applications - Mathdoc
This set of schemas was developed to support authoring of large scientific documents.
Support for XHTML, PDF, and latex output was necessary.
The schemas are "open" and allow other content forms to be mixed into the application.
MathML is directly supported.
#16
Course Requirements
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.
#17
Course Grading
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
#18
First Assignment
Setup Netbeans (or your alternate environment).
Perform the "compliance test" that is available from the course website.
E-mail me the results--a status message or the problems you encountered.
If your alternate environment doesn't pass, please try Netbeans.
This assignment is required but not graded.