A question just arose from a project about the correct ordering of XCRI-CAP data items; it's required by the validator, but is not actually part of the spec. So I had a few thoughts about that.
Although ordering of data items is not part of the XCRI-CAP 1.2 specification, it *is* part of the XCRI-CAP 1.2 XML schema. I can therefore confirm that the order of the data elements in XCRI-CAP feeds is important!
The specification, as published on the wiki at xcri.org/wiki, is a formal description of XCRI-CAP data structures and data items. It can be implemented and coded in many different ways, for example through a W3C schema (as we have used in Craig's validator and published at https://xcri.co.uk/bindings/xcri_cap_1_2.xsd), through an RDF schema, through schematron or through JSON. Each of these implementation formats is generally referred to as a 'binding', and each can meet the requirements of the specification. However, as they use different implementation technologies, they are only directly inter-changeable if a developer produces something to convert one implementation format into another - in some cases there may be off-the-shelf ways of doing this, possibly.
The XCRI-CAP community has mostly used a W3C XML schema approach, and we've re-used some linked schemas (Dublin Core for example) to save re-designing common data elements, like 'title' or 'identifier'. We have also implemented the XCRI-CAP schema, so that it is compliant with the European Norm, Metadata for Learning Opportunities (MLO).
It's interesting to note that The Standard is the spec, not the schema - the schema is an implementation of The Standard. And some standards don't have bindings yet - for example, there isn't an 'official' MLO binding, although Scott and I have implemented one in order to use it with XCRI-CAP. This gives us namespace problems, because without a binding, we can't use a 'real' namespace. So, for example, re-using the JACS coding system in a transparent way is problematic - it has no official interoperable binding, so no namespace. Also some standards don't have 'official' bindings, even if they have namespaces - Dublin Core, for example, though I admit that we've tended to use the published DC schemas as if they are standards.
There are other ways of doing this - in fact, I have a different XCRI-CAP 1.2 implementation that just puts all the XCRI-CAP items in one schema, thereby avoiding any namespace difficulties. However, this is not the 'official' schema. If anyone wants that, just let me know.