XML - eXtensible Markup Language
for Web Development

Course Number - X52.9759 / Y12.1408
Tuesday - 6:00-9:30pm - 145 Fourth Avenue (@14th Street), Room 205


Instructor: Sam Sultan [sam.sultan@nyu.edu]
Class web site: [samsultan.com/xml] (or) [workshop.sps.nyu.edu/~sultans/xml]

+ syllabus
+ books
+ grades
+ final project
+ student listing
+ lab facilities
+ examples & demos
+ other classes
+ student feedback
+ student evaluation & comments

Session - 1   2   3   4   5   6   7   8   9a   9b   9c   9d   10  

ITS - SFTP (download) PC, MAC - XML Editor - SAXON for XSLT - XHTML - XML - DTD - XML Schema - CSS - XSL - DOM - Validators


The objective of this course is two folds. First this course will introduce you to the concepts of XML (extensible markup language), which is a platform independent general purpose data descriptive language. Second the course will explain the various ways of presenting XML documents on the web using latest generation browsers. And although XML applications are broad and wide ranging in terms of applicability, the main focus of this course will be on harnessing XML potentials for web publishing.

This course will cover and demystify the various XML components, including how to make XML well formed, how and what makes XML valid using both DTDs (document type definition), and XML Schemas. The course will also teach you various techniques for presenting your XML documents on the web using CSS (cascading style sheets), XSLT (extensible style language transformation, and formatting), as well as using other means such as data binding through the use of the DSO (Data Source Object) and XML DOM (XML document Object Model). In addition, we will look at technologies that use XML as a basis such as SOAP, RSS and AJAX.

The focus of the course will be on the following topics:

BOOKS - (Required / Suggested)

Required Books -

Recommended Books -


Your final grade will be based on the following:

Homework assignments are always due the next session we meet.
Print your homework solutions and bring with you. Students will be asked to discuss their solutions in class.

Grades are FINAL.

Please do not negotiate for a better grade. If you are expecting to receive a grade of an "A" at the end of the semester, then I expect you to attend all sessions (unless I am notified ahead of time), to participate in these sessions, to keep up with the class reading material, and to complete your homework assigments. This will ensure that you stay current with the class content, and will ensure that you get a good grade on your test(s), project as well as your final grade.

If you are not interested in a grade, or you do not submit your homeworks/project or take the exams, then you will receive a grade of an "NE" (Non-Evaluative). A grade of NE is final, and cannot be changed. A grade of NE cannot be applied as partial fulfillment for any NYU certificate program.

To receive your final grade at the end of the semester, follow the instructions found at NYU SPS web page


You can always access the Unix server and class web site from home anytime of the day. If you do not have a computer at home, or do not have internet access, you can always use the NYU lab facilities. You can use those computers locally, or you can access the Unix server and web site.

The following are the facilities available for student use:


[Week 1] 1 Introduction to XML - eXtensible Markup Language.
Inherent problems with HTML.
Display vs. descriptive markup languages.
Concepts, purpose and the need for XML.
Flexibility and extensibility.
XML applications (XSD, XSL, MathML, SMIL, OFX, SOAP, RSS, XHTML).
Writing your first XML document
Viewing a raw XML document on the web.
Reading: Chapter 1
[Week 2] 2 Anatomy and syntax of an XML document.
XML documenent prolog.
Adding processing instructions.
Adding comments.
Rules for "well-formed" XML.
Checking for well-formedness.
What is a namespace?
Applying a namespace to XML documents.
Creating CDATA sections.
Reading: Chapters 2, 3
[Week 3] 3 DTD - Document Type Definition.
Concept and purpose of DTD.
Creating a DOCTYPE definition
Defining elements.
Defining element attributes.
Validating an XML document with DTD.
Defining entities.
General, parameter and character entities.
Using entities in XML and in DTD.
Reading: Chapter 4
[Week 4] 4 XML Schema.
Concept and purpose of XML Schema.
Defining elements.
Defining element attributes.
Using simpleType and complexType.
Modifying compleTypes to suit your needs.
Creating global types.
Validating an XML document with XML Schema.
Reading: Chapter 5
[Week 5] 5 CSS - Cascading Style Stheet.
Anatomy of a style rule.
Declaring selectors.
Declaring style properties.
Inheritence and cascading rules.
Linking external CSS to an XML document.
Including HTML elements in you XML document.
Displaying XML documents on the web using CSS.
Reading: Chapter 17
[Week 6] 6 - Midterm Exam -

XSL - eXtensible Style Language.
XSLT - XSL Transformation.
XSL-FO - XSL Formating Object.
Transforming XML with XSLT.
Creating the root template.
Creating additional templates.
Outputing HTML with XSLT.
Filtering and Sorting.
Using conditional processing.
Displaying XML documents on the web using XSLT.
Reading: Chapters 7, 8
[Week 7] 7 Displaying XML using data binding.
What is data biding?.
DSO - Data Source Object.
Binding XML elements to an HTML table.
Binding to nested HTML tables.
Using paging methods.
Single binding to other HTML elements.
Navigating through XML record set.
Reading: ---
[Week 8] 8 XML DOM - Document Object Model.
What is the purpose of a DOM? The structure of the XML DOM.
Accessing XML elements using the DOM.
Accessing XML attributes using the DOM.
Traversing an entire XML document tree.
Checking XML document for validity.
Using scripts to display XML DOM elements.
Reading: Chapter 11
[Week 9] 9a b c d XML Applications and future ideas
AJAX - Asynchronous JavaScript and XML
RSS - Real Simple Syndication
SOAP - Simple Object Access Protocol (Web Services).
XLink - XML hyperlinks to external document.
XPointer - XML links within a document.
Reading: Chapters 13, 14, 15, 16
[Week 10] 10 - Final Exam -

- Project Presentations -

All contents © Sam Sultan.
For more information, send e-mail to: sam.sultan@nyu.edu