Subject: [Lager] [lager] #34 (specification): RelaxNG does not authorize empty cp

From: "lager issue tracker" <[email-masked]>
Date: Thu, 18 Feb 2016 21:21:55 -0000

#34: RelaxNG does not authorize empty cp

 In order to support null variants, empty cp should be validated by RelaxNG
 schema.

 Modifying code-point-literal with the following might be sufficient:
 code-point-literal = code-point | code-point-sequence | ""
 However this could be undesired for char matcher as it uses the same type.

-- 
-------------------------------------+-------------------------------------
 Reporter:                           |      Owner:  draft-ietf-lager-
  [email-masked]         |  [email-masked]
     Type:  defect                   |     Status:  new
 Priority:  major                    |  Milestone:
Component:  specification            |    Version:
 Severity:  -                        |   Keywords:
-------------------------------------+-------------------------------------

Ticket URL: <https://trac.tools.ietf.org/wg/lager/trac/ticket/34>
lager <https://tools.ietf.org/lager/>

---

From: "lager issue tracker" <[email-masked]>
Date: Fri, 19 Feb 2016 05:35:10 -0000

Comment (by [email-masked]):

 Both <char> and <var> need an empty cp, when they are defined in the
 <data> section. However, in the <rules> section an empty <char> is
 undefined.

 Rather than adding yet another condition to manually validate, it would be
 beset to split "code-point-literal" and have a separate one for the use in
 the char-matcher.

 Perhaps define it as "non-empty-code-point-literal" and derive the other
 one from it?

 Severity:  -                        |  Resolution:
 Keywords:                           |

Ticket URL: <https://trac.tools.ietf.org/wg/lager/trac/ticket/34#comment:1>
lager <https://tools.ietf.org/lager/>

---

From: "lager issue tracker" <[email-masked]>
Date: Fri, 19 Feb 2016 17:26:09 -0000

Comment (by [email-masked]):

 I think it's a good solution.

Ticket URL: <https://trac.tools.ietf.org/wg/lager/trac/ticket/34#comment:2>
lager <https://tools.ietf.org/lager/>

---

From: "lager issue tracker" <[email-masked]>
Date: Mon, 29 Feb 2016 18:37:37 -0000

Comment (by [email-masked]):

 How does this look?

 {{{
 ## single code point, or a sequence of code points, or empty string
 code-point-literal = code-point | code-point-sequence | ""

 ## code point or sequence only
 non-empty-code-point-literal = code-point | code-point-sequence

 ...

 char-matcher =
   # for use as a matcher - like "char" but without a "tag" attribute
   element char {
     attribute cp { non-empty-code-point-literal },
     # If used as a matcher (appearing in a "rule" element), the
     # "count" attribute may be present. Otherwise, it MUST be
     # absent.
     attribute count { count-pattern }?,
     attribute comment { text }?,
     attribute ref { ref-pattern }?
 }
 }}}

Ticket URL: <https://trac.tools.ietf.org/wg/lager/trac/ticket/34#comment:3>
lager <https://tools.ietf.org/lager/>

---

From: "lager issue tracker" <[email-masked]>
Date: Mon, 29 Feb 2016 23:58:22 -0000

Changes (by [email-masked]):

 * status:  new => closed
 * resolution:   => fixed

-- 
-------------------------------------+-------------------------------------
 Reporter:                           |       Owner:  draft-ietf-lager-
  [email-masked]         |  [email-masked]
     Type:  defect                   |      Status:  closed
 Priority:  major                    |   Milestone:
Component:  specification            |     Version:
 Severity:  -                        |  Resolution:  fixed
 Keywords:                           |
-------------------------------------+-------------------------------------

Ticket URL: <https://trac.tools.ietf.org/wg/lager/trac/ticket/34#comment:4>
lager <https://tools.ietf.org/lager/>