Project 2

Individual Project

XML interpretation and presentation

  • Proposal: Oct 8 - Moodle
  • Design (code and UI): Oct 10 - Moodle
  • Complete System: Oct 19 - Moodle


The Goal of this project is to create a software system to allow the perusal, searching and viewing of a document source in XML form.


In class we will review examples of using both C++ and Javascript to parse and display a version of the Bible represented in XML. The student will pick one of the XML document sources given, or (with approval) find a XML document with which to do two of more of the following:

  1. Create a method to select a chapter, section, or other unit to display is a meaningful and useful form. You should use boxes, color, and other formatting components to make the presentation highly readable and usable for the types of setting it might be used.
  2. Create a method to (once at a given section) page or move forward or backward through the text appropriately.
  3. Create an indexed search mechanism to allow the user to search for matches in the text or meta data (as appropriate), then upon selection jump to that match on context (using the above features).
  4. Allow the user to open and collapse sections and subsections as desired by the reader. (For example, in Shakespeare, the user might chose whether they want to see the cues or scene information.
  5. Other features may be proposed for approval.
XML Information

Some XML Examples

XML documents

I have placed several xml sourses in the web path so you can load them directly into a javascript program running on a web page. They are in "/var/www/html/class/softdev/XMLFiles". You can access from javascript with "/class/softdev/XMLFiles/...".

Possible documents that you could use for you project:

1. Shakespeare

  • Web source of complete works.
  • Location on cslab: /home/class/SoftDev/XML/ShakespeareXML (for local use)
  • Also located at: /var/www/html/class/softdev/XMLFiles/ShakespeareXML (for access from a web page)
2. Quran
  • Web source here.
  • Many versions and languages
  • Other resources
3. Bible
  • Web source here.
  • Many languages and versions.
  • Complete concordance with Hebrew and Greek links and dictionaries.
  • Location on cslab: /home/class/SoftDev/XML/XMLBible (for local use)
  • Also located at: /var/www/html/class/softdev/XMLFiles/XMLBible (for access from a web page)
4. Baseball Statistics
  • Web source here.
  • Complete for 1998.
5. Periodic Table 6. - 197,903 datasets! Many in XML.

Demo code

  • Bible Lookup from web using only Javascript: here (using Javascript with jQuery)
  • Bible and concordance lookup from C++: /home/class/SoftDev/XMLCPPDemo

Lab Milestones

1. Proposal :

  • A one page proposal including
    • which documents you will be using (and source if not given)
    • a list and description of the specific features you would like to implement
    • References to the Risch paper, indicating which concepts you used
  • Moodle Link
2. Design (code and UI):
  • A complete proposed design of the system
    • A proposed system architecture (what are the components, and how will they communicate)
    • A specification of any communication protocols you will need
    • A specification of a user interface. Include a mock of the interface.
  • Moodle Link
3. CompleteSystem:
  • A complete working system
    • Online and ready to demo (in class)
    • All source code YOU wrote (structured quality code with full comments)
    • A document describing how to install the system
  • Moodle Link
Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng xml_logo_1028036.png r1 manage 14.7 K 2017-10-31 - 00:27 JimSkon  
Edit | Attach | Watch | Print version | History: r9 < r8 < r7 < r6 < r5 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r9 - 2018-10-13 - JimSkon
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback