So I'm trying to parse a schema that has the following in it:
property-attach = element attach {
element parameters { fmttypeparam? & encodingparam? }?,
value-uri | value-binary }
In order to get this to work with cxml-rng, I have to do the following:
property-attach = element attach {
element parameters { fmttypeparam? & encodingparam? }?,
( value-uri | value-text ) }
Is the former invalid RNC or is cxml-rng's parser barfing where it shouldn't? A complete, minimal-ish example is shown below and attempting to parse it gives:
failed to parse compact syntax at char 552, file://+/Users/sly/projects/cl-vcard/foo.rnc: Unexpected terminal CXML-RNG::||| (value CXML-RNG::|||). Expected one of: (NIL CXML-RNG::} CXML-RNG::DOCUMENTATION-LINE CXML-RNG::[ :INCLUDE CXML-RNG::IDENTIFIER :START :DIV CXML-RNG::|)| CXML-RNG::CNAME CXML-RNG::|,|) [Condition of type CXML-RNG:RNG-ERROR]
Thanks,
Cyrus
# Hacked together from the RELAX NG Schema for iCalendar in XML
default namespace = "urn:ietf:params:xml:ns:icalendar-2.0-hack"
value-text = element text { xsd:string }
value-binary = element binary { xsd:string }
value-uri = element uri { xsd:anyURI }
encodingparam = element encoding { element text { "8BIT" | "BASE64" } }
fmttypeparam = element fmttype { value-text }
property-attach = element attach {
element parameters { fmttypeparam? & encodingparam? }?,
value-uri | value-text }
start = element icalendar { property-attach+ }