CS U670 Assignment #3.
Assigned: Friday, 8 February 2008
Due: Friday, 15 February 2008
Working in a team of three students, write a validating
XML parser for documents that satisfy the RELAX NG
specification shown below. Your parser should read its
input document from standard input and should write its
output to standard output. If the input to your parser
is a well-formed XML document that satisfies the RELAX NG
specification, then the output from your parser should be
a human-readable description of the rooms described by
the input document. If the input to your parser is not
a well-formed XML document, or does not satisfy the RELAX
NG specification, then the output from your parser should
begin with "ERROR: " followed by a human-readable
explanation of the first error your parser detected in
its input.
Your validating XML parser must run on any CCIS Solaris
machine without requiring the installation of software
or libraries that are not already installed on those
machines. If your validating XML parser uses libraries
that are not already available on CCIS Solaris machines,
then those libraries must be submitted as part of your
parser. You must, of course, have permission to include
those libraries as part of your submission, which may
make it impossible for you to use some libraries in your
parser.
Your validating XML parser must be accompanied by a
README file that identifies all of the files you are
submitting for this assignment and tells the instructor
how to build and to run your parser. You should assume
the instructor has some familiarity with programming but
knows absolutely nothing about the specific programming
language(s) and other software used by your parser.
You will submit this assignment using a Unix shell script
provided by the instructor. This shell script and the
instructions for using it will be provided a few days
before the assignment is due.
Late assignments may be discounted, and very late assignments
are likely to be discarded.
--------------------------------------------------
Note: The original Relax NG specification may not
be valid; it was rejected by one validation program
but accepted by a possibly different version of that
same validation program running on a different system.
The following Relax NG specification is a relaxation
of the original, which is also shown below. Correct
implementations of either Relax NG specification will
be accepted.
--------------------------------------------------
--------------------------------------------------
up
down
north
south
east
west