- From: Priscilla Walmsley <priscilla@walmsley.com>
- Date: Wed, 5 May 2004 11:28:29 -0400
- To: "'Veerappan Saravanan-ESV007'" <esv007@motorola.com>
- Cc: <xmlschema-dev@w3.org>
How about this?
<sequence>
<element ref="a"/>
<choice>
<sequence>
<element ref="a" maxOccurs="4"/>
<element ref="b"/>
</sequence>
<element ref="b" maxOccurs="5"/>
</choice>
</sequence>
Hope that helps,
Priscilla
-----------------------------------------------------
Priscilla Walmsley priscilla@walmsley.com
Author, Definitive XML Schema (Prentice Hall PTR)
-----------------------------------------------------
> -----Original Message-----
> From: xmlschema-dev-request@w3.org
> [mailto:xmlschema-dev-request@w3.org] On Behalf Of Veerappan
> Saravanan-ESV007
> Sent: Wednesday, May 05, 2004 9:44 AM
> To: 'noah_mendelsohn@us.ibm.com'; Veerappan Saravanan-ESV007
> Cc: xmlschema-dev@w3.org
> Subject: RE: Unique Particle Attribution
>
>
> Thanks for the explanation.
>
> I am trying to figure out alternates for the following due to
> UPA violation as per spec. I need to perform this validation
> in schema
> itself rather during parsing.
>
> <choice>
> <sequence>
> <element ref="a" maxOccurs="1"/>
> <element ref="b" maxOccurs="5"/>
> </sequence>
> <sequence>
> <element ref="a" maxOccurs="1"/>
> <element ref="b" maxOccurs="1"/>
> </sequence>
> <sequence>
> <element ref="a" maxOccurs="5"/>
> <element ref="b" maxOccurs="1"/>
> </sequence>
> </choice>
>
> Thanks,
> -Saravanan
>
>
> -----Original Message-----
> From: xmlschema-dev-request@w3.org
> [mailto:xmlschema-dev-request@w3.org] On Behalf Of
> noah_mendelsohn@us.ibm.com
> Sent: Tuesday, May 04, 2004 10:50 PM
> To: Veerappan Saravanan-ESV007
> Cc: xmlschema-dev@w3.org
> Subject: Re: Unique Particle Attribution
>
>
>
> Veerappan Sravanan writes:
>
> >> Is there a better tutorial with examples where can I learn
> more about
> >> UPA
> and how to get around?
>
> I must ask: "better than what"? Here's a quick intro:
>
> First, what's a particle. Consider:
>
> <sequence>
> <element ref="a"/>
> <element ref="b" maxOccurs="5"/>
> <element ref="c">
> </sequence>
>
> In the above, there are 4 particles[1]. One is the outer
> sequence, the
> others are the three element references. The maxOccurs is
> considered part
> of the particle. Particles have recursive structure:
>
> <sequence>
> <element ref="a"/>
> <element ref="b" maxOccurs="5"/>
> <choice>
> <element ref="x"/>
> <element ref="y"/>
> </choice>
> <element ref="c">
> </sequence>
>
> Anyway, UPA says that for a given content model to be legal,
> there can be
> no instance that would have an element matching more than one
> particle.
> The above are OK per UPA. The following is not:
>
> <sequence>
> <element ref="a" minOccurs="0"/>
> <element ref="a" minOccurs="0"/>
> </sequence>
>
> Why illegal? Well, if I asked you to validate the instance:
>
> <a/>
>
> you could match it against either of the element references,
> since both
> are optional and both match <a/>. So, you cannot "uniquely
> attribute" the
> element to a particle. UPA is violated.
>
> Note: it's the original <sequence> that is not legal. We
> can't really
> ask whether the instance is valid, because there is no legal schema
> against which to try (though clearly, if the schema were allowed, the
> instance would validate...for two reasons!)
>
> UPA is an interesting tradeoff. It makes validators simpler,
> because you
> don't have to go down two or more branches of the content
> model to try and
> see whether your instance matches. At least as important, it
> makes things
> easier for tools that do things like binding schemas to Java,
> relational
> databases, etc. In the first schema above you can map any
> valid instance
> to: a variable a, an array of up to 5 b's, and a c. The
> sequence that
> violates UPA is somewhat harder to map; done in the obvious way, the
> element <a/> could map to either of two variables, and crucially,
> different processors might reasonably make different decisions.
>
> I hope this helps.
>
> Noah
>
> [1]
> http://www.w3.org/TR/2004/PER-xmlschema-1-20040318/#Particle_details
>
> --------------------------------------
> Noah Mendelsohn
> IBM Corporation
> One Rogers Street
> Cambridge, MA 02142
> 1-617-693-4036
> --------------------------------------
>
>
>
>
>
>
>
>
> Veerappan Saravanan-ESV007 <esv007@motorola.com>
> Sent by: xmlschema-dev-request@w3.org
> 05/03/04 05:00 PM
>
>
> To: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>
> cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
> Subject: Unique Particle Attribution
>
>
> Hello,
> Is there a better tutorial with examples where can I learn
> more about UPA
> and how to get around?
> I have problem in validating my schema due to UPA constraint.
> Thanks
> -Saravanan
>
>
Received on Wednesday, 5 May 2004 11:30:30 UTC