RuleML/reaction-ruleml

Convert to validate against monolithic schema design pattern

greenTara opened this issue · 1 comments

This will mostly be accomplished by following the templates in Issue #18 .

To validate against the schema in

http://ruleml.org/1.0/designPattern/

the additional constraints that must be followed are:

"Choice-combine" named patterns are those whose names end in
.choice, .main, .content, .value, .datatype, .sequence, .defs
These names can be used only with the choice-combine syntax, and can be used multiple times, in different modules

And.main |= ...
And.main |= ...

"Interleave-combine" named patterns are those whose names end in
.attlist, .header
These names can be used only with the interleave-combine syntax, and can be used multiple times, in different modules. The right-hand-side must be either the empty pattern, a zero-or-one option, or a zero-to-many option

And.header &= empty
And.header &= ...?
And.header &= ...*

"No-combine" named patterns have any other name.
These names can be used only with the interleave-combine syntax, and can only be used once in the entire schema, including "included" modules.

And.node.def = ...

That's it. If the modules, after conversion to RNG syntax, validate against this schema, then they may be combined arbitrarily by inclusion, and will always result in a valid schema, The resulting family of sublanguages is monotonic relative to containment of the set of included modules.

commit c8a9dab resolves this issue