<!--
Push Access Protocol (PAP) v1.0 Document Type Definition.

Copyright Wireless Application Protocol Forum Ltd., 1998-2001.
                      All rights reserved.  

PAP is an XML language. Typical usage:
   <?xml version="1.0"?>
   <!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP 1.0//EN"
             "http://www.wapforum.org/DTD/pap_1.0.dtd">
   <pap>
      ...
   </pap>

Terms and conditions of use are available from the Wireless 
Application Protocol Forum Ltd. web site at
http://www.wapforum.org/docs/copyright.htm.
-->

<!ENTITY % Datetime "CDATA">     <!-- ISO date and time -->
<!ENTITY % State  "(rejected | pending 
                  | delivered | undeliverable 
                  | expired | aborted 
                  | timeout | cancelled | unknown)">        
                                 <!-- PPG Message State -->


<!ELEMENT pap                    ( push-message
                                 | push-response
                                 | cancel-message
                                 | cancel-response
                                 | resultnotification-message
                                 | resultnotification-response
                                 | statusquery-message
                                 | statusquery-response
                                 | ccq-message
                                 | ccq-response 
                                 | badmessage-response) >
<!ATTLIST pap
          product-name           CDATA             #IMPLIED
>


<!-- ========================================= -->
<!-- Declaration of push submission message    -->
<!-- ========================================= -->

<!--this message goes from the Push Initiator to the push proxy gateway-->

<!ELEMENT push-message ( address+, quality-of-service? ) >
<!ATTLIST push-message
          push-id                    CDATA             #REQUIRED
          deliver-before-timestamp   %Datetime;        #IMPLIED
          deliver-after-timestamp    %Datetime;        #IMPLIED
          source-reference           CDATA             #IMPLIED
          ppg-notify-requested-to    CDATA             #IMPLIED 
          progress-notes-requested   ( true | false )  "false"
>

<!ELEMENT address EMPTY >
<!ATTLIST address
          address-value          CDATA             #REQUIRED 
>

<!ELEMENT quality-of-service EMPTY >
<!ATTLIST quality-of-service
          priority               ( high | medium | low )        "medium"
          delivery-method        ( confirmed | preferconfirmed 
                                 | unconfirmed | notspecified ) "notspecified"
          network                CDATA                          #IMPLIED
          network-required       ( true | false )               "false"
          bearer                 CDATA                          #IMPLIED
          bearer-required        ( true | false )               "false"
>



<!--this message goes from the push proxy gateway to the Push Initiator-->

<!ELEMENT push-response ( progress-note*, response-result ) >
<!ATTLIST push-response
          push-id                CDATA             #REQUIRED
          sender-address         CDATA             #IMPLIED
          sender-name            CDATA             #IMPLIED
          reply-time             %Datetime;        #IMPLIED
>

<!ELEMENT progress-note EMPTY >
<!ATTLIST progress-note
          stage                  CDATA             #REQUIRED
          note                   CDATA             #IMPLIED
          time                   %Datetime;        #IMPLIED
>

<!ELEMENT response-result EMPTY >
<!ATTLIST response-result
          code                   CDATA             #REQUIRED
          desc                   CDATA             #IMPLIED
>


<!-- ========================================= -->
<!-- Declaration of cancel operation           -->
<!-- ========================================= -->

<!--this message goes from the Push Initiator to the push proxy gateway-->

<!ELEMENT cancel-message ( address* ) >
<!ATTLIST cancel-message
          push-id                CDATA             #REQUIRED
>

<!--this message goes from the push proxy gateway to the Push Initiator-->

<!ELEMENT cancel-response ( cancel-result+ ) >
<!ATTLIST cancel-response
          push-id                CDATA             #REQUIRED
>

<!ELEMENT cancel-result ( address* ) >
<!ATTLIST cancel-result
          code                   CDATA             #REQUIRED
          desc                   CDATA             #IMPLIED
>


<!-- ========================================= -->
<!-- Declaration of notify result operation    -->
<!-- ========================================= -->

<!--this message goes from the push proxy gateway to the Push Initiator-->

<!ELEMENT resultnotification-message ( address, quality-of-service? ) >
<!ATTLIST resultnotification-message
          push-id                CDATA             #REQUIRED
          sender-address         CDATA             #IMPLIED
          sender-name            CDATA             #IMPLIED
          received-time          %Datetime;        #IMPLIED
          event-time             %Datetime;        #IMPLIED
          message-state          %State;           #REQUIRED
          code                   CDATA             #REQUIRED
          desc                   CDATA             #IMPLIED
>

<!--this message goes from the Push Initiator to the push proxy gateway-->

<!ELEMENT resultnotification-response ( address ) >
<!ATTLIST resultnotification-response
          push-id                CDATA             #REQUIRED
          code                   CDATA             #REQUIRED
          desc                   CDATA             #IMPLIED
>


<!-- ========================================= -->
<!-- Declaration of statusquery operation      -->
<!-- ========================================= -->

<!--this message goes from the Push Initiator to the push proxy gateway-->

<!ELEMENT statusquery-message ( address* ) >
<!ATTLIST statusquery-message
          push-id                CDATA             #REQUIRED
>

<!--this message goes from the push proxy gateway to the Push Initiator-->

<!ELEMENT statusquery-response ( statusquery-result+ ) >
<!ATTLIST statusquery-response
          push-id                CDATA             #REQUIRED
>

<!ELEMENT statusquery-result ( address*, quality-of-service? ) >
<!ATTLIST statusquery-result
          event-time             %Datetime;        #IMPLIED
          message-state          %State;           #REQUIRED
          code                   CDATA             #REQUIRED
          desc                   CDATA             #IMPLIED
>


<!-- ============================================== -->
<!-- Declaration of capabilities query operation    -->
<!-- ============================================== -->

<!--this message goes from the Push Initiator to the push proxy gateway-->

<!ELEMENT ccq-message ( address ) >
<!ATTLIST ccq-message
          query-id               CDATA             #IMPLIED
          app-id                 CDATA             #IMPLIED
>

<!--this message goes from the push proxy gateway to the Push Initiator-->

<!ELEMENT ccq-response ( address ) >
<!ATTLIST ccq-response
          query-id               CDATA             #IMPLIED
          code                   CDATA             #REQUIRED
          desc                   CDATA             #IMPLIED
>
<!-- ============================================== -->
<!-- Declaration of bad message response message    -->
<!-- ============================================== -->


<!--this message goes from the push proxy gateway to the Push Initiator-->

<!ELEMENT badmessage-response EMPTY >
<!ATTLIST badmessage-response
	code			CDATA	#REQUIRED
	desc			CDATA	#IMPLIED
	bad-message-fragment	CDATA	#IMPLIED
>

<!--
Copyright Wireless Application Protocol Forum Ltd., 1998-2001.
                      All rights reserved.  
-->
