[Bug 5636] why prohibit rules on local decls/defs described by other specs?

http://www.w3.org/Bugs/Public/show_bug.cgi?id=5636

           Summary: why prohibit rules on local decls/defs described by
                    other specs?
           Product: SML
           Version: LC
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Core
        AssignedTo: cmsmcq@w3.org
        ReportedBy: johnarwe@us.ibm.com
         QAContact: public-sml@w3.org


We have previously discussed why SML does not define rule bindings for schema
components other than GEDs and GTDs, e.g. for local type definitions.

There is language in (LC draft) 6.3 Rules Associated with Schema Components
that seems to make a stronger statement than the intent above, however.  It
seems to state that an SML model becomes invalid if rules are attached to
places other than GEDs/GTDs.  This would prevent another spec, or a later
version of SML with additional use cases, from both defining rules on other
schema components and remaining an evolutionary, incremental extension of SML
1.1.  Allowing incremental evolution would seem to be a better position to
protect adopters' investments.  Specifically:

6.3.1 Mapping from schema, para 2
"sch:schema elements MAY be embedded in members of the {application
information} of the {annotation} of a global element declaration or a global
complex type definition. They MUST NOT be embedded in any other kind of schema
component."
The final sentence could as easily say that SML 1.1 assigns no meaning to that
case, but the LC draft specifically prohibits it.

6.3.2 Schema Validity Rules bullet 1 (similar structure, "close but not same"
issue)
"The value of {rules} MAY be empty for global element declarations, global
complex type definitions or anonymous complex type definition of global element
declarations. It MUST be empty for any other schema component."
Assuming we decided not to prohibit future extensions of the type this bug
posits, final sentence would likely change.  E.g. the Mapping from Schema rules
might be defined in such a way that the final sentence would be true, so it
could change from a normative stmt to a non-normative stmt of consequence or be
removed entirely.

6.3.2 Schema Validity Rules bullet 3
"If a complex type D is derived by restriction from {base type definition} B
then, a global element declaration with non-empty {rules} contained in B cannot
be restricted to a local element declaration in D."
Ditto.  E.g. this behavior could in effect become: impl-defined, since SML does
not define {rules} for local types.  SML validators MAY report this as an
error.

Received on Thursday, 10 April 2008 16:06:44 UTC