Re: [xml] Correct behaviour of RelaxNG interleave
- From: Bjoern Hoehrmann <derhoermi gmx net>
- To: Pavol Rusnak <prusnak suse cz>
- Cc: xml gnome org
- Subject: Re: [xml] Correct behaviour of RelaxNG interleave
- Date: Wed, 24 Jan 2007 15:23:22 +0100
* Pavol Rusnak wrote:
I would like to ask, what is the correct behaviour of RelaxNG
interleave? Suppose we have the following example:
The specification http://relaxng.org/spec-20011203.html#IDA2Z0R or
http://books.xmlschemata.org/relaxng/relax-CHP-6-SECT-7.html should
answer this. It seems you have found a bug in libxml2-2.6.27.
blueA = element blueA { empty }
blueB = element blueB { empty }
redA = element redA { empty }
redB = element redB { empty }
blue = blueA? & blueB?
red = redA? & redB?
profile_current = blue & red
start = element profile {
profile_current
}
Then is the following XML valid?
<profile>
<blueA/><redA/><blueB/><redB/>
</profile>
Yes it is. Your test case somewhat simplified:
a = element a { empty }
b = element b { empty }
c = element c { empty }
d = element d { empty }
e = a & b
f = c & d
start = element root { e & f }
along with
<root><a/><c/><b/><d/></root>
MSV and Jing will correctly validate this document, but the current
version of libxml2 rejects it. If you want some other behavior, you
cannot use <interleave> directly.
--
Björn Höhrmann · mailto:bjoern hoehrmann de · http://bjoern.hoehrmann.de
Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]