I had an AI from the 2005-10-10 distributed meeting [2] to propose meaningful EPR extension for test 3 [1]. This email fulfills that AI.

Test 3 in [1] proposes the following:

-----

3. Endpoint Reference Extensibility (2.5) - REQUIRED
  1. Create an EPR "eprReply" as given below

    <wsa:EndpointReference xmlns:fabrikam="..." fabrikam:name="reply endpoint">
        <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
        <wsa:ReferenceParameters fabrikam:total="1">
            <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
        </wsa:ReferenceParameters>
        <wsa:Metadata fabrikam:total="1">
            <wsdl:definitions>
                ...
            </wsdl:definitions>
        </wsa:Metadata>
        <fabrikam:otherMetadata>
        </fabrikam:otherMetadata>
    </wsa:EndpointReference>

    The client sets [reply endpoint] to "eprReply" and invokes the service endpoint. Verify that service endpoint is able to process the [reply endpoint] EPR correctly.

-----

It proposes the following extensibility points:
1) element extensibility on wsa:EndpointReference (fabrikam:otherMetadata)
2) attribute extensibility on wsa:EndpointReference (fabrikam:name)
3) attribute extensibility on wsa:ReferenceParameters (fabrikam:total)
4) attribute extensibility on wsa:Metadata (fabrikam:total)
But the test does not specify the meaning and the expected behavior of the consumers of these extensibility points.

To make the test for the extensibility points more meaningful I would like to propose the following changes:

1)
element extensibility on wsa:EndpointReference:
<fabrikam:Description>xs:String</fabrikam:Description> --
This extensibility point is meant to include human readable text that describes the EndpointReference.

2)
attribute extensibility on wsa:EndpointReference:
xml:lang --
specifies the default language for all the human readable strings inside the EndpointReference. If the endpoint does not understand the language specified and the fabrikam:Description element is present, the endpoint may generate an appropriate fault.

3)
attribute extensibility on wsa:ReferenceParameters
fabrikam:NoDuplicateHeaders --
this is a SOAP specific extension which specifies that in SOAP messages addressed to the endpoint, the cardinality of the SOAP header corresponding to each Reference Property should be exactly one. If this isn't true, then an appropriate fault should be generated.

For example for an EPR:
<wsa:EndpointReference>
    <wsa:Address>...</wsa:Address>
    <wsa:ReferenceParameters>
        <fabrikam:Username>123456789</fabrikam:Username>
    </wsa:ReferenceParameters>
</wsa:EndpointReference>


When sending SOAP messages to the endpoint, there will be exactly one fabrikam:Username SOAP header. This is to prevent the sender of the message generating two (or more headers): one because of the reference property being echoed back and the other because of some other security username requirement that may exist.

4)
attribute extensibility on wsa:Metadata
fabrikam:expirationDate="xs:dateTime" --
This specifies the expiration time of the metadata, after that time the metadata should not be used.

HTH.

-Anish
--

[1] http://lists.w3.org/Archives/Public/public-ws-addressing/2005Oct/att-0018/CR_TestCases.html
[2] http://www.w3.org/2002/ws/addr/5/10/10-ws-addr-minutes.html