OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-cppa message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Issues (typos) with the sample CPP's and sample CPA (version 2.0b)


Hi CPPA team

When working on the CPA composition process I came across a couple of
oddities in the official example CPP's. If these have been reported
earlier, please excuse this email. 

The files under question are the "official" CPPA example CPP's and
example CPA version 2.0b.

Link to files:

CPP A:
http://www.oasis-open.org/apps/org/workgroup/ebxml-cppa/download.php/238/cpp-example-companyA-2_0b.xml
CPP B:
http://www.oasis-open.org/apps/org/workgroup/ebxml-cppa/download.php/246/cpp-example-companyB-2_0b.xml
CPA:  
http://www.oasis-open.org/apps/org/workgroup/ebxml-cppa/download.php/253/cpa-example-2_0b.xml

Orignially I wanted to report these oddities earlier (about 1 year ago)
but could not get the email to the OASIS mailinglist. It seems the
oddities survived from CPPA 1.0 version to CPPA 2.0 version. 

People really like examples, so they should be fixed. For the CPA
composition of my project I even took the example CPP's as primary test
input.

Please find a list of issues I came across.

file: cpp-example-companyA-2_0b.xml
-----------------------------------

1)

<tp:PartyRef ...></tp:PartyRef>

missing xlink:type="simple" attribute to make it consistent with other
party's PartyRef.


file: cpp-example-companyB-2_0b.xml
-----------------------------------

1)

CaseSensitive seller vs Seller issues. Again to make it consitent and
look nice.

suggestion to change from:

<tp:Role 
	tp:name="Seller" 
	xlink:type="simple"
       
xlink:href="http://www.rosettanet.org/processes/3A4.xml#seller"/>

to:

<tp:Role 
	tp:name="Seller" 
	xlink:type="simple"
       
xlink:href="http://www.rosettanet.org/processes/3A4.xml#Seller"/>


2)

<TransportSender> and <TransportReceiver> elements of company B dont
have <tp:AccessAuthentication>digest</tp:AccessAuthentication> whereas
the those elements of company A have.

Probably this can be left as is as this is a case where the CPA
composition and later the CPA negotiation have to deal with the
cardinality of the element <tp:AccessAuthentication>. In the sample CPA
the <tp:AccessAuthentication>digest</tp:AccessAuthentication> element is
removed from party B's PartyInfo.


3)

The Composite id is probably wrong in the following Packaging:

 <tp:Packaging tp:id="CompanyB_RequestPackage">
    <tp:ProcessingCapabilities
      tp:parse="true"
      tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite
        tp:id="RequestMsg"
        tp:mimetype="multipart/related"
        tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_Request"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>

I suggest to change the id attribute from:

tp:id="RequestMsg"

to:

tp:id="CompanyB_RequestMsg"

In the example CPA tp:id="CompanyB_RequestMsg" is used.



file: combination cpp-example-companyA-2_0b.xml and
cpp-example-companyB-2_0b.xml
---------------------------------------------------

0)

Each SimplePart element, in both example CPP's, have a value (URI) of
the pattern:

<NEW_LINE><SPACE><SPACE><SPACE><SPACE><SPACE><SPACE><VALUE><NEW_LINE><SPACE><SPACE><SPACE><SPACE>

in hex view:

0a20 2020 2020 20 <VALUE> 0a20 20 20 20

Maybe for the example CPP's removing the newline and spaces might be
helpful, to provide clean samples.

One NameSpaceSupported in company A
(/tp:CollaborationProtocolAgreement/tp:SimplePart[5]/tp:NamespaceSupported) even has 4 leading spaces compared to others 6 leading spaces ...

This might bring up a discussion to think over certain string XML schema
data types. XML Schema provides features to make sure that strings have
all white spaces collapese, all leading and trailing spaces removed, all
tabs, new lines, carrige returns removed. There are built-in data types
such as "normalizedstring". 

1)

Typo:

company A:

CanSend/ThisPartyActionBinding[@id="companyA_ABID2"] has action name
"ReceiptAcknowledgement"
CanReceive/ThisPartyActionBinding[@id="companyA_ABID4" has action name
"ReceiptAcknowledgment"

company B:

CanSend/ThisPartyActionBinding[@id="companyB_ABID2"] has action name
"ReceiptAcknowledgement"
CanReceive/ThisPartyActionBinding[@id="companyB_ABID5"] has action name
"ReceiptAcknowledgment"

based on the action name we should have the following pairs:

companyA_ABID2 - companyB_ABID5
companyA_ABID4 - companyB_ABID2

a CPA composition tool should not find these pairs because their action
name has a typo (extra 'e'), eg they dont match.

suggestion to change all occurances of "ReceiptAcknowledgement" to
"ReceiptAcknowledgment".

The sample CPA also has the extra "e" typo.

As a side note it is not obvoius why the name of the action is
"ReceiptAcknowledgment" and not "Receipt Acknowledgment" as all other
action names. But it does not matter as long as they are the same in
both CPP's.

more issues
-----------

Here is a list of conflicts the CPA composition algorithm picked up. The
algorithm did figure out which pairs (CanSend against CanReceive,
SimplePart against SimplePart etc) to compare. Then when comparing
elements and attributes the following issues showed up.

Legend: 

ref_x_cpp: is the XPath expression to the problem element/attribute in
the CPP, where x is party A or party B
x_value:   is the value which is set in the CPP, where x is party A or
party B.

Suggestions:

I suggest to set both elements/attributes to the same value.

conflict list:

1)

ref_a_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[1]/tp:NamespaceSupported/@tp:location'
ref_b_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[1]/tp:NamespaceSupported/@tp:location'
a_value='http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd'
b_value='http://www.oasis-open.org/committees/ebxml-msg/schema/draft-msg-header-05.xsd'

comment: different .xsd file referenced.

2)

ref_a_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[1]/tp:NamespaceSupported'
ref_b_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[1]/tp:NamespaceSupported'
a_value='http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd'
b_value='http://www.oasis-open.org/committees/ebxml-msg/schema/draft-msg-header-05.xsd'

comment: different .xsd file referenced.

5)

ref_a_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[3]/tp:NamespaceSupported/@tp:location'
ref_b_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[3]/tp:NamespaceSupported/@tp:location'
a_value='http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd'
b_value='http://www.oasis-open.org/committees/ebxml-msg/schema/draft-msg-header-05.xsd'

comment: different .xsd file referenced.

6)

ref_a_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[3]/tp:NamespaceSupported'
ref_b_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[3]/tp:NamespaceSupported'
a_value='http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd'
b_value='http://www.oasis-open.org/committees/ebxml-msg/schema/draft-msg-header-05.xsd'

comment: different .xsd file referenced.

3)

ref_a_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[5]/tp:NamespaceSupported/@tp:location'
ref_b_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[5]/tp:NamespaceSupported/@tp:location'
a_value='http://www.rosettanet.org/schemas/PurchaseOrderConfirmation.xsd'
b_value='http://www.rosettanet.org/schemas/PurchaseOrderConfirmation.xsd.xsd'

comment: different .xsd file referenced.

4)

ref_a_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[5]/tp:NamespaceSupported'
ref_b_cpp='/tp:CollaborationProtocolProfile/tp:SimplePart[5]/tp:NamespaceSupported'
a_value='http://www.rosettanet.org/schemas/PIP3A4PurchaseOrderConfirmation.xsd'
b_value='http://www.rosettanet.org/schemas/PIP3A4PurchaseOrderConfirmation.xsd'

Case 4 is because of the above "spaces" problem but is there are reason
that the NamespaceSupported element value and its location attribute
have a different URLs (or URI?) of the .xsd XML Schema file.

Unfortunately the current version of the CPA composition algorithm has
its own limitations, such as no synchronous CanSend/CanReceives checks
and thus no synchronous Transport, Packaging, DeliveryChannel elements
checks. Further does the algorithm not check Certificates. The reason
for these limitations are time constraints. I hope to fix them somewhen
next year.

What these issues show me, is that the sample CPA is created by hand ;)

Kind regards.

Sacha Schlegel
-- 
------------------------------------------------
Sacha                                   Schlegel
------------------------------------------------
4 Warwick Str, 6102 St. James, Perth,  Australia
sacha@schlegel.li                www.schlegel.li
public key:            www.schlegel.li/sacha.gpg
------------------------------------------------



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]