Practical Training XML Winter Term 2022/23
Prof. Dr. Wolfgang May
Lars Runge, M.Sc.,
- Module M.Inf.1802, 4 SWS, 6 ECTS-credits; it is graded (=benotet)
Course Description
The practical training builds upon the lecture Semistructured Data and XML.
It introduces XML application programming based on Java and on Web Services.
Prerequisites:
- Successful participation in the module
Semistructured Data and XML
or comparable
good knowledge in XML, and
- Successful participation in the "General
Programming Lab/Allgemeines Programmierpraktikum" (or an equivalent course on Programming+Java).
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).
Most of the course uses the geographical sample database "Mondial"
in its XML version.
- Date and Time: Mon 14-18
- Room:
IFI 2.101 (North Campus)
- 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
here;
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
XML lecture.
- Mo 31.10. Holiday (Reformation Day) in northern Germany. No meeting.
-
Kickoff Meeting (attendance required):
Mo 7.11.: 14-16: Introduction, Formalities
Rocket Chat of the XML lab course.
- 7.11. 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.
Video: see StudIP WS20/21,
Exercises: Exercise Sheet 1: XQuery
(groupwise discussion until 21.11.2022)
-
14.11. 2. Unit: XSLT (optional BBB-Meeting, short comments, mainly then hands-on support for XQuery Exercises)
Slides: XSLT
W3C XSLT 3.0, W3C Recommendation 8 June 2017.
Video: see StudIP WS2021,
Video: some more comments on XSLT from two
years ago (it also gives some comments on the exercise sheet, note that the old
Exercise 3 has been changed into an item of Ex.2)
Exercise Sheet 2: XSLT (Ex.2 can be shared by 2 persons;
groupwise discussion until 5.12.2022)
Download the updated mondial.xml.
- 21.11.: Discussion of Exercise Sheet 1 (XPath/XQuery): groupwise, with one of the supervisors
- 28.11.: Ex.Sheet 2
has been slightly revised and extended: Ex.2.2 is maybe still/again not
completely possible with restricted browser XSLT 1.0 - do it as far as possible as an experience
with dynamically created Web pages.
Added (optional): Ex 2.3 -- document XML (Hamlet) to LaTeX. It illustrates the flexibility of XSLT
and the generation of non-XML target data.
Part II:
- 28.11.: 3. Unit: XML and Java I: DOM, SAX, StAX (and hands-on support for XSLT exercises)
Slides: XML and Java I
Code fragments from the slides: to download
Video: see StudIP WS20/21
-
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 12./19.12.2022 (for this, we need
probably two appointments).
- 5.12.: Discussion of Exercise Sheet 2 (XSLT): groupwise, with one of the supervisors
- 12.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).
(Test 12.12.2022: JAXB works with some warnings on the CIP pool computers).
The Digester jar files can be found in
/afs/informatik.uni-goettingen.de/user/d/dbisuser/XML-Tools/Digester (CIP Pool)
or here.
Note: the Digester examples on the slides work in the IFI-Pool only when
/afs/informatik.uni-goettingen.de/group/dbis/public/oracle/lib/xmlparserv2.jar
is not in the classpath (situation in 2019).
Video see StudIP WS20/21,
Exercises:
Exercise Sheet 4: JAXB, Digester, HTML processing
(groupwise discussion 16.1.2023)
- 12.12.2022 afterwards: Discussion of some exercises from Exercise Sheet 3.
- 19.12.2022: Discussion of the rest of Exercise Sheet 3.
Part III:
|