[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] modelling the business rule "at least one of the elements"
- From: Philippe Poulard <Philippe.Poulard@sophia.inria.fr>
- To: "Joselito D. Moreno" <joenmoreno@gmail.com>
- Date: Fri, 24 Nov 2006 11:50:07 +0100
hi,
I don't know if it easy to express with W3C XML Schema, but it is
obvious with the Active Schema Language :
<asl:element name="parent">
<asl:sequence>
<asl:element ref-elem="child1" min-occurs="0" max-occurs="1"/>
<asl:element ref-elem="anotherchild" min-occurs="0"
max-occurs="1"/>
<asl:element ref-elem="yetanotherchild" min-occurs="0"
max-occurs="1"/>
</asl:sequence>
</asl:element>
if this sequence could be optional, you'd just have to set a different
lower limit on it :
<asl:sequence min-occurs="0">
the spec of ASL :
http://disc.inria.fr/perso/philippe.poulard/xml/active-tags/active-schema/active-schema.html
the implementation :
http://reflex.gforge.inria.fr/
you will find in ASL other things that you can't achieve with W3C XML
Schema neither RelaX NG :
-co-occurrence constraints :
http://reflex.gforge.inria.fr/tutorial.html#N80192D
-semantic data types :
http://reflex.gforge.inria.fr/tutorial.html#N8019B7
Joselito D. Moreno wrote:
> Hi,
>
> I'm struggling with designing an XML Schema that has a conditional
> part to it. Here's my issue:
>
> I would like to represent data, let's call it "parent" which can
> contain "at least" one of 3 elements ("child1", "anotherchild", and
> "yetanotherchild")
>
> For example, this would be a valid "parent" element:
> <parent>
> <child1>value of child 1</child1>
> <anotherchild>value of anotherchild</anotherchild>
> <yetanotherchild>value of yetanotherchild</yetanotherchild>
> </parent>
>
> This would be a valid "parent" element:
> <parent>
> <anotherchild>value of anotherchild</anotherchild>
> </parent>
>
> This would be a valid "parent" element:
> <parent>
> <child1>value of child 1</child1>
> <yetanotherchild>value of yetanotherchild</yetanotherchild>
> </parent>
>
> This would be a INVALID "parent" element because there should be at
> least one of the child elements:
> <parent>
> </parent>
>
> This would be a INVALID "parent" element because the parent element
> can only contain at most 1 occurence of each kind of child element.
> <parent>
> <child1>value of child 1</child1>
> <yetanotherchild>value of yetanotherchild</yetanotherchild>
> <yetanotherchild>value of yetanotherchild</yetanotherchild>
> </parent>
>
> Thanks in advance,
>
> Joen Moreno
>
--
Cordialement,
///
(. .)
--------ooO--(_)--Ooo--------
| Philippe Poulard |
-----------------------------
http://reflex.gforge.inria.fr/
Have the RefleX !
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]