<!DOCTYPE CCIS:Message [
<!ELEMENT CCIS:Message ( SETUP_request | SETUP_response | GETPARAM_request
| GETPARAM_response | SETPARAM_request | SETPARAM_response
| ESTIMATE_request
| ESTIMATE_response | INVOKE_request | INVOKE_response
| EXAMINE_request
| EXAMINE_response |EXTRACT_request | EXTRACT_response
| TERMINATE_request
| TERMINATE_response | TERMINATALL_request | TERMINATALL_response)>
<!ATTLIST CCIS:Message
version CDATA "0.1"
requestnr CDATA ""
>
<!-- requestnr is set
by the client (it can be an empty string) and is returned in the
return message by the server -->
<!ELEMENT SETUP_request EMPTY>
<!ATTLIST SETUP_request
userid NMTOKEN
#IMPLIED
password CDATA
#IMPLIED>
<!ELEMENT SETUP_response (Error)* >
<!ATTLIST SETUP_response
clientid NMTOKEN #REQUIRED
status (connected, refused)
"connected" >
<!-- clientid can be an empty
string in case status is not connected -->
<!ELEMENT ESTIMATE_request EstimateCost>
<!ATTLIST ESTIMATE_request
clientid NMTOKEN #REQUIRED
methodname CDATA #REQUIRED>
<!ELEMENT ESTIMATE_response (EstimateCost)>
<!ELEMENT EstimateCost (EstimateTime?, EstimateFee?, EstimateDatavolume?)>
<!ELEMENT EstimateTime PCDATA>
<!ATTLIST EstimateTime accuracy CDATA #IMPLIED>
<!ELEMENT INVOKE_request (MethodParameters)?>
<!ATTLIST INVOKE_request
clientid NMTOKEN
#REQUIRED
methodname CDATA
#REQUIRED>
<!ELEMENT INVOKE_response (Error)*>
<!ATTLIST INVOKE_response
invocationid
NMTOKEN #REQUIRED
status (started,
refused) "started" >
<!-- invocationid
can be an empty string in case status is not started -->
<!ELEMENT EXAMINE_request (MethodParameterNames)?>
<!ATTLIST EXAMINE_request
mode (all, invocation,
parameters) "all"
clientid NMTOKEN
#REQUIRED
invocationid
NMTOKEN #REQUIRED>
<!-- invocation:
only invocation status and progress information is requested
parameters: status of result parameters in MethodParameterNames is requested,
if MethodParemeterNames is not supplied, all possible status information
is returned
all: both invocation and parameter status is requested -->
<!ELEMENT EXAMINE_response (MethodParameterStates?, Error*)>
<!ATTLIST EXAMINE_response
status (okay,
refused) "okay"
invocationstatus
(done, partial, notdone, aborted, error) #REQUIRED
invocationprogress
CDATA #IMPLIED
remainingtime
CDATA #IMPLIED>
<!-- refused:
request cannot be answered (e.g. invalid invocationid),
additional information may be found in an error element
done: all results are available with final accuracy
partial: some results are available with some accuracy, details
are in element MethodParametersStaes
notdone: invocation is in progress
aborted: invocation has been aborted either by client (TERMINATE) or server
error:
remainingtime is counted in seconds and represented as integer;
if status is refused, meaning that the server cannot respond to the examine
request,
invocationstatus can have an arbistrary value -->
<!ELEMENT EXTRACT_request (MethodParameterNames)?>
<!-- if MethodParameterNames is not
supplied, all results of the method are returned-->
<!ATTLIST EXTRACT_request
mode (immediate,
whendone, whenavailable) "immediate"
clientid NMTOKEN
#REQUIRED
invocationid
NMTOKEN #REQUIRED>
<!ELEMENT EXTRACT_response (MethodParameters?, MethodParameterStates?,
Error*)>
<!ATTLIST EXTRACT_response
status (okay,
refused) "okay"
invocationstatus
(done, partial, notdone, aborted, error) #REQUIRED>
<!-- MethodParameterStates is only
provided if invocationstatus is partial -->
<!-- MethodParameters is provided
independant of the value of invocationstatus -->
<!ELEMENT MethodParameterNames (DEN*)>
<!ELEMENT DEN (DEN*)>
<!ATTLIST DEN
repname NMTOKEN
#REQUIRED>
<!ELEMENT MethodParameterStates (DET*)>
<!ELEMENT DET (DET*)>
<!ATTLIST DET
repname NMTOKEN
#REQUIRED
status (done,
notdone, partial) #REQUIRED
progress CDATA
#IMPLIED >
<!ELEMENT CCIS:Error
<!-- the error element can be present
with any returnstatus, even if a request is carried out
an error
element can be in the response denoting some problem -->
<!ELEMENT CCIS:MethodParameters (CCIS:DES | CCIS:DEC | CCIS:DEO)*>
<!ELEMENT CCIS:DEC (CCIS:DES | CCIS:DEC | CCIS:DEO)* >
<!ATTLIST CCIS:DEC
CCIS:repname NMTOKEN #REQUIRED
CCIS:type NMTOKEN "list"
CCIS:fullname CDATA #IMPLIED
CCIS:description CDATA #IMPLIED>
<!ELEMENT CCIS:DES #PCDATA >
<!ATTLIST CCIS:DES
CCIS:repname NMTOKEN #REQUIRED
CCIS:type NMTOKEN "string"
CCIS:fullname CDATA #IMPLIED
CCIS:description CDATA #IMPLIED>
<!ELEMENT CCIS:DEO (ANY)* >
<!ATTLIST CCIS:DEO
CCIS:repname nmtoken #REQUIRED
CCIS:type nmtoken "unknown"
CCIS:fullname CDATA #IMPLIED
CCIS:description CDATA #IMPLIED>
<!-- DEC: complex data element, contains other data elements
DES: simple
data element: contains one value
DEO: opaque/owner
data element: contains data with unknown mark-up -->
<!-- semantic of attributes:
repname: the name as used in the repository
type: type of the data element
fullname: optional name in full text,
e.g. for user input and output, if not present then
repname may
be used where name would be expected
description: an optional description
of the content and purpose of the data element -->
<!-- possible values for type:
for DEC: list
list: list of
data elements, the attribute repname of these data elements needs not be
unique
for DES: string, integer, real, bin
string: a string
integer: a string
containing only digits
real: a numeric
value using standard ANSI-C literal expressions
bin: a uuencoded
binary
for DEO: unknown
Any CCIS
compliant message receiver has to know how to handle at least
above
types. A sender may use other types. If the receiver does not know them,
the receiver
can try to substitute them by the default types. -->
]>
eggret