Practical Training XML
Winter Term 2023/24
Prof. Dr. Wolfgang May
- Module M.Inf.1802, 4 SWS, 6 ECTS-credits; it is graded (=benotet)
The practical training builds upon the lecture Semistructured Data and XML.
It introduces XML application programming based on Java and on Web Services.
The training uses the concepts of the XML world:
XML, DTD, XPath, XQuery, XSLT, XLink, XML Schema, SQL/XML, XML APIs for Java (DOM, SAX, StAX, JAXB),
and Web Service infrastructure (Apache Tomcat).
- Successful participation in the module
Semistructured Data and XML
good knowledge in XML, and
- Successful participation in the "General
Programming Lab/Allgemeines Programmierpraktikum" (or an equivalent course on Programming+Java).
Most of the course uses the geographical sample database "Mondial"
in its XML version.
- Date and Time: Mon 14-18
IFI 2.101 (North Campus) online via BBB
- The course takes place in groups of 3-4 persons. There are usually
5 units: XPath/XQuery, XSLT (both based on the material of the lecture),
XML and Java I (DOM/SAX/StAX), XML and Java II (JAXB and Digester), and
Web Services (with an application project).
For every unit, there is an exercise sheet which will be discussed
with one of the supervisors, using monday 14-18 slots.
- Every monday: Optional live online "course meetings" with BigBlueButton.
Course materials are provided as recordings, so the meetings consist
of short comments to the new topic and questions&answers and hands-on
support for the ongoing exercise sheet.
- Materials for self-studying are provided as PDF slides and as
videos (from winter term 2020/21)
- Please also read the general and technical information
about DBIS virtual teaching.
Documentation: use the slides from the
SSD/XML lecture (the full slide set can be found
Sections 1-8 were the material of the lecture, the rest is intended for the
practical course) and the W3C documentation linked below. For practical
exercises, the XML software is installed in the IFI CIP Pool. Short
descriptions of the software to be used can be found here.
Prospective Time Schedule
Part I: Review of basics, concepts and languages around XML that should be known from the
Kickoff Meeting (attendance required):
Mo 30.10.: 14-16: Introduction, Formalities.
Rocket Chat of the XML lab course.
- 30.10. cont'd: 1. Unit: Exercises to XPath, XQuery (including user-defined functions)
Slides: XPath, Slides: XQuery from the lecture.
In addition to the slides, the W3C material serves as technical documentation for the languages:
W3C XPath 3.0, W3C Recommendation, 2014.
W3C XQuery 3.0, W3C Recommendation 2014.
W3C XPath and XQuery Functions and Operators 3.0,
W3C Recommendation 2014.
Exercises: Exercise Sheet 1: XQuery
- 6.11. 14:15 optional: hands-on-meeting
13.11. 2. Unit: XSLT
Optional BBB-Meeting, short comments, mainly then hands-on support for XQuery Exercises
W3C XSLT 3.0, W3C Recommendation 8 June 2017.
Exercise Sheet 2: XSLT
- 20.11.: Discussion of Exercise Sheet 1 (XPath/XQuery)
Part II: XML and Java
- 27.11.: 3. Unit: XML and Java I: DOM, SAX, StAX (and hands-on support for XSLT exercises)
Slides: XML and Java I
Short online meeting in StudIP/BBB; video material see below, Questions and Answers, Hands-on-meeting.
Code fragments from the slides: to download
Video: see StudIP WS20/21: Meeting "XMLP-2020-11-30-dom-sax-stax"
Exercise Sheet 3: DOM/SAX/StAX [ catdata.xml ]
- The exercise sheet contains 7 exercises:
- Exercises 1 and 2 are smaller "warmup" exercises for DOM and SAX/StAX, they should be done
groupwise such that everybody gets into the new material. The discussion of these exercises
will be rather short.
- Ex. 3 goes a bit deeper into the idea of stream processing of XML and Java threads.
- Exercises 4-7 handle a "real use case" in different ways. The presentation of these bigger
exercises should not just be like "yes, I did it", but to present the solution ideas+strategy,
an informative overview of the code and the interesting aspects, and the lessons learnt by doing it.
- Presentations/Discussion preferably on 11./18.12.2022 (for this, we need
probably two appointments).
- 4.12.: Discussion of Exercise Sheet 2 (XSLT)
- 11.12.2022: 4. Unit: XML and Java II: JAXB, Digester
Slides: XML and Java II.
JAXB uses XML Schema: Slides XML Schema
Code fragments from the slides: to download (including the readme with the shell
commands for JAXB).
The Digester jar files can be found in
/afs/informatik.uni-goettingen.de/user/d/dbisuser/XML-Tools/Digester (CIP Pool)
Note: the Digester examples on the slides work in the IFI-Pool only when
is not in the classpath (situation in 2019).
Video see StudIP WS20/21,
Exercise Sheet 4: JAXB, Digester, HTML processing
(groupwise discussion 16.1.2023)
- 11.12.2022 afterwards: Discussion of some exercises from Exercise Sheet 3.
- 18.12.2022: Discussion of the rest of Exercise Sheet 3.
Part III: Project/Scenario