RE: [ebxml-msg] Issue 74: foreign namespace attributes

From
David Fischer <>
Date
2002-02-13T16:43:02+00:00
ID
Thread
RE: [ebxml-msg] Issue 74: foreign namespace attributes
Arvola,

 

Allowing foreign attributes is not a change.  The statement/bullet 
"Any other namespace-qualified 
attribute MAY be present" is in v1.0 under the Reference element, section 
8.11.3.  The v1.0 schema does not support this although in v1.0, the schema 
is non-normative (as it should be in v2.0 -- I have never seen a specification 
where code examples took precedence over the words???).  In v1.0, the 
schema is an example.

 

You solution of:

 

   <anyAttribute namespace="##any" 
processContents="lax"/>

 

is probably correct.

 

Regards,

 

David.

  
-----Original Message-----
From: Arvola Chan 
  [mailto:]
Sent: Tuesday, February 12, 2002 7:26 
  PM
To: 
Subject: [ebxml-msg] 
  Issue 74: foreign namespace attributes

  
I agree with David's addition of the anyAttribute construct 
  back to the headerExtension.grp and bodyExtension.grp attribute groups in 
  "Version 2.0 rev A". The namespace however is not quite correct. It should be 
  changed from

  
 

  
<anyAttribute 
  namespace="http://www.w3.org/2000/10/XMLSchema-instance" 
  processContents="lax"/>

  
 

  
to

  
 

  
<anyAttribute 
  namespace="http://www.w3.org/2001/XMLSchema-instance" 
  processContents="lax"/>

  
 

  
to correspond to the W3C Recommended verson of XML Schema. 
  I think the main purpose of this wildcard attribute is to 
  allow for the specification of an xsi:schemaLocation attribute for the foreign 
  namespace qualified wildcard elements that occur under a given ebXML SOAP 
  Header or SOAP Body extension element.

  
 

  
I am not sure about the <anyAttribute 
  processContents="lax"> definition under the Reference element. It is an 
  attempt to make the schema consistent with section 3.2.1 (Reference Element) 
  section in the spec which states: "Any other namespace-qualified attribute MAY 
  be present. A Receiving MSH MAY choose to ignore any foreign namespace 
  attributes other than those defined above."

  
 

  
Such wildcard attributes without any namespace restriction 
  has never been used in any previous version of the ebMS schema. I think the 
  statement in section 3.2.1 allowing such wildcard attributes constitutes a 
  change that may have never been agreed by the team.

  
 

  
I am attaching some communications I have had with David 
  earlier.

  
 

  
-Arvola

  
 

From: "Arvola Chan" <>

To: "David Fischer" <>

Date: Tue, 12 Feb 2002 10:04:06 -0600

David:

 

Sorry for the delayed response. I was away from the office 
yesterday afternoon.

 

Instead of what we used to have in 
draft-msg-header-00.xsd:

 

   <anyAttribute 
namespace="http://www.w3.org/2001/XMLSchema-instance" 
processContents="lax"/>

 

we can use something like

 

   <anyAttribute namespace="##any" 
processContents="lax"/>

 

Please note the following from http://www.w3.org/TR/xmlschema-0:

 

In contrast to an any element, 
anyAttribute 
cannot constrain the number of attributes that may appear in an 
element.

 

Regards,

-Arvola

  
-----Original Message-----
From: 
  David Fischer <>
To: 
  Arvola Chan <>
Date: 
  Monday, February 11, 2002 2:35 PM
Subject: RE: Foreign NS 
  qualified Attributes.

  
How do we add anyAttribute to the Reference element as specified in 
  3.2.1?

  
 

  
David.

  
    
-----Original Message-----
From: Arvola Chan 
    [mailto:]
Sent: Monday, February 11, 2002 2:14 
    PM
To: David Fischer
Subject: Re: Foreign NS qualified 
    Attributes.

    
David:

    
 

    

    
This is directly related to issue #74 raised by Doug. Why 
    don't we discuss this on the  
    alias and try to get it resolved at next week's 
CC?

    
 

    
Regards,

    
-Arvola

    
      
-----Original Message-----
From: 
      David Fischer <>
To: 
      Arvola Chan <>
Date: 
      Monday, February 11, 2002 9:57 AM
Subject: RE: Foreign NS 
      qualified Attributes.

      
Oh, are you saying this limits the wildcard 
      attributes to (nil, type, schemaLocation, noNamespaceSchemaLocation) 
      rather than any namespace qualified attribute?  I didn't understand 
      that.  Yes, I see why this might be too limiting.  
      

      
 

      
This is certainly not what was meant by the 
      bullet in 3.2.1.  As I remember the original 
      intent, we wanted the spec to be fully extensible on both elements and 
      attributes.  

      
 

      
Regards,

      
 

      
David.

      
        
-----Original Message-----
From: Arvola Chan 
        [mailto:]
Sent: Monday, February 11, 2002 
        10:43 AM
To: David Fischer
Subject: Re: Foreign NS 
        qualified Attributes.

        
David:

        
 

        
The Manifest element was defined as follows in 
        draft-msg-header-00.xsd:

        
 

        
 <!-- MANIFEST -->
 <element 
        name="Manifest">
  <complexType>
   <sequence>
    <element 
        ref="tns:Reference" 
        maxOccurs="unbounded"/>
    <any 
        namespace="##other" processContents="lax" minOccurs="0" 
        maxOccurs="unbounded"/>
   </sequence>
   <attribute 
        ref="tns:id"/>
   <attribute 
        ref="tns:version"/>
   <anyAttribute 
        namespace="http://www.w3.org/2001/XMLSchema-instance" 
        processContents="lax"/>
  </complexType>
 </element>

        
 

        
Please notice that the namespace for the wildcard 
        attribute was restricted to "http://www.w3.org/2001/XMLSchema-instance" 
        

        
 

        
It seems that the original intent (not explicitly 
        stated in the specification) for having this attribute in the Reference 
        element is because there is a wildcard sub-element under Reference and 
        there is a potential need to specify a value for the xsi:schemaLocation 
        attribute for the corresponding namespace. The same pattern also applied 
        to the MessageHeader element originally, which had both a wildcard 
        sub-element and a wildcard attribute restricted to the "http://www.w3.org/2001/XMLSchema-instance" 
        namespace. (The current spec does not mention about any wildcard 
        attribute being allowed under MessageHeader.)

        
 

        
Doug pointed out that the xsi:schemaLocation could be 
        set at the soap:Envelope, soap:Header levels. However, I now think that 
        there may be a restriction that xsi:schemaLocation can occur only once 
        in each of soap:Envelope and soap:Header (because attributes cannot be 
        repeating), and we already have to specify xsi:schemaLocation for the 
        soap and eb namespaces.

        
 

        
Therefore, I think the correct fix may be to both 
        update the spec and the schema to indicate that wherever we have a 
        wildcard sub-element, there should also be an accompanying wildcard 
        attribute with namespace restricted to "http://www.w3.org/2001/XMLSchema-instance". 
        The sole purpose of the wildcard attribute is to specify a schema 
        location for the corresponding wildcard element. In practice, I think 
        the recipient of an ebXML message that contain foreign namespaces should 
        attempt to resolve those namespaces even if no schema location hints are 
        provided in the message itself. Therefore, it is not clear to me if the 
        schema hints are absolutely necessary.

        
 

        
Regards,

        
-Arvola

        
          
-----Original 
          Message-----
From: David Fischer <>
To: 
          Arvola Chan <>
Date: 
          Monday, February 11, 2002 6:50 AM
Subject: RE: Foreign 
          NS qualified Attributes.

          
Arvola,

          
 

          
We made what might be a significant change 
          to some implementations, without consulting the group.  We're not 
          supposed to make technical changes without approval.  From 
          the beginning, we said this spec was supposed to be extensible, which 
          is why this was in the spec.  We allow ##wildcards are every 
          element, why not attributes?

          
 

          
The only place I find where this is a 
          *problem* in the spec is the last bullet in section 3.2.1 which says 
          "Any other namespace-qualified attribute MAY be 
          present".  Doug and Chris' have requested for a 
          namespace attribute on Schema -- we could add anyAttribute there 
          as well.

          
 

          
If we make changes to the spec before 
          submitting to OASIS, we should add anyAttribute to the 
          headerExtension.grp and bodyExtension.grp so this will align with 
          v1.0.  We should also add anyAttribute to Reference and, if 
          the group approves, to the Schema element.

          
 

          
Regards,

          
 

          
David.

          
            
-----Original Message-----
From: Arvola Chan 
            [mailto:]
Sent: Sunday, February 10, 2002 
            5:01 PM
To: David Fischer
Subject: Re: Foreign 
            NS qualified Attributes.

            
David:

            
 

            
I did a search in the Draft Version 2.0 
            Message Service Specification but could not find any mention of 
            wildcard attributes being allowed in the MessageHeader and the 
            Manifest sections. In other words, I don't see any significant 
            discrepancy between the specification in the schema. I did notice 
            there is one occurrence of xsi:schemaLocation in one of the examples 
            related to the eb:MessageHeader element on line 1924 which 
            would not pass schema validation. In that particular example, the 
            same xsi:schemaLocation attribute is also indicated on the 
            SOAP:Header element so it is really unnecessary to have the same 
            attribute set on the child eb:MessageHeader 
            element. 

            
 

            
If you have determined that there is a 
            real need for the wildcard attributes under MessageHeader and 
            Manifest, then I think an issue should be added to the issue list 
            and discussed during the issue resolution process.

            
 

            
Regards,

            
-Arvola

            
              
----- Original Message ----- 

              
From: 
              David Fischer 

              
To: Arvola 
              Chan 

              
Sent: Friday, February 08, 
              2002 10:04 PM

              
Subject: RE: Foreign NS 
              qualified Attributes.

              

              
We shouldn't have made this kind of a 
              change without group approval.  I'm not sure what to do about 
              it now.

              
 

              
David.

              
                
-----Original Message-----
From: 
                Arvola Chan [mailto:]
Sent: Friday, 
                February 08, 2002 5:01 PM
To: David 
                Fischer
Subject: Re: Foreign NS qualified 
                Attributes.

                
David:

                
 

                
The removal of the two "anyAttribute" lines 
                from the schema was recommended by Doug. Please see

                
 

                
http://lists.oasis-open.org/archives/ebxml-msg/200111/msg00324.html

                
 

                
This change was incorporated into 
                draft-msg-header-05.xsd.

                
 

                
Here are the relevant excerpts from Doug's 
                message:

                
 

                

                
Including wildcard 
                attributes in the Schema Instance namespace on the Manifest 
                and MessageHeader would seem to support adding the 
                xsi:schemaLocation attribute to those elements.  However, 
                we've defined 9 SOAP extensions and the other 7 don't allow 
                these attributes.  The simplest thing would be to recommend 
                use of xsi:schemaLocation only on the parent soap:Envelope, 
                soap:Header and soap:Body elements.  Next in complication 
                would be allowing xsi:schemaLocation only for all our extension 
                elements and documenting that option in the specification.  
                I'd prefer to limit future extensibility to the 
                wildcard elements we've already documented and should add 
                to a few more elements. 
                
                
64 d [Remove the two 
                anyAttribute cases.] 

                
 

                
-Arvola

                
                  
-----Original 
                  Message-----
From: David Fischer <>
To: 
                  Arvola Chan <>
Date: 
                  Friday, February 08, 2002 12:04 PM
Subject: 
                  Foreign NS qualified Attributes.

                  
I notice that all the anyAttribute lines have been 
                  removed from the schema?  When and why did that 
                  happen?  The spec still allows this on the Manifest 
                  element.  We used to allow it on 
                  every element?

                  
 

                  
What happened?  Do you 
                  remember?

                  
 

                  
Regards,

                  
 

                  
David.