<?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE CCIS:Message  SYSTEM "CCISMessage.dtd">
     <CCISMessage xmlns="CCIS">
       <CCISMethodParameters>
         <DEC  repname = "PersDat" type="complex"  name = "Personal Data">
            <DEC  type="list"  name = "Person's Name">
              <DES param="FName" type="string" name="First Name">Dorothea</DES>
              <DES param ="LName" type="string" name="Last Name">Beringer</DES>
              <DES type="string" name="Middle Initial">I</DES>
              <DES type="string" name="Other additional first name">AAAA</DES>
              <DES type="string" name="Other additional first name">BBBBBB</DES>
              <DEO name="additional info"  type="list" description="my data"> </DEO>
            </DEC>
             ........ other data like address
          </DEC> .......
          </PersDat>
          <Par2 ....>  ...... </Par2>
          <Par3 ....>  ...... </Par3>
      <CHAIMSMethodParameters>
 
 
 
 
 

<!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