This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 5740 - Inconsistent requirements for using PSVI after 5541 adopted
Summary: Inconsistent requirements for using PSVI after 5541 adopted
Status: RESOLVED FIXED
Alias: None
Product: SML
Classification: Unclassified
Component: Core (show other bugs)
Version: LC
Hardware: PC Windows XP
: P2 normal
Target Milestone: ---
Assignee: Kumar Pandit
QA Contact: SML Working Group discussion list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-12 21:03 UTC by John Arwe
Modified: 2008-07-03 01:40 UTC (History)
1 user (show)

See Also:


Attachments

Description John Arwe 2008-06-12 21:03:44 UTC
We agreed to open this bug as part of the 6/12 working group call.

As a result of http://www.w3.org/Bugs/Public/show_bug.cgi?id=5541 , there is an inconsistency in the spec between the (new with 5541) conformance requirement http://www.w3.org/Bugs/Public/show_bug.cgi?id=5541#c14 proposal [2] and existing text in section 4.1.1, which currently reads:

http://dev.w3.org/cvsweb/~checkout~/2007/xml/sml/build/sml.html?content-type=text/html;%20charset=utf-8#URI_Reference_Scheme

> It is implementation-defined whether to use the XML Infoset [XML Information 
> Set] or the Post Schema Validation Infoset (PSVI) [XML Schema Structures] for 
> SML reference identification. Using the XML Infoset enables SML reference 
> identification without relying on XML Schema validation. Using the PSVI makes
> it possible to identify SML references using schema defaulted sml:ref
> attributes.

There was a suggestion on the call to remove the entire paragraph to fix this.  While the last 2 sentence above were substantially preserved ( http://www.w3.org/Bugs/Public/show_bug.cgi?id=5541#c14 proposal [1]), the proposed removal of the first sentence concerned several members.

The concern was based on their reading of that the existing text applies to two classes of SML implementations, those that validate models (SML validators) and those that do not (model processors, assuming the proposal in http://www.w3.org/Bugs/Public/show_bug.cgi?id=5715#c2 is accepted, see http://www.w3.org/Bugs/Public/attachment.cgi?id=554 ); their reading of the solution adopted by 5541, if the excerpted paragraph above was also removed, is that the requirement of the first sentence would no longer apply to model processors (it would clearly still apply to SML validators by virtue of 5541 C14 proposal [2]).

Some members preferred to continue to impose a requirement on model processors that are not also SML validators to document their choice of infoset when recognizing SML references.  They acknowledged that doing so is insufficient to guarantee interoperability of systems built using model processors in general, however they perceived value in giving the constructors of those systems another tool (in this case, the documentation of infoset that "impl-defined" imposes) useful in successfully building working systems out of non-SML-validating model processors.  Others were unclear that this had sufficient value to include in the spec, given all the other ways in which the spec allows non-SML-validating model processors can be non-interoperable.
Comment 1 John Arwe 2008-06-18 17:04:00 UTC
The editor's draft of SML 4.1.1, after http://www.w3.org/Bugs/Public/show_bug.cgi?id=5541 , reads as follows:

4.1.1 SML Reference

An element information item in an SML model instance document is as an SML reference if and only if it has an attribute information item for which all of the following is true:
   1.      Its [local name] is ref
   2.      Its [namespace name] is http://www.w3.org/@@@@/@@/sml
   3.      Its [normalized value], after whitespace normalization using collapse following schema rules, is either "true" or "1".

Note:
   1.      This mechanism enables schema-less identification of SML references, i.e., SML references can be identified without relying on the Post Schema Validation Infoset (PSVI). [XML Schema Structures]
   2.      SML model validators must use PSVI to identify SML references. See 8. Conformance Criteria.

An SML reference is considered to be an instance of a specific SML reference scheme, if it can be identified as such according to that SML reference scheme's rules. See 4.3 SML Reference Schemes. An SML reference MAY be an instance of multiple SML reference schemes.

Although its normative definition allows several syntaxes to be used to identify an SML reference, for the sake of brevity and consistency, the rest of this specification uses sml:ref="true" to denote an SML reference in examples and text.

------------------ end of excerpt ----------------
Areas for improvement
- Note 2 is redundant with section 8 (which states the same condition normatively)
- Note 2 has nothing to do with the rest of the definition of an SML reference.
- The original bug, namely the loss of the impl-defined reqt on (non-validator) model processors.

============================================
Alternative Proposal 1: all of the following (1a-1b)
1a Just make notes 1 and 2 consistent (neither has to do w/ the def of sml ref, and talk about both classes of processor), and forget about the "interruption" in the def of an sml ref.

from: SML references can be identified
to  : model processors can identify SML references

Note:
   1.      This mechanism enables schema-less identification of SML references, i.e., model processors can identify SML references without relying on the Post Schema Validation Infoset (PSVI). [XML Schema Structures]
   2.      SML model validators must use PSVI to identify SML references. See 8. Conformance Criteria.

1b Update the conformance section to levy the impl-defined reqt.
Current text starts:
8. Conformance Criteria
A program is a conforming SML model validator if and only if it satisfies the following conditions:

Update to read (#1 text taken from section 2's definition):
8. Conformance Criteria
A program is a conforming SML model processor if and only if it satisfies the following conditions:
1. The processor MUST process a conforming SML model using, in whole or in part, semantics defined by this specification.
2. If the processor identifies SML references as part of its processing, it is implementation-defined whether to use the XML Infoset [XML Information 
Set] or the Post Schema Validation Infoset (PSVI) [XML Schema Structures] for 
SML reference identification.

A program is a conforming SML model validator if and only if it satisfies the following conditions:


============================================
Alternative Proposal 2: all of the following (2a)
2a: Append to the current definition of 'model processor' a new sentence: 
It is implementation-defined whether to use the XML Infoset [XML Information 
Set] or the Post Schema Validation Infoset (PSVI) [XML Schema Structures] for 
SML reference identification.

Since the definition is normative, this could be deemed sufficient.

============================================
Alternative Proposal 3: all of the following (3a)
3a: proposal 2a (levy the impl-defined reqt in the definition)
3b: remove 4.1.1 note 2 (remove the redundant reqt on validators, and remove the inconsistency of the note mentioning only one class of processor)
Comment 2 John Arwe 2008-06-24 14:50:22 UTC
F2F consensus: add following text to 4.1.1 SML Reference, as normative, between existing Notes 1 and 2.  No need for further review.

It is implementation-defined whether model processors that are not also model validators use the XML Infoset [XML Information Set] or the Post Schema Validation Infoset (PSVI) [XML Schema Structures] for SML reference identification.

Comment 3 Kumar Pandit 2008-07-03 01:40:25 UTC
fixed per comment# 2