The types in this schema file are the basic CEA types that are used both in the registration of CEA resources and in the WSDL for the CEA interface defintion. The base application description The CEA type of the application - this allows the system to determine which CEC it should be talking to. The complete list of parameters that might occur in any of the apllication interfaces The list of interfaces that an application might have description of an interface parameters that are always passed to the application - these are not presented to the user, but the server side of the CEA will pick them up and send to the application. *EDitor note* perhaps this should be only an implementation detail. The list of input parameters for an interface The list of output parameters for an interface A description of the interface suitable for presentation in a UI the identifier for the interface a name for the interface to displace in UI A list of interface definitions A particular application interface reference to an application parameter. Used in the interface definitions. attributes for specifiying how often a parameter or parameter group should occur a value of 0 implies unbounded The type of the underlying application - commandline, http-get etc application is commandline, wrapped by a CEC application is a http POST/GET application is implemented "internally" in the CEA application is an external web service - will be dealt with by a proxy. The allowed structures for input parameters Allowed constructs for output parameters restricted to prefs at the moment - is there a case for pgroups... a reference to a parameter which has been defined in the Parameters section of the application description. This reference defines how many times the parameter can occur in the particular interface. The content of the element can define an interface dependent default for the parameter? this type is used to make a reference to a parameter - it uses a standard string type rather than an idref because the integrity of the references is checked using xs:unique constraints within VOCEA.xsd. this is the grouping of parameters that are required for a particular value of a head parameter the value that the control parameter has for this grouping name for the particular ConditionalPgroup option - can be used in user interface to label the parameter group. A grouping of parameters, where the actual parameters that must be given is specified by the value of a controlling parameter. the parameters that make up a standard reference to a parameter. reference to the parameter definition whose value determine which of the cgroups will be chosen a flag to allow a suggestion to the user interface that this parameter should normally be hidden from user view ed: note - what is the difference between saying parameter is hidden and specifying a constant in interface A list of parameter definitions Any constant values that should be assumed to be set for a particular interface by the CEA application - it should be an error if the CEA client tries to send a value for this parameter - the CEA server should assume the value. there needs to be at least one constant specified if this construct is used. A grouping of several parameters - this can be done for several reasons 1. provides a group that must be repeated 2. can be used as a visual hint to any applications that use the group. These are the elements that occur anywhere that there is a parameter reference possible in an interface. - should this be a minimum of 2? this is a name for the pgroup that can be used by UI software The list of possible parameter types that are passed in CEA messages. Note that the formal schema type of the parameter value is always a string when passed to the web service - The types below are to indicate how that string should be interpreted. There is a mixture of classic atomic types as well as some aggregate types - this wide scope and slightly "fuzzy" definition of a parameter type is a deliberate design decision in CEA as it reflects the typical "objects" that are passed between astronomical applications As Data Models become established then references to these should also be made as top level aggregate types Note that some of the "bulkier" types - e.g. VOTable would normally be passed "by reference" Note that in a typical atomic parameter definition a UType would be specified so that a workflow builder might be able to automatically insert code to extract such a value from the bulk output of a previous step Integer Real The string formats that can be recognised should be as defined by FORTRAN? Java? C? (all?) A complex number Any string of characters A representation of a boolean - e.g. true/false on/off Any Uniform Resource Indentifier A VOTable in its entirety A value that is to be interpreted as an angular coordinate measurement, e.g. RA, Dec Modified Julian date ISO Date representation the full XML version of the Astronomical Data Query Language The string representation of Astronomical Data Query Language A value that is specified using the Space Time Coordinate string definition A general piece of binary data with no special interpretation Data encoded in the Flexible Image Transport System http://fits.gsfc.nasa.gov/iaufwg/iaufwg.html The data are encoded as generic XML. The schema for the xml is given in the UType?... should really reference the XHTML schema, but just did this for convienience a type that allows any style of documentation content. The basic definition of what a parameter is - this is common to all of the CEA implementations. possibility to specify a UType possibility to specify a mime type a possible default for this type of parameter this is repeateable for the case of array parameters. various ways of specifying the legal values that a parameter might have editor note - does this construct produce nice object models in code generators, or would it be better to have an abstract base type here.. For parameters that can only have one of a list of values captures the idea that a parameter can have a range of values the identifier for the parameter The data type of the parameter - note that this is not restricted to atomic data types. deffines the array shape of the parameter if it is an array Defines what a parameter can contain when it is passed to be executed -This can be a single value element, or a simple construction of an array - could perhaps allow a VOQuantity as well. The value of the parameter - formally has an xsd type of string, though the 'real' type is encoded in the parameter definition very simple model of a array - cannot be sparsely filled, The id is a reference to the id of the parameter as defined in the parameters section - used to be called "name" give the opportunity to specify some form of encoding for parameter values. e.g. if passing a binary parameter by value. This specifies whether the parameter value is indirect - i.e. if value of the parameter is some form of URI to the actual parameter value. If the value is indirect then the CEA server implementation is expected to fetch the parameter before passing it on to the application. This is most often called 'passing by reference' in computer languages. represents an invocation of a CEA application, with all the parameter values defined. the list of parameters supplied as input the list of parameters expected as output ivoa resource identifier of the application to call which interface of the application to call taken from the votable definition - the first index varies most rapidy, and the last index may be specified as '*' to mean unbounded. the allowable binary encodings for a parameter value. The parameter value formally has an xsd type of string, but the use of encodings would allow a pure binary object, e.g. a jpeg file to be included as a direct parameter value. simple array model - assumed to be fully filled in a row-major fashion editor note - should this be here to allow overriding of the parameter defintion. A way of specifying that a parameter value should be taken from a list of possible values. a possible value for a value that forms part of a list of values that a parameter could take. the value of a range bound used to specify that a parameter value should lie in a particular range. the maximum value in the range. the maximum value in the range. A list of parameter values some form of reference to a parameter that would appear in an interface definition. This can either be a direct reference, a reference to a repeating group of parameters or a reference to a conditional group of parameters. editor note - not too sure what the best multiplicities are here - this would typically be used in a case a reference to a parameter which has been defined in the Parameters section of the application description. This reference defines how many times the parameter can occur in the particular interface. The content of the element can define an interface dependent default for the parameter? a simple grouping of parameters. The parameters could be grouped because they should be repeated as a group or perhaps because they should appear together on a single pane of the user interface. this represents a point in the parameter tree where there could be a series of different sequences of parameters based on the value of the parameter referred to by this top level. a way of grouping parameters to indicate that there will be a repetition of parameters into a table like structure - the "table" is presented to the interface in column order and the attribute ncol indicates how many columns