← Prev in month ← Prev in thread

Event Definitions and Payload XMLs

From
Nader Oteifa <>
Date
2010-01-17T19:56:32+00:00
ID
000f01ca97af$224b1f60$66e15e20$@com
Thread
Event Definitions and Payload XMLs
Kevin,

 

We’ve revamped our interop producer to generate the
different type of payloads that we may run into.  The producer can be
found in:

 

http://www.netunitysoftware.com/wsrp2interop/WsrpProducer.asmx?WSDL

 

There are two portlets dealing with events:

 

1)     
NetUnity WSRP 2
Interop – Events

Generates events

 

2)     
NetUnity WSRP 2
Interop - Event Receiver

Listens to events from  #1

 

The four events are:

 

1)     
NoPayloadEvent

Obviously an event without a payload 

 

<eventDescriptions
xmlns:q21="urn:netunitysoftware:wsrp2interop"
name="q21:NoPayloadEvent" xmlns="urn:oasis:names:tc:wsrp:v2:types">

  <description xml:lang="en">

      <value>No Payload
Event</value>

    </description>

    <label xml:lang="en">

      <value>No Payload
Event</value>

    </label>

  </eventDescriptions>

 

2)     
DefaultPayloadEvent

An event with a WSRP NamedStringArray payload

 

  <eventDescriptions
xmlns:q18="urn:netunitysoftware:wsrp2interop"
name="q18:DefaultPayloadEvent" type="NamedStringArray"
xmlns="urn:oasis:names:tc:wsrp:v2:types">

    <description xml:lang="en">

      <value>Default Payload
Event</value>

    </description>

    <label xml:lang="en">

      <value>Default Payload
Event</value>

    </label>

  </eventDescriptions>

 

3)     
SimplePayloadEvent

An event with a simple string (xsd:string) payload

 

<ServiceDescription
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

…

  <eventDescriptions
xmlns:q20="urn:netunitysoftware:wsrp2interop"
name="q20:SimplePayloadEvent" type="xsd:string"
xmlns="urn:oasis:names:tc:wsrp:v2:types">

    <description xml:lang="en">

      <value>Simple Payload
Event</value>

    </description>

    <label xml:lang="en">

      <value>Simple Payload
Event</value>

    </label>

    <schemaType>

      <xs:schema
xmlns:tns="urn:netunitysoftware:wsrp2interop"
elementFormDefault="qualified"
targetNamespace="urn:netunitysoftware:wsrp2interop"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

        <xs:element
name="SimplePayloadEvent" nillable="true"
type="xs:string" />

      </xs:schema>

    </schemaType>

  </eventDescriptions>

 

4)     
ComplexPayloadEvent

An event with a complex payload containing multiple elements and
sub-elements

 

  <eventDescriptions
xmlns:q19="urn:netunitysoftware:wsrp2interop"
name="q19:ComplexPayloadEvent" type="q19:ComplexPayload"
xmlns="urn:oasis:names:tc:wsrp:v2:types">

    <description xml:lang="en">

      <value>Complex Payload
Event</value>

    </description>

    <label xml:lang="en">

      <value>Complex Payload
Event</value>

    </label>

    <schemaType>

      <xs:schema
xmlns:tns="urn:netunitysoftware:wsrp2interop"
elementFormDefault="qualified"
targetNamespace="urn:netunitysoftware:wsrp2interop"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

        <xs:element
name="ComplexPayloadEvent" nillable="true" type="tns:ComplexPayload"
/>

        <xs:complexType
name="ComplexPayload">

         
<xs:sequence>

           
<xs:element minOccurs="1" maxOccurs="1"
name="IntValue" type="xs:int" />

           
<xs:element minOccurs="0" maxOccurs="1"
name="StringValue" type="xs:string" />

           
<xs:element minOccurs="0" maxOccurs="1"
name="NestedData" type="tns:NestedData" />

         
</xs:sequence>

       
</xs:complexType>

        <xs:complexType
name="NestedData">

         
<xs:sequence>

           
<xs:element minOccurs="0" maxOccurs="1"
name="NestedStringValue" type="xs:string" />

         
</xs:sequence>

       
</xs:complexType>

      </xs:schema>

    </schemaType>

  </eventDescriptions>

 

One question is: should/can the DefaultPayloadEvent  event description
specify a schema?  Our current implementation does not given the element and
the type are already defined in the WSRP schemas.  There are some other questions
as well related to generation of very complex schemas right in the web service when
that generated schema needs to import other generated schemas.  How are
the imported schemas located/loaded?  Do you wind with a combination where
the main schema is in the web service and others have to be load using straight
HTTP? 

 

Below is the blocking interaction for generating the above 4
events with appropriate payloads:

 

<?xml version="1.0"
encoding="utf-16"?>

<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <soap:Body>

       
<performBlockingInteractionResponse xmlns="urn:oasis:names:tc:wsrp:v2:types">

           
<updateResponse>

               
<events xmlns:q1="urn:netunitysoftware:wsrp2interop"
name="q1:DefaultPayloadEvent" type="NamedStringArray">

                   
<payload>

                       
<namedStringArray>

                     
      <NamedString
name="ParameterOne">

                               
<value>Parameter One</value>

                           
</NamedString>

                           
<NamedString name="ParameterTwo">

                               
<value>Parameter Two</value>

                           
</NamedString>

                       
</namedStringArray>

                   
</payload>

               
</events>

               
<events xmlns:q2="urn:netunitysoftware:wsrp2interop"
name="q2:ComplexPayloadEvent" type="q2:ComplexPayload">

                   
<payload>

                       
<ComplexPayloadEvent
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="urn:netunitysoftware:wsrp2interop">

                           
<IntValue>10</IntValue>

                           
<StringValue>String value</StringValue>

                           
<NestedData>

                               
<NestedStringValue>nested string value</NestedStringValue>

                            </NestedData>

                       
</ComplexPayloadEvent>

                   
</payload>

               
</events>

               
<events xmlns:q3="urn:netunitysoftware:wsrp2interop"
name="q3:SimplePayloadEvent" type="xsd:string">

                   
<payload>

                       
<SimplePayloadEvent
xmlns="urn:netunitysoftware:wsrp2interop">String
Value</SimplePayloadEvent>

                   
</payload>

               
</events>

               
<events xmlns:q4="urn:netunitysoftware:wsrp2interop"
name="q4:NoPayloadEvent" />

               
<navigationalContext />

           
</updateResponse>

       
</performBlockingInteractionResponse>

    </soap:Body>

</soap:Envelope>

 

Please let me know if you need anything else from my end.

 

Nader

NetUnity Software

From: Nathan Lipke
[mailto:] 

Sent: Thursday, January 14, 2010 11:54 AM

To: WSRP

Subject: [wsrp] TC Call Jan 14. 2010 minutes

 

Attendees:

 
Dina

 
Kevin

 
Mike F

 
Nadar

 
Scott

 
Nate

 

Discussed  event payload proposal at bottom of:

http://wiki.oasis-open.org/wsrp/Event%20Payloads

 

Nadar:  

 
Raised issues with the proposal:

 
  
Need to investigate if the type holder
      elements are defined by some other W3C or OASIS group

  
Thinks we should just require complex types

  
Proposes modify option #2 to get rid of
      element will match

 

 
TODO: Will investigate the proposal

 
TODO: Will post his current payload XML for
     simple and complex types

 

Kevin:

 
TODO: Investigate can we parse NetUnity's current
     XML

 
TODO: Investigate sending simple types without
     well-defined types

 
TODO: Provide XML payloads with well-defined
     types

 

Nate
← Prev in month ← Prev in thread