RE: [ebxml-msg] Proposal for extended PullRequest

From
Pim van der Eijk <>
Date
2010-04-07T18:13:44+00:00
ID
A65F60F4C5F844A29BF811497DDB40F4@Roussanne
Thread
RE: [ebxml-msg] Proposal for extended PullRequest
Hello Jacques,

 

Yes, I believe this backwards compatible.  I think we 
could just reuse the elements in the ebMS schema instead of inviting a new 
eb:Select element:

 

  <eb3:PullRequest mpc="http://msh.example.com/mpc123">
    
<eb3:RefToMessageId></eb3:RefToMessageId>
  
</eb3:PullRequest>

 

And 
similarly for ConversationId. 

 

What 
do we win/loose by adding other standard header elements like From/PartyId 
?

 

Pim

 

From: Jacques R. Durand 
[mailto:] 
Sent: 01 April 2010 
01:09
To: 
Subject: 
[ebxml-msg] Proposal for extended PullRequest

 Based on 
todays's discussion:

Here are some samples of extended PullRequest, followed 
by the proposed (rough) schema.

I believe this 
is still backward compatible, Pim? (PullRequest allows for a sequence of any as 
children elements)

 

Semantics:

 

The MSH 
receiving such a PullReques MUST either:

(a) return a 
message assigned to the same @mpc, and that has same eb:RefToMessageId value as 
@reftomessageid (if the latter is specified) and same eb:ConversationId value as 
@conversationid (if  the latter is specified) and that contains the message 
properties specified as children of <eb:Select> (if 
any).

(b) return 
error EBMS:0006 (EmptyMessagePartitionChannel ) if no message is currently 
assigned to this MPC , that matches the selecting conditions in 
(a).

 

Examples:

 

<eb:SignalMessage>
  
<eb:MessageInfo> 
    
<eb:Timestamp>2006-07-25T12:19:05</eb:Timestamp>
    
<eb:MessageId></eb:MessageId>
  
</eb:MessageInfo> 
  <eb:PullRequest mpc="http://msh.example.com/mpc123">
    
<eb:Select reftomessageid="1234"/>
  
</eb:PullRequest>
</eb:SignalMessage>
<!-- 
============================= -->
<eb:SignalMessage>
  
<eb:MessageInfo> 
    
<eb:Timestamp>2006-07-25T12:19:05</eb:Timestamp>
    
<eb:MessageId></eb:MessageId>
  
</eb:MessageInfo> 
  <eb:PullRequest mpc="http://msh.example.com/mpc123">
    
<eb:Select conversationid="6"/>
  
</eb:PullRequest>
</eb:SignalMessage>
<!-- 
============================= -->
<eb:SignalMessage>
  
<eb:MessageInfo> 
    
<eb:Timestamp>2006-07-25T12:19:05</eb:Timestamp>
    
<eb:MessageId></eb:MessageId>
  
</eb:MessageInfo> 
  <eb:PullRequest mpc="http://msh.example.com/mpc123">
    
<eb:Select>
      <eb:Property 
name="POclass">urgent</eb:Property>
      
<eb:Property 
name="ProductType">expensive</eb:Property>
    
</eb:Select>
  
</eb:PullRequest>
</eb:SignalMessage>
<!-- 
============================= -->
<eb:SignalMessage>
  
<eb:MessageInfo> 
    
<eb:Timestamp>2006-07-25T12:19:05</eb:Timestamp>
    
<eb:MessageId></eb:MessageId>
  
</eb:MessageInfo> 
  <eb:PullRequest mpc="http://msh.example.com/mpc123">
    
<eb:Select>
      <eb:Property 
name="POref">PO2345</eb:Property>
    
</eb:Select>
  
</eb:PullRequest>
</eb:SignalMessage>

 

 

------------------------------- schema: 
-----------------------------------------

 

<xsd:complexType 
name="PullRequest">
  <xsd:sequence>
   <xsd:element 
name="Select" 
minOccurs="0">
    <xsd:complexType>
     <xsd:sequence 
minOccurs="0">
      <xsd:element 
name="Property" type="Property" 
maxOccurs="unbounded"/>
     </xsd:sequence>
     <xsd:attribute 
name="reftomessageid" 
type="non-empty-string"/>
     <xsd:attribute 
name="conversationid" 
type="non-empty-string"/>
    </xsd:complexType>
   </xsd:element>
   <xsd:any 
namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
  </xsd:sequence>
  <xsd:attributeGroup 
ref="pullAttributes"/>
 </xsd:complexType>