W3C home > Mailing lists > Public > xmlschema-dev@w3.org > October 2007

Re: optional, but at least one required

From: Virginia Wiswell <vwiswell@verizon.net>
Date: Wed, 10 Oct 2007 20:35:08 -0500
To: "Pete Cordell" <petexmldev@tech-know-ware.com>,"Virginia Wiswell" <vwiswell@verizon.net>
Cc: <xmlschema-dev@w3.org>
Message-ID: <web-50597603@aliencamel.com>

So the minOccurs="0" on element b prevents the Unique Particle 
Attribution violation for b?

This is perfect, Pete. Thanks so much for helping me out.

On Wed, 10 Oct 2007 19:22:51 +0100
  "Pete Cordell" <petexmldev@tech-know-ware.com> wrote:
> 
> 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 Thursday, 11 October 2007 01:35:30 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:15:00 GMT