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.