Here's a summary of what I think the changes to the JSDL schema should
be, based on my understanding of what Igor proposed:
Firstly, a little house-keeping:
'id' attributes should probably change name to 'profileGroup'; in the
XML community, 'id' means something very specific (unique within a
document) and our 'id' attribs are definitely not that.
Now, to the substance. Firstly, an explanation. None of this is
necessary for the primary goal of JSDL (providing a description of
simple jobs); it only really becomes necessary when you embed JSDL
within a wider context of, say, a large workflow. But this is a case
that we will certainly want to support going forward.
The gist of Igor's proposal is that we make JSDL somewhat more
document-oriented, in a way similar to an XML Schema or a WSDL doc. To
do this:
Want to be able to declare things that can be referenced from
elsewhere, together with having infrastructure that can do this
referencing.
-> Need a name attribute on many elements (I suspect this is not
needed on Profile, but instead on Resource, etc.) of type NCname
-> Need a ref attribute on all elements with a name attribute
-> Allow named elements as direct children of topmost element (I
forget the name; Job<SomethingOrOther>). These declarations have
no meaning in themselves; they just exist to be referred to.
-> New element to import declarations from some other document into
a namespace, rather like <wsdl:import> (toplevel only).
-> Non-toplevel elements may have ref attributes and no other
content; name (a qualified name, not an NCname) must point to
some element in the current document (or imported) with a
suitable name element.
-> Topmost element to have a targetNamespace attribute
(I think that's it?)
I'll write tomorrow on the the Application subtyping scheme. That's
distinct from this proposal.
Donal.