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] | [List Home]

Subject: Re: [relax-ng] A mechanism for handling inclusion/exclusion

> Is this crossing the rubicon into rules based validation ala Schematron?

One difference is that single-pass event-only validation is good enough.  
On the other hand, Schematron requires another pass and DOM.  Very heavy.

inclusion/exclusion is a special case of tree regular grammars.  We can 
use RELAX NG to capture inclusion/exclusion, but the result is verbose.  
My proposal is arguably a syntax sugar that does not deviate from the underlying 
theory (tree automata).

> In my own efforts, I regularly leave inclusion/exclusion to a separate
> pass in a pipeline processing model and find it works well and retains
> simplicity through divide and conquer.

Yes, this would work for this particular example.  But does my proposal (or 
James' simplified one) hit 80% of the market?  It is very easy to implement.

Moreover, my proposal can capture what is not possible by such a separate 
pass, since it can take full advantage of regular tree grammars.

> I'm totally out of the loop, but couldn't inclusion/exclusion be looked upon
> through DSDL shaped eyes?

Apart from Schematron, Part 6 of DSDL is "Path-based integrity constraints".  However, 
I am not sure if Part 6 should cover the proposed mechanism.  Rather, Part 6 should be 
simpler, weaker, and dedicated to extensions of identity constraints as studied in the 
DB community.

> I think it is interesting to consider how you could lay out a validation as 
> a series of
> notional passes, using a mixture of notations for grammars, rules etc. and 
> yet, through
> some comp. sci. magic (perhaps Jackson Inversion), perform all stages in a 
> single
> actual pass through the parse tree.

Although I do think that a collection of passes is very useful, I think that this particular 
case belongs to the realm of regular tree languages and thus RELAX NG.


MURATA Makoto (FAMILY Given) <EB2M-MRT@asahi-net.or.jp>

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]