[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Improving 7.1
Editorial changes will significantly improve 7.1 and I have suggested them already.
I am going to implement my proposal this weekend.
http://lists.oasis-open.org/archives/relax-ng/200107/msg00190.html
I have also argued that further restrictions on oneOrMore will significantly improve
the spec.
http://lists.oasis-open.org/archives/relax-ng/200107/msg00223.html#oneOrMoreAndContents
1. Changes to the simplified BNF
Get rid of "repeatable" and rewrite the production rule for
"nonEmptyPattern" as below:
nonEmptyPattern ::= attributeGroup
| value
| mixed
| <choice> pattern nonEmptyPattern </choice>
| <group> attributeGroup nonEmptyPattern </group>
| <group> nonEmptyPattern attributeGroup </group>
| <interleave> attributeGroup nonEmptyPattern </interleave>
| <interleave> nonEmptyPattern attributeGroup </interleave>
2. New inference rules
We might want to have two set of inference rules.
2.1 Attribute-free oneOrMore
(oneOrMore 1) cx |- {}; m =~ p => k; kr
--------------------------------------------------------
cx |- {}; m =~ <oneOrMore> p </oneOrMore> => k; kr
(oneOrMore 2)
cx |- {}; m1 =~ p => k1; kr1
cx |- {}; m2 =~ <oneOrMore> p </oneOrMore> => k2; kr2
---------------------------------------------------------------------
cx |- {}; m1, m2 =~ <oneOrMore> p </oneOrMore> => k1 + k2; kr1 + kr2
2.2 Attributes-only oneOrMore
(oneOrMore' 1) cx |- a; {} =~ p => k; kr
--------------------------------------------------------
cx |- a; {} =~ <oneOrMore> p </oneOrMore> => k; kr
(oneOrMore' 2)
cx |- a1; {} =~ p => k1; kr1
cx |- a2; {} =~ <oneOrMore> p </oneOrMore> => k2; kr2
disjoint(a1, a2)
---------------------------------------------------------------------
cx |- a1 + a2; {} =~ <oneOrMore> p </oneOrMore> => k1 + k2; kr1 + kr2
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC