If the content model of <xenoData> is any.XML+, then the valid= of any <egXML> that contains a (valid) <xenoData> had better be "feasible" (or "false", I suppose), lest that <egXML> be flagged as having "error: unfinished element" by ./run-onvdl p5valid.nvdl v.xml If the content model of <xenoData> is any.XML*, then the valid= of the <egXML>s can be "true". This doesn't make sense to me, as the NVDL explicitly allows elements from the namespaces involved. But I'm guessing that before it checks the <egXML> itself for validity against the RELAX NG, it has removed elements from other namespaces (thus leaving an empty <egXML>). What is the difference between using "feasible" and "true" as far as processing is concerned? I.e., how does the feasibly-valid-checker (called p5.nvdl) know to apply the http://www.thaiopensource.com/validate/feasible to those <egXML>s flagged as "feasible" or "true", and how does the truly-valid-checker (called p5valid.nvdl) know not to? Must, of course, be that the latter is run against "v.xml", not p5.xml, but when and how is v.xml generated? For now I've checked in a version (to the P5-for-xenoData/ branch) with any.XML+ that uses "feasible" on its <egXML>s.