[
Lists Home |
Date Index |
Thread Index
]
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@reutershealth.com>
"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
|