This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 6433 - WS-Transfer and WS-MetadataExchange schemas contain weakly-typed EPRs
Summary: WS-Transfer and WS-MetadataExchange schemas contain weakly-typed EPRs
Status: CLOSED REMIND
Alias: None
Product: WS-Resource Access
Classification: Unclassified
Component: Transfer (show other bugs)
Version: FPWD
Hardware: PC Windows XP
: P2 normal
Target Milestone: ---
Assignee: Gilbert Pilz
QA Contact: notifications mailing list for WS Resource Access
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-14 20:57 UTC by Gilbert Pilz
Modified: 2009-06-23 23:58 UTC (History)
2 users (show)

See Also:


Attachments

Description Gilbert Pilz 2009-01-14 20:57:08 UTC
WS-Transfer and WS-Mex both have schemas that define EPR types that look something like:

  <xs:element name="FlexibleEPR">
    <xs:complexType>
      <xs:sequence>
        <xs:any minOccurs='1' maxOccurs='unbounded' processContents='skip' namespace='##other' />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

Since we have agreed that is *not* a goal of WS-RA to support the Member Submission version of WS-Addressing (200408), these weakly-typed EPRs are unnecessary. Since, in this context, weak types are inferior to strong types (interoperability, message validation, code generation, etc.) these types should be removed and references to them changed to refer to the WS-Addressing 1.0 defined EPR type (i.e. wsa:EndpointReferenceType).

Proposal: Remove weak EPRs from WS-T and WS-Mex and replace them with wsa:EndpointReferenceType.
Comment 1 Robert Freund 2009-01-20 21:12:48 UTC
Proposal from http://lists.w3.org/Archives/Public/public-ws-resource-access/2009Jan/0041.html
In WS-Transfer, in Appendix I (XSD):

Remove the following:

<!-- 
The type of the ResourceCreated is effectively 
the union of wsa04:EndpointReferenceType and 
wsa10:EndpointReferenceType. Unfortunately, xs:union only 
works for simple types. As a result, we have to define 
the element in an unvalidated way to accommodate either 
addressing type. 
--> 
 
  <xs:element name="ResourceCreated">
    <xs:complexType>
      <xs:sequence>
        <xs:any minOccurs='1' maxOccurs='unbounded' processContents='skip' namespace='##other' />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

and change the definition of CreateResponseType to:

  <xs:complexType name="CreateResponseType" >
    <xs:sequence>
      <xs:element name="ResourceCreated" type="wsa:EndpointReferenceType" />
      <xs:any minOccurs="0" namespace="##other" processContents="lax" />
    </xs:sequence>
  </xs:complexType>

In WS-MetadataExchange:

In Table 2, lines 73 and 75, change element to <wsa:Address>.

Change definition of /mex:Metadata/mex:MetadataSection/mex:MetadataReference to:

/mex:Metadata/mex:MetadataSection/mex:MetadataReference
This is an endpoint reference to a metadata resource and is of type EndpointReferenceType as defined by WS-Addressing. The resource MUST support the GET operation [WS-Transfer] to allow the retrieval of the metadata unit for the Metadata Section's Dialect and Identifier (if any). When this element is present, it MUST have no element siblings.

In Table 6, lines 56 and 58, change element to <wsa:Address>.

In Table 7, lines 9 and 11, change element to <wsa:Address>; lines 12 and 20, change element to <wsa:Metadata>.

In Appendix I (XML Schema) change the definition of  MetadataSection to:

<xs:element name="MetadataSection">
  <xs:complexType>
    <xs:choice>
      <xs:any namespace="##other" processContents="lax" />
      <xs:element name="MetadataReference" type="wsa:EndpointReferenceType" />
      <xs:element ref='tns:Location' />
    </xs:choice>
    <xs:attribute name='Dialect' type='xs:anyURI' use='required' />
    <xs:attribute name='Identifier' type='xs:anyURI' />
    <xs:anyAttribute namespace='##other' processContents='lax' />
  </xs:complexType>
</xs:element>

and remove the following:

<!--
Ideally, the type of the MetadataReference would have been
the union of wsa04:EndpointReferenceType and
wsa10:EndpointReferenceType but unfortunately xs:union only
works for simple types. As a result, we have to define
the mex:MetadataReference using xs:any.
-->
<xs:element name='MetadataReference'>
  <xs:complexType>
    <xs:sequence>
      <xs:any minOccurs='1' maxOccurs='unbounded'
              processContents='lax' namespace='##other' />
    </xs:sequence>
  </xs:complexType>
</xs:element>
Comment 2 Robert Freund 2009-01-27 06:14:53 UTC
Resolves 2009-01-20 to resolve with Comment #1