RE: [Bug 5906] Problem in definition of <restriction> in <complexType>::<simpleContent>

The problem can be seen in the content model for simpleContent/restriction
in 3.4.2.2, which reads

Content: (annotation?, (simpleType?, (minExclusive | minInclusive |
maxExclusive | maxInclusive | totalDigits | fractionDigits | maxScale |
minScale | length | minLength | maxLength | enumeration | whiteSpace |
pattern | assert | {any with namespace: ##other})*)?, ((attribute |
attributeGroup)*, anyAttribute?), assert*)

Note that "assert" appears twice. In the first case it appears in its role
as a facet, to restrict the simple content type; this assertion works solely
on the atomic value, for example you could restrict a number to be a
multiple of 5 using <xs:assert test="$value mod 5 = 0"/>. In the second case
it appears as an assertion on the element as a whole, including its
attributes, for example you could assert that if @currency="JPY", then the
value must be an integer: <xs:assert test="if (@currency='JPY') then $value
mod 1 = 0"/>.

But syntactically, there is no way of telling which assertion is which. So
the simple solution (not a very elegant one, I have to say) is to rename one
of them.

I think this is actually a consequence of some poor syntax design in 1.0; I
have always found the syntax of complex-types-with-simple-content very
unnatural. But we have to live with it.

Thanks for your interest in the development of the spec!

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: www-xml-schema-comments-request@w3.org 
> [mailto:www-xml-schema-comments-request@w3.org] On Behalf Of 
> Mukul Gandhi
> Sent: 15 October 2008 14:58
> To: www-xml-schema-comments@w3.org
> Subject: Re: [Bug 5906] Problem in definition of 
> <restriction> in <complexType>::<simpleContent>
> 
> 
> Hello WG members,
>   I need to know the details of the fix in this reply.
> 
> I looked at the member only link (cited below), and all other 
> material about this issue, but unfortunately I have not got 
> enough clarity about this fix.
> 
> Could you please let me know in more simpler terms,
> 
> What was the original problem, and how does this fix address 
> that issue?
> What are the XSD 1.1 grammar details after this fix?
> I would also appreciate any sample XSD 1.1 Schema fragments 
> about assertions, affected by this issue.
> 
> On Fri, Oct 10, 2008 at 10:35 PM,  <bugzilla@wiggum.w3.org> wrote:
> >
> > http://www.w3.org/Bugs/Public/show_bug.cgi?id=5906
> >
> >
> > Sandy Gao <sandygao@ca.ibm.com> changed:
> >
> >           What    |Removed                     |Added
> > 
> --------------------------------------------------------------
> --------------
> >             Status|ASSIGNED                    |RESOLVED
> >           Keywords|needsAgreement,             |resolved
> >                   |needsDrafting               |
> >         Resolution|                            |FIXED
> >
> >
> >
> >
> > --- Comment #2 from Sandy Gao <sandygao@ca.ibm.com>  2008-10-10 
> > 17:05:38 --- On 2008-10-10, the working group adopted a proposal to 
> > address this issue by changing the facet element name from 
> "assert" to 
> > "assertion". (This is mostly a datatypes change.)
> >
> > The proposal adopted can be found here (member-only):
> > http://www.w3.org/XML/Group/2004/06/xmlschema-2/datatypes.b5906.html
> >
> > There were a couple amendments to the above proposal:
> > - An additional <assert> is replaced with <assertion>
> > - Added "assert" to the Schema and DTD for schemas where it was 
> > missing
> >
> >
> > --
> > 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.
> >
> >
> 
> 
> --
> Regards,
> Mukul Gandhi
> 

Received on Wednesday, 15 October 2008 14:22:18 UTC