You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by gd...@apache.org on 2005/09/18 08:09:55 UTC

svn commit: r289897 - in /webservices/commons/trunk/XmlSchema: ./ src/org/apache/axis/xsd/enum/ src/org/apache/axis/xsd/xml/schema/ test-resources/ test/ test/tests/

Author: gdaniels
Date: Sat Sep 17 23:09:48 2005
New Revision: 289897

URL: http://svn.apache.org/viewcvs?rev=289897&view=rev
Log:
* Rough in test framework

* Fix problem with element forms, change bizarre capitalization of enum values for form

* Add a couple of tests

Added:
    webservices/commons/trunk/XmlSchema/test/
    webservices/commons/trunk/XmlSchema/test-resources/
    webservices/commons/trunk/XmlSchema/test-resources/elementForm.xsd
    webservices/commons/trunk/XmlSchema/test-resources/forwardRef.xsd
    webservices/commons/trunk/XmlSchema/test/tests/
    webservices/commons/trunk/XmlSchema/test/tests/TestElementForm.java
    webservices/commons/trunk/XmlSchema/test/tests/TestForwardRefs.java
Modified:
    webservices/commons/trunk/XmlSchema/build.xml
    webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/enum/Enum.java
    webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/SchemaBuilder.java
    webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchema.java
    webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaAttribute.java
    webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaElement.java
    webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaForm.java
    webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaSerializer.java

Modified: webservices/commons/trunk/XmlSchema/build.xml
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/build.xml?rev=289897&r1=289896&r2=289897&view=diff
==============================================================================
--- webservices/commons/trunk/XmlSchema/build.xml (original)
+++ webservices/commons/trunk/XmlSchema/build.xml Sat Sep 17 23:09:48 2005
@@ -11,12 +11,20 @@
 	<property name="dist.dir" value="${build.dir}/dist"/>
 	<property name="dist.zip" value="${project.name}.zip"/>
 	<property name="srcdist.zip" value="${project.name}-src.zip"/>
+    <property name="test.dir" value="${basedir}/test"/>
+    <property name="test_classes.dir" value="${build.dir}/test-classes"/>
+    <property name="test_reports.dir" value="${build.dir}/test-reports"/>
 
     <target name="prepare">
 		<mkdir dir="${build_classes.dir}"/>
 		<mkdir dir="${build_lib.dir}"/>
     </target>
 
+    <target name="prepare-tests">
+        <mkdir dir="${test_classes.dir}"/>
+        <mkdir dir="${test_reports.dir}"/>
+    </target>
+
     <target name="compile" depends="prepare" description="compiles the src and puts it in build/classes">
 		<javac srcdir="${src.dir}" destdir="${build_classes.dir}" debug="true" 
 		       deprecation="true">
@@ -24,7 +32,29 @@
 	    </javac>
     </target>
 
-    <target name="jar" depends="compile" description="compiles the src and creates XmlSchema.jar in  build/lib">
+    <target name="compile-tests" depends="prepare-tests, compile" description="compiles the tests and puts them in build/test-classes">
+		<javac srcdir="${test.dir}" destdir="${test_classes.dir}" debug="true"
+		       deprecation="true">
+        	<include name="**/*.java" />
+	    </javac>
+    </target>
+
+    <target name="test" depends="compile-tests" description="Runs the unit tests">
+        <junit printsummary="yes" haltonfailure="yes">
+            <classpath>
+                <pathelement location="${build_classes.dir}"/>
+                <pathelement location="${test_classes.dir}"/>
+            </classpath>
+
+            <batchtest todir="${test_reports.dir}">
+                <fileset dir="${test.dir}">
+                    <include name="**/*Test*.java"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+
+    <target name="jar" depends="compile, test" description="compiles the src and creates XmlSchema.jar in  build/lib">
         <jar jarfile="${build_lib.dir}/${output.jar}" compress="true" basedir="${build_classes.dir}"/>
     </target>
 

