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


Rayner, Chris scripsit:

> <code>
>   ...
>   <party>
>       <name>blah</name>
>       <account>blah blah</account>
>   </party>
>   ...
>   <party>
>       <name>deBlah</name>
>       <account>deBlah deBlah</account>
>   </party>
>    ...
> </code>
> 
> and I need to build a schema that can enforce the following rules on the
> <party> element:
>   - <party> can be in any position under the <code> element
>   - <party> can occur either 0, 1 or 2 times
> 
> I wanted initially to use the all compositor but this will only allow 0 or 1
> instances of <party> under <code>. Does any one have any insights into how
> this can be achieved?

RELAX NG is a huge win here:  you simply specify

start = element code {(party?, party?) & ...}

party = element party {element name {text}, account {text}}

where "..." is the content model of the other elements that can appear.

-- 
John Cowan    http://www.ccil.org/~cowan   <jcowan@r...>
    "Any legal document draws most of its meaning from context.  A telegram
    that says 'SELL HUNDRED THOUSAND SHARES IBM SHORT' (only 190 bits in
    5-bit Baudot code plus appropriate headers) is as good a legal document
    as any, even sans digital signature." --me

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