XMLFramework Project Posted: November 21, 2019


sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates gnupg software-properties-common wget
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'
sudo apt-get update
sudo apt-get install cmake

The project is due at the Final Exam. The weight of the project is a single project, or as two projects, whichever leads to a higher project average.

A framework for XML processing:

The open-layered architecture framework, XMLFramework, supports all this and includes:

Much of the code is already implemented or given as a stub. Your job is to implement any parts that have a @TODO in a comment. A @TODO can range from implementing the definition of a method, adding a set of methods, all the way to adding classes. In implementing, follow the following workflow:

  1. Decide on a @TODO ... to implement
  2. Implement the @TODO ...:
    1. Implement a part of the @TODO ...
    2. Commit noting in the commit message which@TODO ... was implemented
  3. When finished with a @TODO ... item, remove the comment that contains the @TODO ...

Note that at no time can a single commit change more than one of the original @TODO ...s.

In addition completing any @TODOs:

The project does not have a Makefile. Instead, cmake creates the build files (e.g., a Makefile) in the subdirectory build. To generate this, use the command cmake ... The cmake files provided are very flexible with added files, so you are free to add files to the subdirectories. Any files in the apps directory are assumed to be executable files.

Git submodules are tied to a particular commit, and do not automatically update when the submodule is updated. To update the library submodule (e.g., when I make changes), periodically run the command:

git submodule update --remote --merge