This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
In the URI scheme definition: "1. An SML reference element is identified as using the SML URI scheme if and only if exactly one instance of the sml:uri global element declaration is present as a child of that reference element." Suggest to replace it with "1. An SML reference element is identified as using the SML URI scheme if and only if exactly one element information item with the name sml:uri is present as a child of that reference element." This makes it possible to identify SML URI scheme instances without schema assessment. It also avoid certain strange cases. For example, if the schema has: <element name="myRef"> <complexType> <sequence> <element ref="sml:uri"/> <any processContents="skip"/> </sequence> </complexType> </element> And in the instance: <myRef sml:ref="true"> <sml:uri> abc </sml:uri> <sml:uri> xyz </sml:uri> </myRef> Then according to the current definition, this is viewed as an instance of the URI scheme, because only the first <sml:uri> matches the global element declaration and the second matches the wildcard.
(Slightly pedantic editorial note:) For readers who think in terms of either the XML grammar or in terms of the XPath and XDM data models, the phrase 'the name sml:uri' can be misinterpreted as constraining just the prefix and local name, not the namespace and local name. I support the change, but suggest that the editors find some other phrasing to make clear that what we care about is the expanded name of the element, not its prefix.
+1 to proposal as amended by MSM in comment #2
I agree with the proposal in comment# 1.
I agree with proposal in comment #1 with an additional suggestion for detecting errors. E.g., in the example would the SML validator regard 2 sml:uri elements as an error since the URI scheme specifies only 1 or would the validator regard this as an unknown scheme.
To answer the question raised in comment #4. The latter: it's not using the URI scheme, because the reference is not recognized as an instance of the URI scheme. To avoid potential confusion, we could clarify that scheme implementations can only report errors for their recognized instances. For example, maybe in 4.3, after the 3 requirements, add something like: "A schema definition MAY impose additional requirements on references recognized as instances of the scheme. Such requirements, if any, MUST NOT be applied by scheme implementations to references that are not instances of the corresponding scheme."
fix per original description as modified by comments.
URI definition, section 4.3.1, first bullet reads now : 1. An SML reference element is identified as using the SML URI scheme if and only if exactly one element information item whose [local name] is uri and whose [namespace name] is http://www.w3.org/@@@@/@@/sml is present as a child of that reference element. To address comment #4 and #5 this paragraph was added at the end of section 4.3 Reference Schemes http://dev.w3.org/cvsweb/~checkout~/2007/xml/sml/build/sml.html?content-type=text/html;%20charset=utf-8#Reference_Schemes A schema definition MAY impose additional requirements on references recognized as instances of that scheme. Such requirements, if any, MUST NOT be applied by scheme implementations to references that are not instances of the corresponding scheme.