SYLLABUS					2009/2010 academic year

Code:	IFI 6038	
Course title:	XML Applications	
Lecturer 	Position	
Peeter Normak	Lecturer	
Credits (ECTS):	3,0	
Volume:	78	Contact hours:	42	Independent work:	36	
Prerequisite subject:	None	
Assessment:	Ha	

1.	Objective
XML application areas, good and bad sides. History of language, technical possibilities. Syntax - elements and attributes. Desctiption of structure of document - schemas and DTD. Describing complex types. Changing structure of document. Queries with XSL, XPath and XQuery. Using XML in different programming languages: Java, PHP, Python, C#, Visual Basic. Data trees and DOM. Big documents and SAX. XML in databases. Different XML-based formats: WML, XHTML, RSS. Examples of XML-standards: QTI, LOM. Possibilities of XTee project in Estonia. Data communication between computers. Web Services, SOAP. In practical lessons and in homework students make different XML applications..	
2.	Time-table
 	
Week 	Topic	
1 (6h)	Lecture 1. XML examples, possibilities. Basic rules. Creation of XML documents. XML redactors. Changing XML document via XSL, output as XML, XHTML or SQL. Loops, conditions.	
	Exercises: self-constructed XML-data with XSL stylesheet.	
2 (6h)	Lecture 2. Deeper into XSL. Templates, calling them. Variables, using them via outer programs. Working with text. Constructing summary data. 

Description of XML-document via XSD Schema. Possibilities of schema. Description of types. Restrictions with types. Elements and attributes.  Sequence, choice, any. Validation with schema. Role and structure of DTD.	
	Exercises: schema design for personal data. 	
3 (6h)	Lecture 3. Role of DOM, DOM examples. Using XPATH for data querying. Collecting and saving recursive data (at example filesystem tree) via DOM into XML. Programming graphical applications using XML output (at example SVG). 	
	Exercises: Application, which uses DOM for data manipulation and XML as input and output.	
4 (6h)	Lecture 4. Using XML in different programming languages (Java, Visual Basic, PHP, Python, Perl, C#). Global rules and differences. SAX-technology for big amount of data. Data channel with using RSS. Asynchronous data handling with AJAX. 	
	Exercises: thinking about and changing examples.	
5 (6h)	Lecture 5. XML-based languages. WML, KML, MathML. Web Services, SOAP. Using KML with Google maps. Structure of QTI. Creating and solving tests. 	
	Exercises: Creating application using existing XML-based language.	
6 (6h)	Lecture 6. .NET and XML. Storing and validating XML in database. Querying XML with XQuery. LINQ and joining different data sources, XElement and XAttribute. XML-output to web page. Web services.	
	Exercises: Using .NET possibilities for XML-manipulation.	
7 (final week)	Seminar about whole material. Control work. 	

3.	Description of independent work and control
Home assignements are given in exercise classes. The home assignements are discussed with each person. 	
4.	Attendance requirements
The participation on lessons is not registered. 	
5.	Control work
Control work contains developing XML-dependent application and explaining it to teacher.	
6.	Learning materials
1.	D. Hunter. Beginning XML. Indianapolis 2007
2.	XML и Java 2 / М. Даконта, А. Саганич 
Санкт-Петербург [etc.] : Питер, 2001
3.	J. Kippar, XML tutvustus. http://minitorn.tlu.ee/~jaagup/kool/java/loeng/rak04/xml.pdf