Assignments
This table shows the assignments that you have to do, and the percentage of the final grade that each is worth.
| Assignments | % of Final Grade | Due when |
|---|---|---|
| In-class exercises | 45% | June 28 |
| Final project | 50% | July 5 |
| Class participation | 5% | throughout |
Assignment submission guidelines & late policy
- All assignments are due by 11:59:59pm (US Eastern time) on their due dates.
- Submit your assignments by posting your files in a Web-accessible directory on Ella/Iris, Silo, or Quarry, and sending the instructor an email containing the URLs of the files.
- The instructor will email you both to confirm receipt of your assignment as well as to return feedback and your grade, when the assignment has been graded.
- Grading and feedback should occur within one week after the assignment due date.
- All files should be "plaintext" files, using either Unicode (UTF-8 preferred) or ASCII (ISO-8859-1) text encoding (no Word DOCs, PDFs, JPEGs, etc.). XML files should end in .xml, DTDs in .dtd, Schema files in .xsd, and XSL files in .xsl.
- Assignments submitted after the deadline will lose 5% of the assignment grade for the first day late, and 1% for each additional day.
- This late policy ends on the day when the course's grades are due to the Registrar, typically three days after the final project is due. Unless the instructor agrees (at his discretion) to grant the student an Incomplete grade, work submitted after this deadline will not count towards the course grade.
- All documents should be indented for easy reading.
- For auto-indenting, I highly recommend tidy.
- You might also want to consider using an editor that is capable of XML (e.g., <oXygen/> or one of the many others). If you use a WYSIWYG editor, make sure that the code it produces complies with the international standards taught in this course. (Note: if you plan on working with Dr. Walsh, he uses oXygen extensively. oXygen is freely (as in money, not speech) available from IUware, but is not free after you leave IU.)
- Write one short paragraph for every open-ended question. Again, please only submit plaintext files.
- The assignment requirements listed on this page represent minimum requirements for an average grade (B+/A-). To earn a higher grade, correctly implement a greater variety of features than required, be especially creative, turn in your work early, etc.
Assignment descriptions
In addition to class participation, you will be evaluated on the basis of two assignments, one of which you should complete during the workshop (due the Monday following the workshop), and a final project, which is due a week later. These assignments are described below, and will be discussed in greater detail during the workshop.
In-class exercises
XML documents & their uses
- Name 5 markup languages that are not based on XML, and 5 that are.
- Name 3 uses for XML that make you want to take this workshop.
- XML files are databases.
- What type of database are they (flat, hierarchical, relational, object-oriented, or something else)?
- Name a circumstance in which a database like XML is not the best kind of database to use for that task/application, and why?
- Create a well-formed (don't worry about validation yet) document using an XML markup language that you create to describe your resume. The document should include at least:
- ten differently-named elements containing only character data
- five differently-named elements containing other elements
- three differently-named attributes
- one entity (that you create, not a built-in one)
- one comment
Writing a valid DTD
- What are namespaces, and how do they relate to the Semantic Web?
- Create a valid DTD that could be used as the rule set for the XML file created for the previous section. This DTD should include:
- A clear hierarchy of at least fifteen differently-named elements;
- Specification of the entities and attributes used in the XML document;
- At least one comment.
- Your XML file should now validate, using this DTD. For a list of recommended validators, see the readings for class 2 on the course outline (you may also use the validator built into oXygen). When submitting your assignment, please tell me which validator you used.
Writing a Schema
Create a schema that could also be used as the rule set for the XML file that you have created. This schema should include:
- A clear hierarchy of at least fifteen elements;
- Some combination of simple and complex type elements;
- At least one custom simple type element with limiting constraints; and
- At least four different kinds of complex type elements with limiting constraints.
Extra credit will be given, if your XML file validates against this schema (again, please tell me which validator you used).
Creating XSLT style sheets
- What is XSL-FO, and how does it differ from XSLT?
- How does XSL relate to "glue" programming languages (e.g., Perl, PHP, Python, ASP, JSP, Ruby, Bash, etc.)?
- Create one .xsl stylesheet for rendering your XML document as HTML. This stylesheet should include:
- at least five different types of XSLT 1.0 elements and three different types of XPath 1.0 expressions (not five instances of the same element/function). The xsl:stylesheet and xsl:template elements don't count towards the five.
- at least one valid and functional XLL simple link (i.e., add an XLL link to your DTD and XML files, extract its href using XPath, and add the href as an attribute to an 'a' element using XSLT)
- the .xsl stylesheet should output valid XHTML Strict and CSS. (You can check this either by visually inspecting your XSL code, or by using one of the following tools to obtain the results tree, which you then copy-paste into an HTML validator: XML Results add-on (Firefox), msxmlvw (IE).)
Recent standards
(The functionality of the following requirements should be checkable in the oXygen, XMLSpy, or EditiX editors, though only the correct use of the code documented in either the notes or Goldberg book is required, not functionality. Support for these recent standards in common parsers, browsers, and editors is still inconsistent.)
- Make a version of your .xsl file that uses at least five different types of XSLT 2.0 elements and three different types of XPath 2.0 expressions. The root and template XSLT elements still don't count.
- Make your XSLT file automatically output XHTML. This feature will also not count towards either the five XSLT or three XPath requirements in the previous item.
- (Extra credit will be given for attempting XQuery, depending on the quality and complexity of your attempt.)
Final project
- For a topic of your choosing, create:
- three XML documents (variations on a single DTD/Schema; e.g., for a music collection, you might have one XML file for CDs, one for digital files, and one for analog tapes/records)
- one DTD that defines all of the components present in the three XML files
- one Schema that defines those same components (again, extra credit if the XML files validate against it)
- one XSLT stylesheet that can transform any of the XML files into XHTML. Extra credit will be given for use of XSLT/XPath 2.0 and XQuery (even if no browser will display them).
- The requirements for the project are double the content requirements of the previous assignments (i.e., the DTD/Schema should define 30 unique elements, 6 unique attributes, etc.). This means that each of your three XML files could be slightly shorter than your resumes have been up to this point. Requirements from the previous assignments that do not involve either elements, attributes, or entities (e.g., how many complex types to use in the schema, how many different XSLT elements to use, etc.) remain the unchanged.
Past project topics have included: artifact collections (e.g., audio, videos, texts, artwork, etc.), scientific classifications (e.g., biological taxonomies), directories of people or organizations, travel logs, meals/menus/diet/health.... Almost any kind of database would work. Though you may not simply implement an existing XML-based language (e.g., TEI) for your project, you may create an extension of an existing language, if your extension includes as much original work as required by the above guidelines. If you make such an extension, please keep it modular/separated from the original language's files.
Please pick a topic of professional or personal interest to you.
Participation
In order to earn all of the participation credit, every student is required to attend every class (see the policies page for excused absences), and to make at least one substantive comment per class, either in class or on the topical discussion pages. This could be an insightful question or comment, a link to relevant or helpful resources, assisting a classmate, etc. The point is to get engaged with the material and to communicate your ideas effectively and considerately with others.
Class discussion & participation resources
- listserv: 2010-5-bl-slis-s603-10161@oncourse.iu.edu
- email the whole class
- must use your IU email account
- only works for registered students
- messages are archived in the Oncourse "Email archive"
- topical discussion pages
- discuss and ask questions about class topics
- email form
- send the instructor a private message
- Paper & online surveys will also be made available at the end of the workshop, as is usual at SLIS.
