Clarifications and Corrections for Assignment 3

On this web page we will post...

  • what will not be tested;
  • clarifications to the specification;
  • corrections to the spec
  • Be sure and print a fresh copy of the Specification. The change log has been reproduced below.


    What will not be tested

  • Anything not specified in the specification will not be tested
  • The global variable $onyx-result has been removed from the specification and will not be tested.
  • We won't test for an illegal non-Boolean value in the "if" and or "where" tests, e.g.
    if ( 1 + 2) then 4 else 5
    



    Clarfications




    Corrections

  • A bug in the onyx_xml library has been repaired. None of the test cases were affected by this. The bug was in the OnyxNode.setAttributeEnvironment method: If the node already had some attributes defined, they were not cleared prior to adding the new ones.



  • A3 Changelog

    Date Description
    3/7/2006 Clarified arguments types for string().
    3/3/2006
    3/5/2006 Updated references to getAttribute() to getAttributeValue(). Removed example with updatable onyx-result. Clarified for clause behavior when the sequence is empty.
    3/3/2006 Updated Type conversions description to include description of automatic conversion for single to sequence. Added error message for modulus less than equal to zero. Clarification about function overloading added to scope rules. Clarified description of the children() built-in-function.
    3/3/2006 Removed superfluous comment about sequences having subtypes. There is no such notion in Onyx.
    3/2/2006 Added specification of how to report possible prototypes for a function declaration that is not found. Candidates will include functions whose prefix matches the name of the called function, and must have the same number of arguments.
    3/2/2006 Expanded discussion about Decimal division.
    3/1/2006 Rewrote the Scope Rules section to clarify discussion about global and local scopes. Child nodes are added to an element node using the addChildNode() mutator, not addChild().
    2/28/2006 Added division by zero error to error table.
    2/27/2006 Added notes about value comparison operators, and expanded discussion about comparison operators. Clarified discussion about Abstract types. Cleaned up discussion about prototype matching.
    2/27/2006 Added discussion about overloading of op:numeric-add to handle string concatenation.
    2/27/2006 Added table of built-in functions with prototype definitions
    2/26/2006 Added error message for Where condition containing a non-Boolean value
    2/22/2006 Updated descriptions of built-in functions (getAttributeValue(), integer(), decimal(), enode(), tnode(), addAttribute())
    2/21/2006 Removed the sequence() and charsequence() built-in functions. Added description of tail() built-in function. Updated description of first() built-in function.
    2/17/2006 Added discussion about XML names
    2/16/2006 Removed The number() built-in, added error message for attempt to to convert non-numeric string to number. Also provided more details about integer(), decimal( ), and string( ) conversion functions.
    2/15/2006 Fixed typo in string construction example "this is a string"
    2/13/2006 Released for Assignment 3.