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