[Home] [By Thread] [By Date] [Recent Entries]

  • From: Philippe Poulard <Philippe.Poulard@s...>
  • To: "Joselito D. Moreno" <joenmoreno@g...>
  • 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]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member