
I'm a bit confused by the use of PureODD's <classRef>. When the class being referred to is a model class, it would seem the intent is that it be used form within <content>, and the members of that model class can appear at this point in the content model. And, indeed, all 25 examples of <classRef key="model.*"> occur as descendants of <content>. When the class being referred to is an attribute class, it would seem the intent is that the attributes defined by the class are available to be used, as a group, by reference to the class name on classes/memeberOf/@key. And, indeed, all 3 examples of <classRef key="att.*" occur as children of <schemaSpec>. But what does it *mean* (and what *happens*) when <classRef> is used in other circumstances in which it is allowed by the schema: 1. schemaSpec/classRef[ starts-with( @key, 'model.') ] 2. content/classRef[ starts-with( @key, 'att.') ] 3. content/descendent::classRef[ starts-with( @key, 'att.') ] 4. classRef[ starts-with( @key, 'att.' ][ @expand ] ) I think it is incumbent upon us for each of these combinations to either a) say what it means, and perhaps even have Stylesheets code that does the right thing, OR b) say it is not allowed (and have a validity check that prevents it). P.S. I have briefly tested #2, and it appears to do exactly what I expected: the attributes defined by the class referenced are allowed on that element. @include did not work, though. (All attrs were included in schema, not just the included one.)