Uploaded image for project: 'OASIS Open Document Format for Office Applications (OpenDocument) TC'
  1. OASIS Open Document Format for Office Applications (OpenDocument) TC
  2. OFFICE-1812

ISO/IEC JTC 1/SC 34 N 1078 : DEFECT REPORT NUMBER JP2-21

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Applied
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: ODF 1.0, ODF 1.0 (second edition)
    • Fix Version/s: ODF 1.0 Errata 02
    • Component/s: None
    • Labels:
      None
    • Proposal:
      Hide

      The table:condition attribute specifies the condition that must evaluate to "true" for all cells the validation rule is applied to. The value of this attribute should be a namespace prefix, followed by an implementation-defined Boolean expression. If the namespace prefix is missing it defaults to the "urn:oasis:names:tc:opendocument:xmlns:of:1.2" namespace.

      The defined conditions are:

      • cell-content-text-length() op value, where op is one of the relational operators '<', '>', '<=', '>=', '=' or '!=': true if the length of the cell's text compared to the value specified in the condition by value using the relational operator op evaluates to true.
      • cell-content-text-length-is-between(value1, value2): true if the length of the cell's text is between value1 and value2.
      • cell-content-text-length-is-not-between(value1, value2): true if the length of the cell's text is not between value1 and value2.
      • cell-content-is-in-list(list), where list is one or more string entries, separated by ';', or a formula: true if the cell's content is in list.
        -cell-content-is-decimal-number() and condition, where condition is one of the value conditions below: true if the cell has a numeric value and condition is true.
      • cell-content-is-whole-number() and condition, where condition is one of the value conditions below: true if the cell's cell has a whole value and condition is true.
      • cell-content-is-date() and condition, where condition is one of the value conditions below: true if the cell has a date value and condition is true.
      • cell-content-is-time() and condition, where condition is one of the value conditions below: true if the cell has a time value and condition is true.

      The defined value conditions are:

      • cell-content() op value, where op is one of the relational operators '<', '>', '<=', '>=', '=' or '!=': true if the cell's value compared to the value specified in the condition by value using the relational operator op evaluates to true.
      • cell-content-is-between(value1, value2): true if the cell's value is between value1 and value2.
      • cell-content-is-not-between(value1, value2): true if the cell's value is not between value1 and value2.

      The defined variables are:

      • value , value1 and value2 are a numberValue, a string or a formula.
      • numberValue is a whole or decimal number. The number shall not contain comma separators for numbers of 1000 or greater.
      • string comprises one or more characters surrounded by quotation marks.
      • formula is a formula (see 18.644) without the equals (=) sign at the beginning.
      Show
      The table:condition attribute specifies the condition that must evaluate to "true" for all cells the validation rule is applied to. The value of this attribute should be a namespace prefix, followed by an implementation-defined Boolean expression. If the namespace prefix is missing it defaults to the "urn:oasis:names:tc:opendocument:xmlns:of:1.2" namespace. The defined conditions are: cell-content-text-length() op value, where op is one of the relational operators '<', '>', '<=', '>=', '=' or '!=': true if the length of the cell's text compared to the value specified in the condition by value using the relational operator op evaluates to true. cell-content-text-length-is-between(value1, value2): true if the length of the cell's text is between value1 and value2. cell-content-text-length-is-not-between(value1, value2): true if the length of the cell's text is not between value1 and value2. cell-content-is-in-list(list), where list is one or more string entries, separated by ';', or a formula: true if the cell's content is in list. -cell-content-is-decimal-number() and condition, where condition is one of the value conditions below: true if the cell has a numeric value and condition is true. cell-content-is-whole-number() and condition, where condition is one of the value conditions below: true if the cell's cell has a whole value and condition is true. cell-content-is-date() and condition, where condition is one of the value conditions below: true if the cell has a date value and condition is true. cell-content-is-time() and condition, where condition is one of the value conditions below: true if the cell has a time value and condition is true. The defined value conditions are: cell-content() op value, where op is one of the relational operators '<', '>', '<=', '>=', '=' or '!=': true if the cell's value compared to the value specified in the condition by value using the relational operator op evaluates to true. cell-content-is-between(value1, value2): true if the cell's value is between value1 and value2. cell-content-is-not-between(value1, value2): true if the cell's value is not between value1 and value2. The defined variables are: value , value1 and value2 are a numberValue, a string or a formula. numberValue is a whole or decimal number. The number shall not contain comma separators for numbers of 1000 or greater. string comprises one or more characters surrounded by quotation marks. formula is a formula (see 18.644) without the equals (=) sign at the beginning.
    • Resolution:
      Hide

      8.5.3 Condition

      Replace:
      "The value of this attribute should be a namespace prefix, followed by a Boolean expression.
      A typical syntax of the expression may be similar to the XPath syntax. The following are valid conditions:
      •Condition ::= ExtendedTrueCondition | TrueFunction 'and' TrueCondition
      •TrueFunction ::= cell-content-is-whole-number() | cell-content-is-decimal-number() | cell-content-is-date() | cell-content-is-time() | cell-content-is-text()
      •ExtendedTrueCondition ::= ExtendedGetFunction | cell-content-text-length() Operator Value
      •TrueCondition ::= GetFunction | cell-content() Operator Value
      •GetFunction ::= cell-content-is-between(Value, Value) | cell-content-is-not-between(Value, Value)
      •ExtendedGetFunction ::= cell-content-text-length-is-between(Value, Value) | cell-content-text-length-is-not-between(Value, Value) | cell-content-is-in-list(StringList)
      •Operator ::= '<' | '>' | '<=' | '>=' | '=' | '!='
      •Value ::= NumberValue | String | Formula
      •StringList ::= StringList ';' String | String"
      •A Formula is a formula without an equals (=) sign at the beginning. See section for more information.
      •A String comprises one or more characters surrounded by quotation marks.
      •A NumberValue is a whole or decimal number. It must not contain comma separators for number of 1000 or greater."
      with:
      "The value of this attribute should be a namespace prefix, followed by an implementation-dependent Boolean expression."

      Show
      8.5.3 Condition Replace: "The value of this attribute should be a namespace prefix, followed by a Boolean expression. A typical syntax of the expression may be similar to the XPath syntax. The following are valid conditions: •Condition ::= ExtendedTrueCondition | TrueFunction 'and' TrueCondition •TrueFunction ::= cell-content-is-whole-number() | cell-content-is-decimal-number() | cell-content-is-date() | cell-content-is-time() | cell-content-is-text() •ExtendedTrueCondition ::= ExtendedGetFunction | cell-content-text-length() Operator Value •TrueCondition ::= GetFunction | cell-content() Operator Value •GetFunction ::= cell-content-is-between(Value, Value) | cell-content-is-not-between(Value, Value) •ExtendedGetFunction ::= cell-content-text-length-is-between(Value, Value) | cell-content-text-length-is-not-between(Value, Value) | cell-content-is-in-list(StringList) •Operator ::= '<' | '>' | '<=' | '>=' | '=' | '!=' •Value ::= NumberValue | String | Formula •StringList ::= StringList ';' String | String" •A Formula is a formula without an equals (=) sign at the beginning. See section for more information. •A String comprises one or more characters surrounded by quotation marks. •A NumberValue is a whole or decimal number. It must not contain comma separators for number of 1000 or greater." with: "The value of this attribute should be a namespace prefix, followed by an implementation-dependent Boolean expression."

      Description

      Transcribed from http://www.itscj.ipsj.or.jp/sc34/open/1078.htm

      Original author: "MURATA Makoto (FAMILY Given)" <eb2m-mrt@asahi-net.or.jp>
      DEFECT REPORT NUMBER JP2-21

      QUALIFIER clarification required

      REFERENCES IN DOCUMENT "Condition" in Clause 8.5.3 (original text incorrectly said '8.5.2'

      NATURE OF DEFECT The BNF in this subclause is very unclear. Where is whitespace allowed? Which symbol is a non-terminal symbol and which is a terminal symbol?

      SOLUTION PROPOSED BY THE SUBMITTER Use ISO 14977.

        Attachments

          Activity

            People

            • Assignee:
              svante.schubert Svante Schubert
              Reporter:
              rcweir Robert Weir (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: