Skip Headers
Oracle® Streams Advanced Queuing User's Guide and Reference
10g Release 2 (10.2)

Part Number B14257-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Feedback

Go to previous page
Previous
Go to next page
Next
View PDF

B SOAP and Oracle Streams AQ XML Schemas

IDAP exposes the SOAP schema and the Oracle Streams AQ XML schema to the client. All documents sent are validated against these schemas. These schemas are provided for your reference when creating your own XML-based messages.

B.1 Soap Schema

The SOAP schema describes the structure of a document. It has the following format:

<?xml version='1.0'?>
<!-- XML Schema for SOAP v 1.1 Envelope -->
<schema xmlns='http://www.w3.org/2001/XMLSchema'
        xmlns:tns='http://schemas.xmlsoap.org/soap/envelope/'
        targetNamespace='http://schemas.xmlsoap.org/soap/envelope/'>

  <!-- SOAP envelope, header and body -->

  <element name="Envelope" type="tns:Envelope"/>
  <complexType name='Envelope'>
   <sequence>
    <element ref='tns:Header' minOccurs='0'/>
    <element ref='tns:Body' minOccurs='1'/>
    <any minOccurs='0' maxOccurs='*'/>
   </sequence>
    <anyAttribute/>
  </complexType>

  <element name="Header" type="tns:Header"/>
  <complexType name='Header'>
   <sequence>
    <any minOccurs='0' maxOccurs='*'/>
   </sequence>
    <anyAttribute/>
  </complexType>

  <element name="Body" type="tns:Body"/>
  <complexType name='Body'>
   <sequence>
    <any minOccurs='0' maxOccurs='*'/>
   </sequence>
    <anyAttribute/>
  </complexType>

  <!-- Global Attributes.  The following attributes are intended 
       to be usable through qualified attribute names on any complex type
       referencing them.  -->
 
  <attribute name="mustUnderstand" type="tns:mutype" use="optional" value="0"/>
  </attribute>

  <simpleType  name="mutype">
     <restriction base="string">
          <enumeration value="0"/>
        <enumeration value="1"/>
     </restriction>
  </simpleType>

  <attribute name='actor' type='anyURI'/>
 
  <!-- 'encodingStyle' indicates any canonicalization conventions followed
       in the contents of the containing element.  For example, the value
       'http://schemas.xmlsoap.org/soap/encoding/' indicates 
       the pattern described in SOAP specification. -->

  <simpleType name='encodingStyle'>
    <list itemType='anyURI'/>
  </simpleType>
  <attributeGroup name='encodingStyle'>
    <attribute name='encodingStyle' type='tns:encodingStyle'/>
  </attributeGroup>

  <!-- SOAP fault reporting structure -->
  <complexType name='Fault' final='extension'>
   <sequence>
    <element name='faultcode' type='QName'/>
    <element name='faultstring' type='string'/>
    <element name='faultactor' type='anyURI' minOccurs='0'/>
    <element name='detail' type='tns:detail' minOccurs='0'/>
   </sequence>
  </complexType>

  <complexType name='detail'>
   <sequence>
    <any minOccurs='0' maxOccurs='*'/>
   </sequence>
    <anyAttribute/> 
  </complexType>

</schema>

B.2 IDAP Schema

The IDAP schema describes the contents of the IDAP body for Internet access to Oracle Streams AQ features. It has the following format:

<?xml version="1.0"?>

<!-- ****************** Oracle Streams AQ xml schema  ****************** -->

<schema xmlns = "http://www.w3.org/2001/XMLSchema"
        targetNamespace = "http://ns.oracle.com/AQ/schemas/access"
        xmlns:aq = "http://ns.oracle.com/AQ/schemas/access"
        xmlns:xsd = "http://www.w3.org/2001/XMLSchema">

<import namespace = "http://schemas.xmlsoap.org/soap/envelope/"
        schemaLocation = "soap_env.xsd" />

<!-- *************** Oracle Streams AQ xml client operations  *************** -->

   <element name="AQXmlSend">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:producer_options" minOccurs="1" maxOccurs="1" />
           <element ref="aq:message_set" minOccurs="1" maxOccurs="1"/>
           <element ref="aq:AQXmlCommit" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </complexType>
    </element>

   <element name="AQXmlPublish">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:producer_options" minOccurs="1" maxOccurs="1" />
           <element ref="aq:message_set" minOccurs="1" maxOccurs="1"/>
           <element ref="aq:AQXmlCommit" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </complexType>
    </element>

   <element name="AQXmlReceive">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:consumer_options" minOccurs="1" maxOccurs="1" />
           <element ref="aq:AQXmlCommit" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </complexType>
   </element>

   <element name="AQXmlRegister">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:register_options" minOccurs="1" maxOccurs="1" />
           <element ref="aq:AQXmlCommit" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </complexType>
   </element>

   <element name="AQXmlCommit">
      <complexType>
      </complexType>
   </element>

   <element name="AQXmlRollback">
      <complexType>
      </complexType>
   </element>

 
   <!-- ************** Oracle Streams AQ xml server responses  ************** -->

   <element name="AQXmlSendResponse">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:status_response" minOccurs="1" maxOccurs="1"/> 
           <element ref="aq:send_result" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </complexType>
    </element>

   <element name="AQXmlPublishResponse">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:status_response" minOccurs="1" maxOccurs="1"/> 
           <element ref="aq:publish_result" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </complexType>
    </element>

   <element name="AQXmlReceiveResponse">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:status_response" minOccurs="1" maxOccurs="1"/> 
           <element ref="aq:receive_result" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </complexType>
    </element>

   <element name="AQXmlRegisterResponse">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:status_response" minOccurs="1" maxOccurs="1"/> 
        </sequence>
      </complexType>
    </element>

   <element name="AQXmlCommitResponse">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:status_response" minOccurs="1" maxOccurs="1"/> 
        </sequence>
      </complexType>
    </element>

   <element name="AQXmlRollbackResponse">
      <complexType mixed="true">
        <sequence>
           <element ref="aq:status_response" minOccurs="1" maxOccurs="1"/> 
        </sequence>
      </complexType>
    </element>

   <element name="destination">
     <complexType>
      <simpleContent>
        <extension base='string'>
          <attribute name="lookup_type" type="aq:dest_lookup_type" 
                   default="DATABASE"/>
        </extension>
     </simpleContent>
   </complexType>
   </element>                

   <!-- **** destination lookup type ******* -->
   <!-- lookup_type can be specified to either lookup LDAP or use  -->

   <simpleType name="dest_lookup_type">
    <restriction base="string">
      <enumeration value="DATABASE"/>
      <enumeration value="LDAP"/>
     </restriction>
    </simpleType>

   <!-- ****************** Producer Options ****************** -->
   <element name="producer_options">
      <complexType mixed="true">
        <sequence>
        <element ref="aq:destination" minOccurs="1" maxOccurs="1"/>          
        <element ref="aq:visibility" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:transformation" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </complexType>
    </element>

   <!-- ****************** Consumer Options ****************** -->
   <element name="consumer_options">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:destination" minOccurs="1" maxOccurs="1"/> 
        <element ref="aq:consumer_name" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:wait_time" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:selector" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:batch_size" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:visibility" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:dequeue_mode" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:navigation_mode" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:transformation" minOccurs="0" maxOccurs="1"/>
        </sequence>
       </complexType>
    </element>

   <!-- ****************** Register Options ****************** -->
   <element name="register_options">
      <complexType mixed="true">
        <sequence>
        <element ref="aq:destination" minOccurs="1" maxOccurs="1"/> 
        <element ref="aq:consumer_name" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:notify_url" minOccurs="1" maxOccurs="1"/> 
        </sequence>
      </complexType>
    </element>

   <element name="recipient_list">
     <complexType mixed="true">
      <sequence>
        <element ref="aq:recipient" minOccurs="1" maxOccurs="*"/>
      </sequence>
     </complexType>
   </element>

   <!-- ****************** Message Set ************************* -->
   <element name="message_set">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:message_count" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:message" minOccurs="0" maxOccurs="*"/>
       </sequence>
      </complexType>
   </element>

   <!-- ****************** Message ************************* -->
   <element name="message">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:message_number" minOccurs="0" maxOccurs="1"/>       
        <element ref="aq:message_header" minOccurs="1" maxOccurs="1"/>
        <element ref="aq:message_payload" minOccurs="0" maxOccurs="1"/>
       </sequence>
      </complexType>
   </element>

   <!-- ****************** Message header ****************** -->
   <element name="message_header">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:message_id" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:correlation" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:delay" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:expiration" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:priority" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:delivery_count" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:sender_id" minOccurs="1" maxOccurs="1"/>
        <element ref="aq:recipient_list" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:message_state" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:exception_queue" minOccurs="0" maxOccurs="1"/> 
      </sequence> 
     </complexType>
    </element>

   <!-- ****************** Oracle JMS properties ****************** -->
   <element name="oracle_jms_properties">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:type" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:reply_to" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:userid" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:appid" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:groupid" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:group_sequence" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:timestamp" minOccurs="0" maxOccurs="1"/> 
        <element ref="aq:recv_timestamp" minOccurs="0" maxOccurs="1"/> 
       </sequence>
      </complexType>
    </element>

   <!-- ****************** Message payload ****************** -->
   <element name="message_payload">
     <complexType>
        <choice>
          <element ref="aq:raw" minOccurs="0" maxOccurs="1"/> 
          <element ref="aq:jms_text_message" minOccurs="0" maxOccurs="1"/> 
          <element ref="aq:jms_map_message" minOccurs="0" maxOccurs="1"/> 
          <element ref="aq:jms_bytes_message" minOccurs="0" maxOccurs="1"/> 
          <element ref="aq:jms_object_message" minOccurs="0" maxOccurs="1"/> 
          <any minOccurs="0" maxOccurs="*" processContents="skip"/>
        </choice>
     </complexType>
   </element>                

   <!-- ****************** User-defined properties ****************** -->
   <element name="user_properties">
      <complexType mixed="true">
        <sequence>
        <element ref="aq:property" minOccurs="0" maxOccurs="*"/> 
        </sequence>
      </complexType>
   </element>

   <!-- ****************** Property  ****************** -->
   <element name="property">
      <complexType mixed="true">
        <sequence>
          <element ref="aq:name" minOccurs="1" maxOccurs="1"/> 
          <choice>
            <element ref="aq:int_value" minOccurs="1" maxOccurs="1"/> 
            <element ref="aq:string_value" minOccurs="1" maxOccurs="1"/> 
            <element ref="aq:long_value" minOccurs="1" maxOccurs="1"/> 
            <element ref="aq:double_value" minOccurs="1" maxOccurs="1"/> 
            <element ref="aq:boolean_value" minOccurs="1" maxOccurs="1"/> 
            <element ref="aq:float_value" minOccurs="1" maxOccurs="1"/> 
            <element ref="aq:short_value" minOccurs="1" maxOccurs="1"/> 
            <element ref="aq:byte_value" minOccurs="1" maxOccurs="1"/> 
          </choice>
        </sequence>
      </complexType>
    </element>

   <!-- ****************** Status response ****************** -->
   <element name="status_response">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:acknowledge" minOccurs="0" maxOccurs="1"/>          
        <element ref="aq:status_code" minOccurs="0" maxOccurs="1"/>          
        <element ref="aq:error_code" minOccurs="0" maxOccurs="1"/>           
        <element ref="aq:error_message" minOccurs="0" maxOccurs="1"/>
       </sequence>
      </complexType>
   </element>

   <!-- ****************** Send result ****************** -->
   <element name="send_result">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:destination" minOccurs="1" maxOccurs="1"/>          
        <element ref="aq:message_id" minOccurs="0" maxOccurs="*"/>           
      </sequence>
      </complexType>
   </element>

   <!-- ****************** Publish result ****************** -->
   <element name="publish_result">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:destination" minOccurs="1" maxOccurs="1"/>          
        <element ref="aq:message_id" minOccurs="0" maxOccurs="*"/>           
       </sequence>
      </complexType>
   </element>


   <!-- ****************** Receive result ****************** -->
   <element name="receive_result">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:destination" minOccurs="1" maxOccurs="1"/>          
        <element ref="aq:message_set" minOccurs="0" maxOccurs="*"/>
       </sequence>   
      </complexType>
   </element>

   <!-- ****************** Notification *************************** -->
   <element name="notification_options">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:destination" minOccurs="1" maxOccurs="1"/>          
        <element ref="aq:consumer_name" minOccurs="1" maxOccurs="1"/> 
       </sequence>
      </complexType>
   </element>

   <element name="priority" type="integer"/>                 
   <element name="expiration" type="integer"/>               
   <element name="consumer_name" type="string"/> 
   <element name="wait_time" type="integer"/>
   <element name="batch_size" type="integer"/>
   <element name="notify_url" type="string"/> 
   <element name="message_id" type="string"/> 
   <element name="message_state" type="string"/>
   <element name="message_number" type="integer"/>
   <element name="message_count" type="integer"/>
   <element name="correlation" type="string"/> 
   <element name="delay" type="integer"/> 
   <element name="delivery_count" type="integer"/> 
   <element name="exception_queue" type="string"/> 
   <element name="agent_alias" type="string"/>

   <element name="type" type="string"/> 
   <element name="userid" type="string"/> 
   <element name="appid" type="string"/> 
   <element name="groupid" type="string"/> 
   <element name="group_sequence" type="integer"/> 
   <element name="timestamp" type="date"/> 
   <element name="recv_timestamp" type="date"/> 
   <element name="recipient">
     <complexType>
       <choice>
         <sequence>
           <element ref="aq:agent_name" minOccurs="0" maxOccurs="1"/>
           <element ref="aq:address" minOccurs="0" maxOccurs="1"/>           
           <element ref="aq:protocol" minOccurs="0" maxOccurs="1"/> 
         </sequence>
         <element ref="aq:agent_alias" minOccurs="1" maxOccurs="1"/>
       </choice>
     </complexType>
   </element>                


   <element name="sender_id">
     <complexType>
       <choice>
         <sequence>
           <element ref="aq:agent_name" minOccurs="0" maxOccurs="1"/>
           <element ref="aq:address" minOccurs="0" maxOccurs="1"/>           
           <element ref="aq:protocol" minOccurs="0" maxOccurs="1"/> 
         </sequence>
         <element ref="aq:agent_alias" minOccurs="1" maxOccurs="1"/>
       </choice>
     </complexType>
   </element>                

   <element name="reply_to">
     <complexType>
       <choice>
         <sequence>
           <element ref="aq:agent_name" minOccurs="1" maxOccurs="1"/>
           <element ref="aq:address" minOccurs="0" maxOccurs="1"/>           
           <element ref="aq:protocol" minOccurs="0" maxOccurs="1"/> 
         </sequence>
         <element ref="aq:agent_alias" minOccurs="1" maxOccurs="1"/>
       </choice>
     </complexType>
   </element>                

   <element name="selector"> 
     <complexType>
                <choice>
          <element ref="aq:correlation" minOccurs="0" maxOccurs="1"/> 
          <element ref="aq:message_id" minOccurs="0" maxOccurs="1"/> 
          <element ref="aq:condition" minOccurs="0" maxOccurs="1"/> 
        </choice>
     </complexType>
   </element>

   <element name="condition" type="string"/>

   <element name="visibility">
    <simpleType>
     <restriction base="string">
      <enumeration value="ON_COMMIT"/>
      <enumeration value="IMMEDIATE"/>
     </restriction>
    </simpleType>
    </element>       

   <simpleType name="del_mode_type">
     <restriction base="string">
      <enumeration value="PERSISTENT"/>
      <enumeration value="NONPERSISTENT"/>
     </restriction>
    </simpleType>

   <element name="dequeue_mode"> 
   <simpleType>       
    <restriction base="string">
      <enumeration value="BROWSE"/>
      <enumeration value="LOCKED"/>
      <enumeration value="REMOVE"/>
      <enumeration value="REMOVE_NODATA"/>
    </restriction>
    </simpleType>
   </element>        

   <element name="navigation_mode"> 
   <simpleType>
    <restriction base="string">
      <enumeration value="FIRST_MESSAGE"/>
      <enumeration value="NEXT_MESSAGE"/>
      <enumeration value="NEXT_TRANSACTION"/>
    </restriction>
    </simpleType>
   </element>
 
   <element name="transformation" type="string"/> 

   <element name="acknowledge">
     <complexType>
     </complexType>
   </element>                
   <element name="status_code" type="string"/> 
   <element name="error_code" type="string"/> 
   <element name="error_message" type="string"/> 

   <element name="name" type="string"/> 
   <element name="int_value" type="integer"/> 
   <element name="string_value" type="string"/> 
   <element name="long_value" type="long"/> 
   <element name="double_value" type="double"/> 
   <element name="boolean_value" type="boolean"/> 
   <element name="float_value" type="float"/> 
   <element name="short_value" type="short"/> 
   <element name="byte_value" type="byte"/> 

   <element name="agent_name" type="string"/> 
   <element name="address" type="string"/> 
   <element name="protocol" type="integer"/> 

   <!-- ****************** RAW message *********************** -->
   <element name="raw" type="string"/> 

   <!-- ****************** JMS TextMessage ****************** -->
   <element name="jms_text_message">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:oracle_jms_properties" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:user_properties" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:text_data" minOccurs="1" maxOccurs="1"/>
      </sequence>
      </complexType>
   </element>
        
   <element name="text_data" type="string"/> 

   <!-- ****************** JMS map message ****************** -->
   <element name="jms_map_message">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:oracle_jms_properties" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:user_properties" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:map_data" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
   </element>

   <!-- ****************** Map data ****************** -->
   <element name="map_data">
      <complexType mixed="true">
        <sequence>
        <element ref="aq:item" minOccurs="0" maxOccurs="*"/> 
        </sequence>
      </complexType>
   </element>

   <!-- ****************** Map Item  ****************** -->
   <element name="item">
      <complexType mixed="true">
        <sequence>
          <element ref="aq:name" minOccurs="1" maxOccurs="1"/> 
          <choice>
            <element ref="aq:int_value" minOccurs="1" maxOccurs="1"/> 
            <element ref="aq:string_value" minOccurs="1" maxOccurs="1"/>
            <element ref="aq:long_value" minOccurs="1" maxOccurs="1"/>
            <element ref="aq:double_value" minOccurs="1" maxOccurs="1"/>
            <element ref="aq:boolean_value" minOccurs="1" maxOccurs="1"/>
            <element ref="aq:float_value" minOccurs="1" maxOccurs="1"/>
            <element ref="aq:short_value" minOccurs="1" maxOccurs="1"/>
            <element ref="aq:byte_value" minOccurs="1" maxOccurs="1"/>
          </choice>
        </sequence>
      </complexType>
    </element>
        
   <!-- ****************** JMS bytes message ****************** -->
   <element name="jms_bytes_message">
      <complexType mixed="true">
       <sequence>
        <element ref="aq:oracle_jms_properties" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:user_properties" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:bytes_data" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
   </element>
        
   <element name="bytes_data" type="string"/> 

   <!-- ****************** JMS ObjectMessage ****************** -->
   <element name="jms_object_message">
      <complexType mixed="true">
        <sequence>
        <element ref="aq:oracle_jms_properties" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:user_properties" minOccurs="0" maxOccurs="1"/>
        <element ref="aq:ser_object_data" minOccurs="1" maxOccurs="1"/>
        </sequence>
      </complexType>
   </element>
        
   <element name="ser_object_data" type="string"/> 

</schema>