[jsdl-wg] Naming elements
Michel Drescher
Michel.Drescher at uk.fujitsu.com
Fri Apr 1 08:44:45 CST 2005
Folks,
from the last phone conference, I had the action assigned to follow the
suggestion of naming elements.
Based on some thinking and toying around, I propose the following
layout:
JSDL allows to define a) applications that are supposed to be
executed, b) sets of resources that are to be consumed, c) files to be
staged in and out and, finally, d) establishes associations between
applications, resources and data sets. An exhaustive 3-tuple of
associations is called "JobDescription". A JobDescription can also
contain a set of identifiable elements serving various kind of
purposes, such as accounting, billing, etc. These elements are
aggregated in an element called "JobIdentification". All this is
aggregated in a root element called "JobDefinition" (a name I would
like to question, but more on this at a later point).
This short description from a bird's eye view may not be totally
new, but it gives some valuable hints on what is worth being
referencable and what not: a) resources, b) applications and c) data
sets.
A JobDescription does not necessarily has to be referencable, since
it is usually a unique association between other elements that, in this
configuration, serve a unique purpose. It is adequatically specified
through the document's namespace.
Similar jobs (who have a different namespace) may want to use
exactly the same set of resources or the same application etc. Most
likely, however, the resource sets or applications etc. that have been
defined for another job will not fit exactly the new job's needs, so a
mechanism to tweak existing definitions could be handy.
So, more technically and closer to the spec/schema, the following
elements should be made referencable:
- /JobDefinition/JobDescription/Application
- /JobDefinition/JobDescription/Resource
- /JobDefinition/JobDescription/DataStaging
- Additionally, a similar mechanism exists for
/JobDefinition/JobDescription/Resource/FileSystem and
/JobDefinition/JobDescription/DataStaging/FileSystemID. I also
propose to change FileSystemID to the type xsd:QName.
- Following the convention used with the construct "xsd:group", I
propose to use an attribute "name" of type "xsd:NCName" to make
an element referencable. An attribute named "ref" of type
"xsd:QName" is proposed to be used as a reference to a
referencable element.
- Sibling to JobDescription, applications, resource sets and data
staging elements are allowed to be specified. They all get
an attribute "name" of type "xsd:NCName" to be made referencable.
- JobDescription defines local elements(!) with the same name (for
applications, resource sets and data staging) and each gets an
optional attribute named "ref" of type "xsd:QName" to refer to
already defined elements (either in the same document, or externally).
- These locally defined elements allow exactly the same appropriate
groups of elements as the elements sibling to JobDescription.
- Elements specified in JobDescription's local elements override
elements with the same name in referred elements.
- Finally, I propose to change the name of "JobDefinition" to something
else, e.g. "JSDL" or something that does *not* have "Job" in its name
since it does not define jobs alone anymore. (I just have no clue on
a reasonable replacement.)
The following proposals are of more concern to schema hackers and are
related to technical issues of design and "taste". They can easily be
skipped by others although they may touch higher level concerns:
- I further propose to follow one of the two scenarios:
a) define exactly one global element ("JobDefinition")
so that any valid JSDL document always has "JobDefinition"
as root element
b) define a limited number of global elements, i.e.
JobDefinition, JobDescription, Resource (rename to "ResourceSet"?)
Application and DataStaging so that any valid JSDL document
may have any of these globally defined elements as root element
- Any other elements and types should be locally defined. Or do we
want to allow i.e. "jsdl:NetworkBandwidth" to be root element?
- Use xsd:group to group elements together and refer to these groups
instead of repeating element definitions
Cheers,
Michel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: job.xsd
Type: application/octet-stream
Size: 3920 bytes
Desc: not available
Url : http://www.ogf.org/pipermail/jsdl-wg/attachments/20050401/4f80bf03/attachment.obj
-------------- next part --------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: example.xml
Type: application/octet-stream
Size: 917 bytes
Desc: not available
Url : http://www.ogf.org/pipermail/jsdl-wg/attachments/20050401/4f80bf03/attachment-0001.obj
-------------- next part --------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: example2.xml
Type: application/octet-stream
Size: 1050 bytes
Desc: not available
Url : http://www.ogf.org/pipermail/jsdl-wg/attachments/20050401/4f80bf03/attachment-0002.obj
-------------- next part --------------
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: readme.txt
Url: http://www.ogf.org/pipermail/jsdl-wg/attachments/20050401/4f80bf03/attachment.txt
More information about the jsdl-wg
mailing list