You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by xuliujuan <xu...@hotmail.com> on 2004/02/02 11:18:17 UTC

axis_1.1 does not supports substitutionGroup feature of XML schema correctly

----- Original Message ----- 
From: xuliujuan 
To: axis-dev@ws.apache.org 
Sent: Monday, February 02, 2004 6:00 PM
Subject: axis_1.1 does not supports substitutionGroup feature of XML schema correctly


Hi all,
I found axis_1.1  does not supports substitutionGroup feature of XML schema correctly.While I using substitutionGroup ,it does
not work .

in Generic schema definition is:
...
<xs:complexType name="AbstractCreateAttributeType" abstract="true"/>
<xs:element name="CreateMODefinition" type="AbstractCreateAttributeType" abstract="true"/>
...

 

substutionGroup element schema definition is:
...
<xs:element name="CreateCSAttributes" substitutionGroup="cai3g:CreateMODefinition">
  <xs:annotation>
   <xs:documentation>The attributes for creating customer segment</xs:documentation>
  </xs:annotation>
  <xs:complexType>
   <xs:complexContent>
    <xs:extension base="cai3g:AbstractCreateAttributeType">
     <xs:sequence>
      <xs:element name="cdsCSId" type="xs:unsignedLong"/>
      <xs:element name="cdsCSName" type="xs:string" minOccurs="0"/>
      <xs:element name="cdsCSDescription" type="xs:string" minOccurs="0"/>
      <xs:element name="cdsCSServicePackageId" minOccurs="0" maxOccurs="unbounded">
       <xs:complexType>
        <xs:sequence>
         <xs:element name="cdsSPId" type="xs:unsignedLong"/>
        </xs:sequence>
        <xs:attribute name="cdsSPId" type="xs:unsignedLong" use="required"/>
       </xs:complexType>
       <xs:key name="CreateServicePackageId" id="CAI3GKeyCreateServicePackageId">
        <xs:selector xpath="."/>
        <xs:field xpath="@cdsSPId"/>
       </xs:key>
       <xs:keyref name="CSPIdRef" refer="cpm:CreateServicePackageId">
        <xs:selector xpath="."/>
        <xs:field xpath="cpm:cdsSPId"/>
       </xs:keyref>
      </xs:element>
     </xs:sequence>
     <xs:attribute name="cdsCSId" type="xs:unsignedLong" use="required"/>
    </xs:extension>
   </xs:complexContent>
  </xs:complexType>
  <xs:key name="CreateCSMsg" id="CAI3GKeyCreateCSMsg">
   <xs:selector xpath="."/>
   <xs:field xpath="@cdsCSId"/>
  </xs:key>
  <xs:keyref name="CCSMsgRef" refer="cpm:CreateCSMsg">
   <xs:selector xpath="."/>
   <xs:field xpath="cpm:cdsCSId"/>
  </xs:keyref>
 </xs:element>
...

The actual xml we got:

 

                   <CreateMODefinition>
                     <cdsCSId>8888001</cdsCSId>
                     <cdsCSName>PreviligeCS</cdsCSName>
                     <cdsCSDescription> Previlige Customers</cdsCSDescription>
                     <cdsCSServicePackageId>
                          <cdsSPId>8888001</cdsSPId>
                     <cdsCSServicePackageId>
                   </CreateMODefinition>
           

 

The expected xml should be like below in SubstituionGroup case:

 
                   <CreateCSAttributes cdsCSId="8888001">
                     <cdsCSId>8888001</cdsCSId>
                     <cdsCSName>PreviligeCS</cdsCSName>
                     <cdsCSDescription> Previlige Customers</cdsCSDescription>
                     <cdsCSServicePackageId>
                          <cdsSPId>8888001</cdsSPId>
                     <cdsCSServicePackageId>
                   </CreateCSAttributes>
           


axis_1.1  does not supports substitutionGroup feature of XML schema correctly
 
in Generic schema definition is:
...
<xs:complexType name="AbstractCreateAttributeType" abstract="true"/>
<xs:element name="CreateMODefinition" type="AbstractCreateAttributeType" abstract="true"/>
...

 

substutionGroup element schema definition is:
...
<xs:element name="CreateCSAttributes" substitutionGroup="cai3g:CreateMODefinition">
  <xs:annotation>
   <xs:documentation>The attributes for creating customer segment</xs:documentation>
  </xs:annotation>
  <xs:complexType>
   <xs:complexContent>
    <xs:extension base="cai3g:AbstractCreateAttributeType">
     <xs:sequence>
      <xs:element name="cdsCSId" type="xs:unsignedLong"/>
      <xs:element name="cdsCSName" type="xs:string" minOccurs="0"/>
      <xs:element name="cdsCSDescription" type="xs:string" minOccurs="0"/>
      <xs:element name="cdsCSServicePackageId" minOccurs="0" maxOccurs="unbounded">
       <xs:complexType>
        <xs:sequence>
         <xs:element name="cdsSPId" type="xs:unsignedLong"/>
        </xs:sequence>
        <xs:attribute name="cdsSPId" type="xs:unsignedLong" use="required"/>
       </xs:complexType>
       <xs:key name="CreateServicePackageId" id="CAI3GKeyCreateServicePackageId">
        <xs:selector xpath="."/>
        <xs:field xpath="@cdsSPId"/>
       </xs:key>
       <xs:keyref name="CSPIdRef" refer="cpm:CreateServicePackageId">
        <xs:selector xpath="."/>
        <xs:field xpath="cpm:cdsSPId"/>
       </xs:keyref>
      </xs:element>
     </xs:sequence>
     <xs:attribute name="cdsCSId" type="xs:unsignedLong" use="required"/>
    </xs:extension>
   </xs:complexContent>
  </xs:complexType>
  <xs:key name="CreateCSMsg" id="CAI3GKeyCreateCSMsg">
   <xs:selector xpath="."/>
   <xs:field xpath="@cdsCSId"/>
  </xs:key>
  <xs:keyref name="CCSMsgRef" refer="cpm:CreateCSMsg">
   <xs:selector xpath="."/>
   <xs:field xpath="cpm:cdsCSId"/>
  </xs:keyref>
 </xs:element>
...

The actual xml we got:

 

                   <CreateMODefinition>
                     <cdsCSId>8888001</cdsCSId>
                     <cdsCSName>PreviligeCS</cdsCSName>
                     <cdsCSDescription> Previlige Customers</cdsCSDescription>
                     <cdsCSServicePackageId>
                          <cdsSPId>8888001</cdsSPId>
                     <cdsCSServicePackageId>
                   </CreateMODefinition>
           

 

The expected xml should be like below in SubstituionGroup case:

 
                   <CreateCSAttributes cdsCSId="8888001">
                     <cdsCSId>8888001</cdsCSId>
                     <cdsCSName>PreviligeCS</cdsCSName>
                     <cdsCSDescription> Previlige Customers</cdsCSDescription>
                     <cdsCSServicePackageId>
                          <cdsSPId>8888001</cdsSPId>
                     <cdsCSServicePackageId>
                   </CreateCSAttributes>

 But I did not know how to solve the problem.
 Can someone help me to solve it?
 Thanks a lot .
 
 Best wishes.
/Liujuan