OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

relax-ng message

[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