- From: <bugzilla@wiggum.w3.org>
- Date: Mon, 13 Apr 2009 16:04:10 +0000
- To: www-xml-schema-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=6804 --- Comment #1 from C. M. Sperberg-McQueen <cmsmcq@blackmesatech.com> 2009-04-13 16:04:10 --- [Speaking only for myself, not on behalf of the WG] Thank you for your comment. Every reader of the draft spec is appreciated. Interesting that you should raise this issue. In designing the assertions construct, the WG spent a lot of energy debating whether it was desirable, highly desirable, essential, or desirable but not essential for the content and attributes of elements to be typed in the data model instance used to check assertions. Your comment provides empirical evidence that the proposition "all users will expect the attributes to have their typed values, not untyped values, and will not understand what is going on if they are untyped" is false; there is at least one exception. However, the WG concluded that it would be convenient if, for assertions checked on an element, the attributes and descendant elements were typed, and so we looked for, and found, a way to specify that behavior without logical contradiction. The rules for constructing the data model instance and evaluating the XPath expression, which are given in section 3.13.4, arrange things so that in the example you cite @min le @max the 'min' and 'max' attribute have already been validated as instances of xs:int and the data model instance contains their typed values. So the cast you propose xs:int(@min) le xs:int(@max) is unnecessary (although probably harmless). If you want chapter and verse, it is clauses 1.2 and 1.3 of Validation Rule: Assertion Satisfied which cause the attributes to be typed in the XDM instance. If it wasn't clear to you as a reader that the attributes in your example would be typed as int, then as editor I apologize: the text isn't doing its job perfectly if readers are surprised in this way. I would suggest adding some explicit statement on the topic to the description of assertions earlier in the section, except that I do not know how to say it more clearly than it is already said in the paragraph before last of section 3.13.1, which begins: To check an assertion, an instance of the XPath 2.0 data model ([XDM]) is constructed, in which the element information item being ·assessed· is the root element, and elements and attributes are assigned types and values according to XPath 2.0 data model construction rules, with some exceptions. Perhaps the prose following the example you refer to could be changed from The value of the min attribute must be less than or equal to that of the max attribute. to The value of the min attribute must be less than or equal to that of the max attribute. Note that the attributes are validated before the assertion on the parent element is checked, so the typed values of the attributes are available for comparison; it is not necessary to cast the values to int or some other numeric type before comparing them. Would that help? -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Monday, 13 April 2009 16:04:18 UTC