[
Lists Home |
Date Index |
Thread Index
]
Michael Leditschke scripsit:
> The level of co-constraint checking offered by RELAX NG is an improvement
> on their absence in XML Schema but is this more than leap-frogging? I would
> also add that the situations where I needed co-constraints were often
> content based, e.g. if element X contains "5", attribute Y should be
> present.
> I may have missed it, but the support in RELAX NG seems, by the nature of
> RELAX NG, purely structural.
Not entirely: in the case you want, RNG can cope. Consider this schema:
element x {
(attribute y {text}, "5")
| (string - "5")
}
Valid documents:
<x y="7">5</x>
<x>4</x>
Invalid documents (Jing says "bad character content for element):
<x>5</x>
<x y="8">4</x>
RNG, like XML, doesn't care about the order of the attributes in the instance.
An alternative schema that permits (but does not require) y to be present
if x is not 5:
element x {
(attribute y {text}, "5") |
(attribute y {text}?, string - "5")
}
--
John Cowan <jcowan@reutershealth.com> http://www.reutershealth.com
I amar prestar aen, han mathon ne nen, http://www.ccil.org/~cowan
han mathon ne chae, a han noston ne 'wilith. --Galadriel, _LOTR:FOTR_
|