COAP:COAP-2180/week1
Week 1 COAP 2180
Learning goals
On week one we will look at XML in several ways:
- Where is XML used ?
- What is XML ? (a formalism)
- What do we mean by a "document structure" ?
- How can we hand-code XML "applications" ? You will learn how to use an XML editor and make use of so-called DTDs.
- How can we add some CSS to text-centric XML ?
Introduction to XML (Monday)
- The learning environment
- World classroom (Blackboard)
- This wiki
- Homework projects, exams and grading
- Introduction to XML - slides
- Introduction to XML
Editing XML (Wednesday)
- Understanding and editing XML
- XML principles (recall)
- xml-edit.pdf (slides used to explain how to understand DTDs and how to edit XML)
- Editing XML tutorial (wiki article)
- XML editors, in particular Exchanger XML Editor (installed in the classroom on the N: drive)
- Examples files
- Homework 1-2, week 2 program
- Also directly in DTD and XML templates example directory
- To retrieve these files, I strongly suggest that you "save link as". If you open a file in a navigator like IE and then save, you may loose information ....
- Also consider taking the ALLFILES.zip archive which should include everything. Before unzipping, create a directory.
Additional documentation
If you find that my lecture notes and slides are incomplete, too short or not good enough, reading either one or both texts is mandatory !
- XML in a Nutshell, Chapter 1 Introducing XML and Chapter 2 XML Fundamentals
- Learning XML, Chapter 2 Markup and Core Concepts
Both are available through the world classroom
- For the adventurous
- XML Category (All XML-related articles in this wiki)
- XML (on Wikipedia)
Homework 1 - Weeks 1
Deadline and submission:
- Wednesday week 2 (before start of class)
- Use the worldclassroom: https://webster.blackboard.edu/
- Submit the *.xml, the *.dtd and an optional report file (see below)
- Have a look at the week 1 program for resources, e.g. Exchanger XML Editor
Task
Edit an XML document using one of the suggested DTDs below
- Respect the semantics of the elements and the attributes
- Validate your document
- Try to use as many different elements as you can (if appropriate)
- Follow additional directions for each suggested DTD
- Use an existing CSS if it exists, create one if it does not.
Bonus:
- Add comments in the DTD or the XML file that explain the XML structure. In addition, write a short report that discusses the DTD and the CSS.
- Styling: improve or create the CSS (if appropriate)
- Good, meaningful contents
Do not worry too much about rendering (display). It is more important that your get the XML editing right, i.e. be able to fill in a dynamic information structure with data. That being said, producing a really good looking CSS will give you a bonus of course.
In order to get a maximum score (4/4), your XML must be well-formed, valid and include meaningful data. The DTD and the CSS should documented and there should be a report.
Example files
You can choose among the DTDs available at http://tecfa.unige.ch/guides/xml/examples/dtd-examples/
- Make sure to get both the *-template.xml and the corresponding *.dtd file. If available, you also should take the *.css.
- You may suggest another DTD to the instructor, but before Wed week 2.
Some of the DTDs are described in the following table.
DTD (difficulty) | Purpose | DTD file | XML start | CSS | Additional instructions |
---|---|---|---|---|---|
Recipe DTD (easy medium) | Write simple recipes | recipe.dtd | recipe.xml | recipe.css | Use all tags. Write at least one recipe. Make sure that there is enough information, i.e. a user ought to able to cook this. Look at this example. |
CD_list (medium) | Create simple CD lists | cd-list.dtd | cd-list-template.xml | cd-list.css | Use most tags. Write at least two entries and at least one that uses most of the tags. Do better than cd-list.xml |
Recipe Markup Language (hard) | Write complex recipes | recipeml.dtd | recipeml.xml | none | As above, but only use appropriate tags. Read more in the official website. |
RSS 0.92 (medium) | News syndication (usually machine generated) | rss-0-92.dtd | rss-0-92-template.xml | none | Use enough tags to display this in an aggregator. Enter at least 4 URLs. Hint: look at a RSS news feed first ! |
Simple Docbook (hard) | Write "real" articles | sdocbook.dtd | sdocbook-template.xml | none (but see this) | Do not use all tags, only the needed ones. Copy/paste from a text you already have. |
Instructions (medium) | Write "how-to" instructions | instructions.dtd | instructions.xml | instructions.css | Come up with a good "how-to problem". Only use tags you need.. |
StepbyStep (medium hard) | Write "how-to" instructions | stepbystep03.dtd | stepbystep03-template.xml | stepbystep03.css | Make up a good "how-to problem". Only use tags you need.. |
Story grammar (medium) | Write simple fairy tales | story-grammar.dtd | story-grammar-template.xml | story-grammar.css | Write a nice fairy tale. Doesn’t need to be your own. Make sure to use the right tags, i.e. think in terms of structure. A very short example is here. |
Tips for getting a good grade
Evaluation criteria (roughly). See the detailed grid in the world classroom.
Work considered as weak:
- Well-formed (but not valid) document using the DTD’s elements
Work considered as minimalistic:
- Valid document that includes very minimal content. No report.
Good work includes:
- Valid document with an interesting content
- Some CSS
Excellent work (A-) includes:
- Inserted useful comments <!-- ... --> in the XML and/or the DTD or a minimalistic report
- Respect of the DTD's semantics
- Good contents
- Good enough CSS for easy reading
Very good work (A) includes either one of:
- A 1-2 page report that discusses the architecture of the DTD and your opinion of it, e.g. you can describe architecture of the DTD (without going into detailed description of every element !), discuss what you would like to improve, what you liked/disliked, your difficulties, etc. You simply can include this report into the DTD that you resubmit or as word/PDF/HTML file. As you like, presentation of the report doesn't matter.
- Outstanding styling + extended contents
Brilliant work (A+) includes all of the above.
Report structure and contents
- Read this