← Prev in month ← Prev in thread

Improving 7.1

From
Murata Makoto <>
Date
2001-07-26T14:02:08+00:00
ID
Thread
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
← Prev in month ← Prev in thread