- From: Pete Cordell <petexmldev@tech-know-ware.com>
- Date: Wed, 10 Oct 2007 19:22:51 +0100
- To: "Virginia Wiswell" <vwiswell@verizon.net>
- Cc: <xmlschema-dev@w3.org>
Hi Virginia, Your schema should indeed yield a Unique Particle Attribution violation. The reason is that when a parser reads element a, it is not immediately obvious whether it corresponds to the first definition of a or the second. You can get around this by changing your schema to: <xsd:element name="parent"> <xsd:complexType> <xsd:choice> <xsd:sequence> <xsd:element ref="a"/> <xsd:element ref="b" minOccurs="0"/> </xsd:sequence> <xsd:element ref="b"/> </xsd:choice> </xsd:complexType> </xsd:element> HTH, Pete. ============================================= Pete Cordell Codalogic for XML Schema to C++ data binding visit http://www.codalogic.com/lmx/ ============================================= ----- Original Message ----- From: "Virginia Wiswell" <vwiswell@verizon.net> To: "Michael Kay" <mike@saxonica.com>; "'George Cristian Bina'" <george@oxygenxml.com>; <vwiswell@verizon.net> Cc: <xmlschema-dev@w3.org> Sent: Wednesday, October 10, 2007 7:06 PM Subject: Re: optional, but at least one required > > Michael, you are exactly right. I think I figured it out, though: > > <xsd:element name="parent"> > <xsd:complexType> > <xsd:choice> > <xsd:sequence> > <xsd:element ref="a"/> > <xsd:element ref="b"/> > </xsd:sequence> > <xsd:element ref="a"/> > <xsd:element ref="b"/> > </xsd:choice> > </xsd:complexType> > </xsd:element> > > I kept getting a Unique Particle Attribution rule error for 'a' in Stylus > Studio. I found a post somewhere that said that this was a bug, and when I > used Sax, it validated just fine. > > If you have a better way of doing it, I'd love to see it. Thanks so much > for your help, guys. > > > On Wed, 10 Oct 2007 14:17:28 +0100 > "Michael Kay" <mike@saxonica.com> wrote: >> George, your reading of the requirement is very literal. >> >> "I have a and b, at least one of them has to appear once AND ONLY ONCE." >> My guess at the likely meaning is to accept a|b|ab. But I might be wrong. >> >> Michael Kay http://www.saxonica.com/ >> >>> -----Original Message----- >>> From: xmlschema-dev-request@w3.org [mailto:xmlschema-dev-request@w3.org] >>> On Behalf Of George Cristian Bina >>> Sent: 10 October 2007 08:42 >>> To: vwiswell@verizon.net >>> Cc: xmlschema-dev@w3.org >>> Subject: Re: optional, but at least one required >>> >>> >>> Hi Virginia, >>> >>> I understand that what you want is >>> ab* | a*b >>> and you need to write that in a non ambiguous way to be able to write it >>> in XML Schema. >>> >>> So what we need to accept is >>> >>> a ab abb abbb ... >>> b ab aab aaab ... >>> >>> >>> You can write that as >>> >>> ((a, (b* | (a+, b))) | b) >>> >>> Best Regards, >>> George >>> --------------------------------------------------------------------- >>> George Cristian Bina - http://aboutxml.blogspot.com/ <oXygen/> XML >>> Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com >>> >>> >>> Virginia Wiswell wrote: >>> > I have a similar situation that I'm having trouble with. I >>> have a and >>> > b, at least one of them has to appear once AND ONLY ONCE. a >>> must come before b. >>> > The examples in this thread allow more than one occurrence >>> of a or b. >>> > >>> > This is my first attempt at customizing a schema and I'm stuck. >>> > >>> > TIA, Virginia >>> > >>> >> You need to specify the requirements in a little more detail: >>> >> >>> >> * are multiple occurrences of a, b, and c allowed? >>> >> >>> >> * what constraints do you want to impose on the ordering >>> of the elements? >>> >> >>> >> Michael Kay >>> >> http://www.saxonica.com/ >>> > >>> > >>> > >>> > >>> >> >> > > >
Received on Wednesday, 10 October 2007 18:23:18 UTC