<!--

  server_plugin (Wanda Plugin Modeling Language)

  Version: 0.3
  Created: 13.03.2003
  Author : Christian Veenhuis
  Edited by Isabelle Guyon April 7, 2003.

-->



<!-- ================= -->
<!--   server_plugin   -->
<!-- ================= -->

<!ELEMENT  server_plugin 
    (description | vars | call | protocol | errors )*  >

<!ATTLIST  server_plugin 
    name       CDATA    #REQUIRED 
    author     CDATA    "" 
    version    CDATA    "0" 
    created    CDATA    ""
    numInputs  CDATA    "1" 
    numOutputs CDATA    "1" 
>


<!-- ======================================================= -->
<!-- META DATA                                               -->
<!-- ======================================================= -->


<!-- ================= -->
<!--    description    -->
<!-- ================= -->

<!ELEMENT  description (#PCDATA) >


<!-- ======================================================= -->
<!-- VARIABLES                                               -->
<!-- ======================================================= -->


<!-- ================= -->
<!--        vars       -->
<!-- ================= -->

<!ELEMENT  vars  (var)+ >


<!-- ================= -->
<!--        var        -->
<!-- ================= -->

<!ELEMENT  var  EMPTY >

<!ATTLIST  var name  CDATA   #REQUIRED >


<!-- ======================================================= -->
<!-- CALL                                                    -->
<!-- ======================================================= -->


<!-- ================= -->
<!--       call        -->
<!-- ================= -->

<!ELEMENT  call (location|invocation)* >


<!-- ================= -->
<!--      location     -->
<!-- ================= -->

<!ELEMENT  location (#PCDATA) >


<!-- ================= -->
<!--     invocation    -->
<!-- ================= -->

<!ELEMENT  invocation (parameter|use_var|use_input|use_output)* >


<!ELEMENT  parameter (#PCDATA) >

<!ELEMENT  use_var  EMPTY >
<!ATTLIST  use_var name  CDATA   #REQUIRED >

<!ELEMENT  use_input EMPTY >
<!ATTLIST  use_input number  CDATA   #REQUIRED >

<!ELEMENT  use_output EMPTY >
<!ATTLIST  use_output number  CDATA   #REQUIRED >


<!-- ======================================================= -->
<!-- PROTOCOL                                                -->
<!-- ======================================================= -->


<!-- ================= -->
<!--       protocol    -->
<!-- ================= -->

<!ELEMENT  protocol (to_server|to_client|call_plugin)* >

<!ELEMENT  to_server (transfer_var|transfer_input)* >

<!ELEMENT  transfer_var  EMPTY >
<!ATTLIST  transfer_var name  CDATA   #REQUIRED >

<!ELEMENT  transfer_input EMPTY >
<!ATTLIST  transfer_input 
    number  CDATA   #REQUIRED 
    type    CDATA   "binary" 
>

<!ELEMENT  to_client (transfer_var|transfer_output)* >

<!-- <transfer_var> already defined -->

<!ELEMENT  transfer_output EMPTY >
<!ATTLIST  transfer_output 
    number  CDATA   #REQUIRED 
    type    CDATA   "binary" 
>

<!ELEMENT  call_plugin EMPTY >


<!-- ======================================================= -->
<!-- ERRORS                                                  -->
<!-- ======================================================= -->


<!-- ================= -->
<!--       errors      -->
<!-- ================= -->

<!ELEMENT  errors  (error)* >


<!-- ================= -->
<!--        error      -->
<!-- ================= -->

<!ELEMENT  error  EMPTY >

<!ATTLIST  error 
    code  CDATA   #REQUIRED 
    msg   CDATA   #REQUIRED 
> 
<!-- not as content of <error> to force only one line -->