
Hi, Today, I was trying to create and improve an example topology file based on the RNC schema. Unfortunately, the current RNC schemata do not validate when used with a stricter parser. We tried last week with Jing-Trang, and that gave no errors. Today, I tried with http://validator.nu/ and got a few more errors. Could someone answer my noob questions on RNC? (Either on-list or off-list). 1) What is the difference between Lifetime = element lifetime { StartTime, (EndTime | Duration)? } and Lifetime = element lifetime { StartTime & (EndTime | Duration)? } and which one should I use? The goal is a lifetime element with a start element (defined in the StartTime rule) and optionally an end OR duration element (respectively defined in the EndTime and Duration rules). 2) I read on http://relaxng.org/compact-tutorial-20030326.html that the order is relevant in RNC. Thus <location><latitude>51.5155</latitude><longitude>-0.0922</longitude></location> is different from <location><longitude>-0.0922</longitude><latitude>51.5155</latitude></location>. Is there a way to specify in the RNC schema that this order is irrelevant in the XML? 3) The NML Group is -by it's current definition- recursive: A group is a NML NetworkObject, and a Group can contain NML NetworkObjects, thus including other groups. I have a problem with such recursive definitions in RNC. At least the validator complains about patterns defined later on in the document. Can't I do that, or am I just doing something wrong (I'm happy to provide offlist the URLs of RNC schema and example topology file I'm currently working on, so you can see the errors for yourself) 4) In the current RNC schema, extensibility was ensured using the "anyElement" rule. E.g. BasePortContent = NetworkObject & element capacity { xsd:float }? & anyElement* Unfortunately, the validator complained about this. When checking a document, it is unclear if a "location" element should be parsed according the second rule (element capacity { xsd:float }?) or third rule (anyElement*). When reading about this, it was suggested to remove the anyElement* from the BasePortContent, since it is possible to still add new allowed element in the following method: BasePortContent = NetworkObject & element capacity { xsd:float }? # later extension: BasePortContent &= element my_extension { xsd:string }? I have some more questions, but these were the most important ones. If some RNC expert could help me out or point me in the right way, GREAT! Freek