Modified: webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/enum/Enum.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/enum/Enum.java?rev=289897&r1=289896&r2=289897&view=diff
==============================================================================
--- webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/enum/Enum.java (original)
+++ webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/enum/Enum.java Sat Sep 17 23:09:48 2005
@@ -92,7 +92,7 @@
                     break;
                 }
                 if (i == values.length - 1)
-                    throw new EnumValueException("Bad Enumeration value");
+                    throw new EnumValueException("Bad Enumeration value '" + value + "'");
             }
         }
     }

Modified: webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/SchemaBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/SchemaBuilder.java?rev=289897&r1=289896&r2=289897&view=diff
==============================================================================
--- webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/SchemaBuilder.java (original)
+++ webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/SchemaBuilder.java Sat Sep 17 23:09:48 2005
@@ -88,7 +88,7 @@
                 schema.items.add(type);
                 collection.resolveType(type.getQName(), type);
             } else if (el.getLocalName().equals("element")) {
-                XmlSchemaElement element = handleElement(schema, el, schemaEl);
+                XmlSchemaElement element = handleElement(schema, el, schemaEl, true);
                 if (element.qualifiedName != null)
                     schema.elements.collection.put(element.qualifiedName, element);
                 else if (element.refName != null)
@@ -951,7 +951,7 @@
                 sequence.items.add(seq);
             } else if (el.getLocalName().equals("element")) {
                 XmlSchemaElement element = handleElement(schema, el,
-                                                         schemaEl);
+                                                         schemaEl, false);
                 sequence.items.add(element);
             } else if (el.getLocalName().equals("group")) {
                 XmlSchemaGroupRef group = handleGroupRef(schema, el,
@@ -1021,7 +1021,7 @@
                 choice.items.add(seq);
             } else if (el.getLocalName().equals("element")) {
                 XmlSchemaElement element =
-                        handleElement(schema, el, schemaEl);
+                        handleElement(schema, el, schemaEl, false);
                 choice.items.add(element);
             } else if (el.getLocalName().equals("group")) {
                 XmlSchemaGroupRef group =
@@ -1051,7 +1051,7 @@
              el != null; el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) {
 
             if (el.getLocalName().equals("element")) {
-                XmlSchemaElement element = handleElement(schema, el, schemaEl);
+                XmlSchemaElement element = handleElement(schema, el, schemaEl, false);
                 all.items.add(element);
             } else if (el.getLocalName().equals("annotation")) {
                 XmlSchemaAnnotation annotation = handleAnnotation(el);
@@ -1361,8 +1361,10 @@
      * ********
      * handle_complex_content_restriction
      */
-    XmlSchemaElement handleElement(XmlSchema schema, Element el,
-                                   Element schemaEl) {
+    XmlSchemaElement handleElement(XmlSchema schema,
+                                   Element el,
+                                   Element schemaEl,
+                                   boolean isGlobal) {
 
         XmlSchemaElement element = new XmlSchemaElement();
 
@@ -1372,8 +1374,16 @@
         //                String namespace = (schema.targetNamespace==null)?
         //                                      "" : schema.targetNamespace;
 
-        element.qualifiedName = new QName(schema.targetNamespace,
-                                          element.name);
+        boolean isQualified = schema.getElementFormDefault().getValue().equals(XmlSchemaForm.QUALIFIED);
+        if (el.hasAttribute("form")) {
+            String formDef = el.getAttribute("form");
+            element.form = new XmlSchemaForm(formDef);
+            isQualified = formDef.equals(XmlSchemaForm.QUALIFIED);
+        }
+
+        String ns = isQualified || isGlobal ? schema.targetNamespace :
+                                                     null;
+        element.qualifiedName = new QName(ns, element.name);
 
         Element annotationEl =
                 XDOMUtil.getFirstChildElementNS(el,
@@ -1502,10 +1512,6 @@
         if (el.hasAttribute("fixed"))
             element.fixedValue = el.getAttribute("fixed");
 
-        if (el.hasAttribute("form")) {
-            String formDef = getEnumString(el, "form");
-            element.form = new XmlSchemaForm(formDef);
-        }
         if (el.hasAttribute("id"))
             element.id = el.getAttribute("id");
 
@@ -1768,7 +1774,7 @@
             char c = Character.toUpperCase(value.charAt(0));
             return new XmlSchemaForm(c + value.substring(1));
         } else
-            return new XmlSchemaForm("Unqualified");
+            return new XmlSchemaForm("unqualified");
     }
 
     //Check value entered by user and change according to .net spec,

Modified: webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchema.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchema.java?rev=289897&r1=289896&r2=289897&view=diff
==============================================================================
--- webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchema.java (original)
+++ webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchema.java Sat Sep 17 23:09:48 2005
@@ -117,8 +117,8 @@
      */
     public XmlSchema(XmlSchemaCollection parent) {
         this.parent = parent;
-        attributeFormDefault = new XmlSchemaForm("Qualified");
-        elementFormDefault = new XmlSchemaForm("Qualified");
+        attributeFormDefault = new XmlSchemaForm(XmlSchemaForm.UNQUALIFIED);
+        elementFormDefault = new XmlSchemaForm(XmlSchemaForm.UNQUALIFIED);
         blockDefault = new XmlSchemaDerivationMethod("None");
         finalDefault = new XmlSchemaDerivationMethod("None");
         items = new XmlSchemaObjectCollection();

Modified: webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaAttribute.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaAttribute.java?rev=289897&r1=289896&r2=289897&view=diff
==============================================================================
--- webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaAttribute.java (original)
+++ webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaAttribute.java Sat Sep 17 23:09:48 2005
@@ -85,7 +85,7 @@
      * Creates new XmlSchemaAttribute
      */
     public XmlSchemaAttribute() {
-        form = new XmlSchemaForm("None");
+        form = new XmlSchemaForm(XmlSchemaForm.NONE);
         use = new XmlSchemaUse("None");
     }
 

Modified: webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaElement.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaElement.java?rev=289897&r1=289896&r2=289897&view=diff
==============================================================================
--- webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaElement.java (original)
+++ webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaElement.java Sat Sep 17 23:09:48 2005
@@ -137,7 +137,7 @@
         constraints = new XmlSchemaObjectCollection();
         isAbstract = false;
         isNillable = false;
-        form = new XmlSchemaForm("None");
+        form = new XmlSchemaForm(XmlSchemaForm.NONE);
         finalDerivation = new XmlSchemaDerivationMethod("None");
         block = new XmlSchemaDerivationMethod("None");
     }

Modified: webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaForm.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaForm.java?rev=289897&r1=289896&r2=289897&view=diff
==============================================================================
--- webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaForm.java (original)
+++ webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaForm.java Sat Sep 17 23:09:48 2005
@@ -75,7 +75,11 @@
 
 public class XmlSchemaForm extends Enum {
 
-    static String[] members = new String[]{"None", "Qualified", "Unqualified"};
+    public static final String QUALIFIED = "qualified";
+    public static final String UNQUALIFIED = "unqualified";
+    public static final String NONE = "none";
+    
+    static String[] members = new String[]{NONE, QUALIFIED, UNQUALIFIED};
 
     /**
      * Creates new XmlSchemaForm

Modified: webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaSerializer.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaSerializer.java?rev=289897&r1=289896&r2=289897&view=diff
==============================================================================
--- webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaSerializer.java (original)
+++ webservices/commons/trunk/XmlSchema/src/org/apache/axis/xsd/xml/schema/XmlSchemaSerializer.java Sat Sep 17 23:09:48 2005
@@ -168,7 +168,7 @@
         if (schemaObj.attributeFormDefault != null) {
             String formQualified = schemaObj.attributeFormDefault.getValue();
 
-            if (!formQualified.equals("None"))
+            if (!formQualified.equals(XmlSchemaForm.NONE))
                 serializedSchema.setAttributeNS(XmlSchema.SCHEMA_NS,
                                                 "attributeFormDefault", convertString(formQualified));
         }
@@ -176,7 +176,7 @@
         if (schemaObj.elementFormDefault != null) {
             String formQualified = schemaObj.elementFormDefault.getValue();
 
-            if (!formQualified.equals("None"))
+            if (!formQualified.equals(XmlSchemaForm.NONE))
                 serializedSchema.setAttributeNS(XmlSchema.SCHEMA_NS,
                                                 "elementFormDefault", convertString(formQualified));
         }
@@ -570,7 +570,7 @@
                                         elementObj.fixedValue);
 
         String formDef = elementObj.form.getValue();
-        if (!formDef.equals("None")) {
+        if (!formDef.equals(XmlSchemaForm.NONE)) {
             formDef = convertString(formDef);
             serializedEl.setAttributeNS(XmlSchema.SCHEMA_NS, "form", formDef);
         }
@@ -1082,7 +1082,7 @@
                                      attributeObj.fixedValue);
 
         String formType = attributeObj.form.getValue();
-        if (!formType.equals("None")) {
+        if (!formType.equals(XmlSchemaForm.NONE)) {
             formType = convertString(formType);
             attribute.setAttributeNS(XmlSchema.SCHEMA_NS, "form", formType);
         }

Added: webservices/commons/trunk/XmlSchema/test-resources/elementForm.xsd
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/test-resources/elementForm.xsd?rev=289897&view=auto
==============================================================================
--- webservices/commons/trunk/XmlSchema/test-resources/elementForm.xsd (added)
+++ webservices/commons/trunk/XmlSchema/test-resources/elementForm.xsd Sat Sep 17 23:09:48 2005
@@ -0,0 +1,19 @@
+<schema
+    xmlns="http://www.w3.org/2001/XMLSchema"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:tns="http://unqualified-elements.example.com"
+    targetNamespace="http://unqualified-elements.example.com">
+
+    <element name="unQualifiedLocals">
+        <complexType>
+            <sequence>
+                <element name="unqualified" type="xsd:string"/>
+                <element name="qualified" form="qualified" type="xsd:int"/>
+<!--                <element ref="tns:global"/>-->
+            </sequence>
+        </complexType>
+    </element>
+
+    <element name="global" type="xsd:int"/>
+
+</schema>

Added: webservices/commons/trunk/XmlSchema/test-resources/forwardRef.xsd
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/test-resources/forwardRef.xsd?rev=289897&view=auto
==============================================================================
--- webservices/commons/trunk/XmlSchema/test-resources/forwardRef.xsd (added)
+++ webservices/commons/trunk/XmlSchema/test-resources/forwardRef.xsd Sat Sep 17 23:09:48 2005
@@ -0,0 +1,62 @@
+<schema
+    xmlns="http://www.w3.org/2001/XMLSchema"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:tns="http://soapinterop.org/types"
+    targetNamespace="http://soapinterop.org/types">
+
+    <element name="attrTest">
+        <complexType>
+            <attribute name="forward" type="xsd:int"/>
+            <sequence>
+                <element name="foo" type="xsd:string"/>
+            </sequence>
+        </complexType>
+    </element>
+
+    <complexType name="Struct">
+        <sequence>
+            <element name="varString" type="xsd:string"/>
+            <element name="varInt" type="xsd:int"/>
+            <element name="varFloat" type="xsd:float"/>
+            <element name="varStruct" type="tns:Struct"/>
+            <element name="varForward" type="tns:Forward"/>
+        </sequence>
+    </complexType>
+
+    <complexType name="Forward">
+        <sequence>
+            <element name="soapStruct" type="tns:Struct"/>
+        </sequence>
+    </complexType>
+
+    <complexType name="BaseStruct">
+        <sequence>
+            <element name="structMessage" type="tns:Struct"/>
+            <element name="shortMessage" type="xsd:short"/>
+        </sequence>
+    </complexType>
+
+    <complexType name="ExtendedStruct">
+        <complexContent>
+            <extension base="tns:BaseStruct">
+                <sequence>
+                    <element name="stringMessage" type="xsd:string"/>
+                    <element name="intMessage" type="xsd:int"/>
+                    <element name="anotherIntMessage" type="xsd:int"/>
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+
+    <complexType name="MoreExtendedStruct">
+        <complexContent>
+            <extension base="tns:ExtendedStruct">
+                <sequence>
+                    <element name="booleanMessage" type="xsd:boolean"/>
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+
+    <element name="foo" type="tns:ExtendedStruct"/>
+</schema>

Added: webservices/commons/trunk/XmlSchema/test/tests/TestElementForm.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/test/tests/TestElementForm.java?rev=289897&view=auto
==============================================================================
--- webservices/commons/trunk/XmlSchema/test/tests/TestElementForm.java (added)
+++ webservices/commons/trunk/XmlSchema/test/tests/TestElementForm.java Sat Sep 17 23:09:48 2005
@@ -0,0 +1,61 @@
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package tests;
+
+import junit.framework.TestCase;
+
+import java.io.InputStream;
+import java.io.FileInputStream;
+import java.util.Iterator;
+
+import org.apache.axis.xsd.xml.schema.XmlSchemaCollection;
+import org.apache.axis.xsd.xml.schema.XmlSchemaElement;
+import org.apache.axis.xsd.xml.schema.XmlSchemaComplexType;
+import org.apache.axis.xsd.xml.schema.XmlSchemaSequence;
+import org.apache.axis.xsd.xml.schema.XmlSchemaObjectCollection;
+
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.namespace.QName;
+
+/**
+ * TestElementForm
+ */
+public class TestElementForm extends TestCase {
+    String NS = "http://unqualified-elements.example.com";
+    QName UNQUAL = new QName(NS, "unQualifiedLocals");
+    private XmlSchemaCollection schema;
+
+    protected void setUp() throws Exception {
+        InputStream is = new FileInputStream("test-resources/elementForm.xsd");
+        schema = new XmlSchemaCollection();
+        schema.read(new StreamSource(is), null);
+    }
+
+    public void testLocalElements() throws Exception {
+        XmlSchemaElement element = schema.getElementByQName(UNQUAL);
+        assertNotNull("Couldn't find unQualifiedLocals element", element);
+        XmlSchemaComplexType type = (XmlSchemaComplexType)element.getSchemaType();
+        XmlSchemaSequence seq = (XmlSchemaSequence)type.getParticle();
+        XmlSchemaObjectCollection items = seq.getItems();
+        XmlSchemaElement subElement;
+        subElement = (XmlSchemaElement)items.getItem(0);
+        QName qname = subElement.getQName();
+        assertEquals("Namespace on unqualified element", "", qname.getNamespaceURI());
+        subElement = (XmlSchemaElement)items.getItem(1);
+        qname = subElement.getQName();
+        assertEquals("Bad namespace on qualified element", NS, qname.getNamespaceURI());
+    }
+}

Added: webservices/commons/trunk/XmlSchema/test/tests/TestForwardRefs.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/XmlSchema/test/tests/TestForwardRefs.java?rev=289897&view=auto
==============================================================================
--- webservices/commons/trunk/XmlSchema/test/tests/TestForwardRefs.java (added)
+++ webservices/commons/trunk/XmlSchema/test/tests/TestForwardRefs.java Sat Sep 17 23:09:48 2005
@@ -0,0 +1,36 @@
+package tests;
+
+import junit.framework.TestCase;
+
+import java.io.InputStream;
+import java.io.FileInputStream;
+
+import org.apache.axis.xsd.xml.schema.XmlSchemaCollection;
+import org.apache.axis.xsd.xml.schema.XmlSchemaElement;
+import org.apache.axis.xsd.xml.schema.XmlSchemaType;
+import org.apache.axis.xsd.xml.schema.XmlSchemaComplexType;
+import org.apache.axis.xsd.xml.schema.XmlSchemaSequence;
+
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.namespace.QName;
+
+/**
+ */
+public class TestForwardRefs extends TestCase {
+    public void testForwardRefs() throws Exception {
+        QName ELEMENT_QNAME = new QName("http://soapinterop.org/types",
+                                        "attrTest");
+        InputStream is = new FileInputStream("test-resources/forwardRef.xsd");
+        XmlSchemaCollection schema = new XmlSchemaCollection();
+        schema.read(new StreamSource(is), null);
+
+        XmlSchemaElement elem = schema.getElementByQName(ELEMENT_QNAME);
+        assertNotNull(elem);
+        XmlSchemaType type = elem.getSchemaType();
+        assertNotNull(type);
+        assertTrue(type instanceof XmlSchemaComplexType);
+        XmlSchemaComplexType cType = (XmlSchemaComplexType)type;
+        XmlSchemaSequence seq = (XmlSchemaSequence)cType.getParticle();
+        assertNotNull(seq);
+    }
+}



Re: svn commit: r289897 - in /webservices/commons/trunk/XmlSchema: ./ src/org/apache/axis/xsd/enum/ src/org/apache/axis/xsd/xml/schema/ test-resources/ test/ test/tests/

Posted by Davanum Srinivas <da...@gmail.com>.
Fixed in latest SVN.

On 9/19/05, Gregory Lapouchnian <gl...@redhat.com> wrote:
> Hi Glen,
> 
> My teammate Patrick Smith and I are working on a new feature for the
> JOnAS application server where we need to deal with XML schemas so we've
> been looking at XmlSchema project to see if it could help us out.
> 
> The one problem we encountered when we ran it on j2ee_1_4.xsd was this
> exception:
> org.apache.axis.xsd.enum.Enum$EnumValueException: Bad Enumeration value
> 'Qualified'
>         at org.apache.axis.xsd.enum.Enum.setValue(Enum.java:95)
>         at org.apache.axis.xsd.enum.Enum.<init>(Enum.java:73)
>         at
> org.apache.axis.xsd.xml.schema.XmlSchemaForm.<init>(XmlSchemaForm.java:92)
>         at org.apache.axis.xsd.xml.schema.SchemaBuilder.getFormDefault
> (SchemaBuilder.java:1775)
> 
> We've looked at the code and found this strange piece of code in
> SchemaBuilder.getFormDefault() where it converts the first letter of the
> elementFormDefault's value to upper case. But the setValue() in
> XmlSchemaForm (which extends Enum) can only accept all lower-case
> values.
> 
> I am attaching a small patch to one of your test-cases that will
> reproduce the problem.
> 
> --
> Gregory Lapouchnian <gl...@redhat.com>
> Red Hat Canada
> 
> 
> 


-- 
Davanum Srinivas : http://wso2.com/ - Oxygenating The Web Service Platform

Re: svn commit: r289897 - in /webservices/commons/trunk/XmlSchema: ./ src/org/apache/axis/xsd/enum/ src/org/apache/axis/xsd/xml/schema/ test-resources/ test/ test/tests/

Posted by Gregory Lapouchnian <gl...@redhat.com>.
Hi Glen,

My teammate Patrick Smith and I are working on a new feature for the
JOnAS application server where we need to deal with XML schemas so we've
been looking at XmlSchema project to see if it could help us out.

The one problem we encountered when we ran it on j2ee_1_4.xsd was this
exception:
org.apache.axis.xsd.enum.Enum$EnumValueException: Bad Enumeration value
'Qualified'
	at org.apache.axis.xsd.enum.Enum.setValue(Enum.java:95)
	at org.apache.axis.xsd.enum.Enum.<init>(Enum.java:73)
	at
org.apache.axis.xsd.xml.schema.XmlSchemaForm.<init>(XmlSchemaForm.java:92)
	at org.apache.axis.xsd.xml.schema.SchemaBuilder.getFormDefault
(SchemaBuilder.java:1775)

We've looked at the code and found this strange piece of code in
SchemaBuilder.getFormDefault() where it converts the first letter of the
elementFormDefault's value to upper case. But the setValue() in
XmlSchemaForm (which extends Enum) can only accept all lower-case
values. 

I am attaching a small patch to one of your test-cases that will
reproduce the problem.

-- 
Gregory Lapouchnian <gl...@redhat.com>
Red Hat Canada