XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[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"

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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS