You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jaxme-dev@ws.apache.org by jo...@apache.org on 2005/08/04 23:33:44 UTC

cvs commit: ws-jaxme/src/xs/org/apache/ws/jaxme/xs/junit JiraTest.java

jochen      2005/08/04 14:33:44

  Modified:    src/xs/org/apache/ws/jaxme/xs/impl Tag: JAXME-28
                        XSTypeImpl.java
               .        Tag: JAXME-28 status.xml
               src/xs/org/apache/ws/jaxme/xs/junit Tag: JAXME-28
                        JiraTest.java
  Log:
  If a complex type was created by referencing a group, then
  the referencing particles maxOccurs and minOccurs values haven't
  been inherited.
  PR: JAXME-63
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.18.2.1  +5 -2      ws-jaxme/src/xs/org/apache/ws/jaxme/xs/impl/XSTypeImpl.java
  
  Index: XSTypeImpl.java
  ===================================================================
  RCS file: /home/cvs/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/impl/XSTypeImpl.java,v
  retrieving revision 1.18
  retrieving revision 1.18.2.1
  diff -u -r1.18 -r1.18.2.1
  --- XSTypeImpl.java	19 May 2005 20:30:33 -0000	1.18
  +++ XSTypeImpl.java	4 Aug 2005 21:33:44 -0000	1.18.2.1
  @@ -455,10 +455,13 @@
     public class XSGroupComplexTypeImpl extends XSBasicComplexTypeImpl {
       private final XSGroup group;
   
  -    public XSGroupComplexTypeImpl(XSType pOwner, XsTComplexType pType, XSGroup pGroup) throws SAXException {
  +    public XSGroupComplexTypeImpl(XSType pOwner, XsTComplexType pType, XSGroup pGroup,
  +    							  XsTGroupRef pRef) throws SAXException {
         super(pOwner, pType);
         group = pGroup;
         XSParticleImpl particle = new XSParticleImpl(group);
  +      particle.setMinOccurs(pRef.getMinOccurs());
  +      particle.setMaxOccurs(pRef.getMaxOccurs());
         if (group.getParticles().length == 0) {
           setParticle(XsComplexContentType.EMPTY, particle);
         } else {
  @@ -711,7 +714,7 @@
                 throw new LocSAXException("Unknown group: " + myName, getLocator());
               }
               group.validate();
  -            myComplexType = new XSGroupComplexTypeImpl(this, myXsTComplexType, group);
  +            myComplexType = new XSGroupComplexTypeImpl(this, myXsTComplexType, group, groupRef);
             } else {
               throw new IllegalStateException("Invalid particle: " + particle.getClass().getName());
             }
  
  
  
  No                   revision
  No                   revision
  1.61.2.6  +5 -0      ws-jaxme/status.xml
  
  Index: status.xml
  ===================================================================
  RCS file: /home/cvs/ws-jaxme/status.xml,v
  retrieving revision 1.61.2.5
  retrieving revision 1.61.2.6
  diff -u -r1.61.2.5 -r1.61.2.6
  --- status.xml	30 Jul 2005 21:12:00 -0000	1.61.2.5
  +++ status.xml	4 Aug 2005 21:33:44 -0000	1.61.2.6
  @@ -50,6 +50,11 @@
           void and boolean when checking for "isFoo" vs. "getFoo".
   		(Frederic Ahring, fahring at de.ibm.com)
         </action>
  +      <action dev="JW" type="fix" context="xs">
  +        If a complex type was created by referencing a group, then
  +        the referencing particles maxOccurs and minOccurs values haven't
  +        been inherited. (JAXME-63)
  +      </action>
   	</release>
   	<release version="0.5beta" date="2005-Jul-13">
   	  <action dev="JW" type="enhancement" context="generator">
  
  
  
  No                   revision
  No                   revision
  1.4.4.1   +34 -0     ws-jaxme/src/xs/org/apache/ws/jaxme/xs/junit/JiraTest.java
  
  Index: JiraTest.java
  ===================================================================
  RCS file: /home/cvs/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/junit/JiraTest.java,v
  retrieving revision 1.4
  retrieving revision 1.4.4.1
  diff -u -r1.4 -r1.4.4.1
  --- JiraTest.java	4 Dec 2004 23:22:33 -0000	1.4
  +++ JiraTest.java	4 Aug 2005 21:33:44 -0000	1.4.4.1
  @@ -13,6 +13,7 @@
   import org.apache.ws.jaxme.xs.XSElement;
   import org.apache.ws.jaxme.xs.XSEnumeration;
   import org.apache.ws.jaxme.xs.XSParser;
  +import org.apache.ws.jaxme.xs.XSParticle;
   import org.apache.ws.jaxme.xs.XSSchema;
   import org.apache.ws.jaxme.xs.XSSimpleContentType;
   import org.apache.ws.jaxme.xs.XSSimpleType;
  @@ -170,4 +171,37 @@
           assertEquals(XSID.getInstance(), idAttr.getType());
           assertFalse(idRef.isOptional());
       }
  +
  +	/** Test for <a href="http://issues.apache.org/jira/browse/JAXME-63">JAXME-63</a>.
  +	 */
  +	public void testJAXME63() throws Exception {
  +		final String xml =
  +			"<xs:schema\n"
  +			+ "    xmlns:xs='http://www.w3.org/2001/XMLSchema'\n"
  +			+ "    elementFormDefault='qualified'>\n"
  +			+ "  <xs:group name='params'>\n"
  +			+ "    <xs:choice>\n"
  +			+ "      <xs:element name='string' type='xs:string'/>\n"
  +			+ "      <xs:element name='int' type='xs:int'/>\n"
  +			+ "      <xs:element name='boolean' type='xs:boolean'/>\n"
  +			+ "    </xs:choice>\n"
  +			+ "  </xs:group>\n"
  +			+ "  <xs:element name='call'>\n"
  +			+ "    <xs:complexType>\n"
  +			+ "      <xs:group ref='params' maxOccurs='unbounded'/>\n"
  +			+ "    </xs:complexType>\n"
  +			+ "  </xs:element>\n"
  +			+ "</xs:schema>";
  +        XSSchema schema = parse(xml, "jaxme63.xsd");
  +        XSElement[] elements = schema.getElements();
  +        assertEquals(1, elements.length);
  +        XSElement call = elements[0];
  +        assertEquals(new XsQName((String) null, "call"), call.getName());
  +        XSComplexType type = assertComplexType(call.getType());
  +        XSParticle particle = assertComplexContent(type);
  +        assertTrue(particle.isGroup());
  +        assertChoice(particle.getGroup());
  +        assertEquals(1, particle.getMinOccurs());
  +        assertEquals(-1, particle.getMaxOccurs());
  +	}
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jaxme-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: jaxme-dev-help@ws.apache.org