* 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:[EMAIL PROTECTED] · 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/ 
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to