[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [office] OpenDocument TC coordination call minutes 2007-08-13
Lars Oppermann wrote:
> Hi Kohei,
>
> Yes this is possible in Relax NG (and XSD). You may want to have a look
> at Murata et al. (2005) for some of the background if you are interested
> in how the schema languages compare in expressiveness...
>
> Here is a little example on how this can be done specifically in Relax
> NG. Consider the following document should be rendered invalid:
Just a hint: MUCH easier to read and write RNG using the compact syntax.
Here's an example of validation of child elements conditioned on an
attribute.
start = element doc { foo | bar }
foo = attribute type { "foo" }, element x { text }+
bar = attribute type { "bar" }, element y { text }+
This would be valid:
<doc type="foo">
<x>...</x>
</doc>
.. this would not be valid:
<doc type="foo">
<y>...</y>
</doc>
Note: you can't do this with XML Schema, and there are some limitations
even within RNG (you cannot condition validation on an attribute and
have interleave patterns within that pattern).
Bruce
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]