jochen 2005/07/05 01:04:32 Modified: . status.xml src/jaxme/org/apache/ws/jaxme/generator/sg/impl EnumerationSG.java src/test/jaxb enumeration.xsd Log: Fixed, that driver and handler classes could not be compiled, if enumerations had default values. Revision Changes Path 1.57 +10 -0 ws-jaxme/status.xml Index: status.xml =================================================================== RCS file: /home/cvs/ws-jaxme/status.xml,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- status.xml 20 May 2005 20:21:23 -0000 1.56 +++ status.xml 5 Jul 2005 08:04:31 -0000 1.57 @@ -35,6 +35,16 @@ Added support for mixed content. </action> </release> + <release version="0.4.1" date="Not yet released"> + <action dev="JW" type="enhancement" context="generator"> + Use of xs:extension is now mapped to proper Java + inheritance (at least for the bean classes). + </action> + <action dev="JW" type="fix" context="generator"> + Fixed that the handler and driver classes could not + be compiled, if enumerations had default values. + </action> + </release> <release version="0.4" date="2005-May-19"> <action dev="JW" type="fix" context="xs"> The methods XSSimpleContentImpl.isEmpty(), 1.6 +1 -1 ws-jaxme/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/EnumerationSG.java Index: EnumerationSG.java =================================================================== RCS file: /home/cvs/ws-jaxme/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/EnumerationSG.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- EnumerationSG.java 28 Apr 2005 23:57:53 -0000 1.5 +++ EnumerationSG.java 5 Jul 2005 08:04:32 -0000 1.6 @@ -147,7 +147,7 @@ public TypedValue getCastFromString(SimpleTypeSG pController, String pValue) throws SAXException { for (int i = 0; i < values.length; i++) { if (values[i].getValue().equals(pValue)) { - return new TypedValueImpl(values[i].getName(), qName); + return new TypedValueImpl(new Object[]{qName, ".", values[i].getName()}, qName); } } return super.getCastFromString(pController, pValue); 1.4 +264 -264 ws-jaxme/src/test/jaxb/enumeration.xsd Index: enumeration.xsd =================================================================== RCS file: /home/cvs/ws-jaxme/src/test/jaxb/enumeration.xsd,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- enumeration.xsd 29 Sep 2004 08:41:02 -0000 1.3 +++ enumeration.xsd 5 Jul 2005 08:04:32 -0000 1.4 @@ -1,264 +1,264 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!-- - Copyright 2003, 2004 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. ---> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" - xml:lang="EN" - targetNamespace="http://ws.apache.org/jaxme/test/misc/enumeration" - xmlns:ex="http://ws.apache.org/jaxme/test/misc/enumeration" - xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" - xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" - jaxb:extensionBindingPrefixes="xjc" - elementFormDefault="qualified" - attributeFormDefault="unqualified" - jaxb:version="1.0"> - <xs:annotation> - <xs:documentation> - Demonstration of a complex type with all sorts of enumeration values. - </xs:documentation> - <xs:appinfo> - <jaxb:globalBindings - typesafeEnumBase="xs:string xs:int xs:long xs:short xs:double xs:float"> - <xjc:serializable/> - </jaxb:globalBindings> - </xs:appinfo> - </xs:annotation> - - <!-- In this example the typesafeEnumMember instances are part of the - typesafeEnumClass. --> - <xs:simpleType name="StringType"> - <xs:annotation> - <xs:appinfo> - <jaxb:typesafeEnumClass name="MyStringTypeClass"> - <jaxb:typesafeEnumMember name="FOO" value="FOO"/> - <jaxb:typesafeEnumMember name="BAR" value="BAR"/> - </jaxb:typesafeEnumClass> - </xs:appinfo> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="FOO"/> - <xs:enumeration value="BAR"/> - </xs:restriction> - </xs:simpleType> - - <!-- Here's another case: The typesafeEnumMember instances are part - of their respective values. Choose your own style. --> - <xs:simpleType name="IntType"> - <xs:annotation> - <xs:appinfo> - <jaxb:typesafeEnumClass name="MyIntTypeClass"/> - </xs:appinfo> - </xs:annotation> - <xs:restriction base="xs:int"> - <xs:enumeration value="3"> - <xs:annotation> - <xs:appinfo> - <jaxb:typesafeEnumMember name="INT3"/> - </xs:appinfo> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="0"> - <xs:annotation> - <xs:appinfo> - <jaxb:typesafeEnumMember name="INT0"/> - </xs:appinfo> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="-7"> - <xs:annotation> - <xs:appinfo> - <jaxb:typesafeEnumMember name="INT_7"/> - </xs:appinfo> - </xs:annotation> - </xs:enumeration> - </xs:restriction> - </xs:simpleType> - - <!-- I personally prefer the former style, for shortness. So we - revert to this style. --> - <xs:simpleType name="LongType"> - <xs:annotation> - <xs:appinfo> - <jaxb:typesafeEnumClass name="MyLongTypeClass"> - <jaxb:typesafeEnumMember name="LONG_POSITIVE" value="987298379879887"/> - <jaxb:typesafeEnumMember name="LONG_ZERO" value="0"/> - <jaxb:typesafeEnumMember name="LONG_NEGATIVE" value="-23987982739273989"/> - </jaxb:typesafeEnumClass> - </xs:appinfo> - </xs:annotation> - <xs:restriction base="xs:long"> - <xs:enumeration value="987298379879887"/> - <xs:enumeration value="0"/> - <xs:enumeration value="-23987982739273989"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="ShortType"> - <xs:annotation> - <xs:appinfo> - <jaxb:typesafeEnumClass name="MyShortTypeClass"> - <jaxb:typesafeEnumMember name="SHORT_POSITIVE" value="3468"/> - <jaxb:typesafeEnumMember name="SHORT_ZERO" value="0"/> - <jaxb:typesafeEnumMember name="SHORT_NEGATIVE" value="-23"/> - </jaxb:typesafeEnumClass> - </xs:appinfo> - </xs:annotation> - <xs:restriction base="xs:short"> - <xs:enumeration value="3468"/> - <xs:enumeration value="0"/> - <xs:enumeration value="-23"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="DoubleType"> - <xs:annotation> - <xs:appinfo> - <jaxb:typesafeEnumClass name="MyDoubleTypeClass"> - <jaxb:typesafeEnumMember name="DOUBLE_POSITIVE" value="3249239847982.234"/> - <jaxb:typesafeEnumMember name="DOUBLE_ZERO" value="0"/> - <jaxb:typesafeEnumMember name="DOUBLE_NEGATIVE" value="-324234.234"/> - </jaxb:typesafeEnumClass> - </xs:appinfo> - </xs:annotation> - <xs:restriction base="xs:double"> - <xs:enumeration value="3249239847982.234"/> - <xs:enumeration value="0"/> - <xs:enumeration value="-324234.234"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="FloatType"> - <xs:annotation> - <xs:appinfo> - <jaxb:typesafeEnumClass name="MyFloatTypeClass"> - <jaxb:typesafeEnumMember name="FLOAT_POSITIVE" value="47982.234"/> - <jaxb:typesafeEnumMember name="FLOAT_ZERO" value="0"/> - <jaxb:typesafeEnumMember name="FLOAT_NEGATIVE" value="-24234.234"/> - </jaxb:typesafeEnumClass> - </xs:appinfo> - </xs:annotation> - <xs:restriction base="xs:float"> - <xs:enumeration value="47982.234"/> - <xs:enumeration value="0"/> - <xs:enumeration value="-24234.234"/> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="AllSimpleTypes"> - <xs:sequence> - <xs:element name="StringElem" type="ex:StringType"/> - <xs:element name="IntElem" type="ex:IntType"/> - <xs:element name="LongElem" type="ex:LongType"/> - <xs:element name="ShortElem" type="ex:ShortType"/> - <xs:element name="DoubleElem" type="ex:DoubleType"/> - <xs:element name="FloatElem" type="ex:FloatType"/> - <xs:element name="DateTimeElem" minOccurs="0"> - <xs:simpleType> - <xs:restriction base="xs:dateTime"> - <xs:enumeration value="2002-12-17T12:23:11"/> - <xs:enumeration value="2002-12-16T12:00:11"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="DateElem" minOccurs="0"> - <xs:simpleType> - <xs:restriction base="xs:date"> - <xs:enumeration value="2002-12-17"/> - <xs:enumeration value="2002-12-16"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="TimeElem" minOccurs="0"> - <xs:simpleType> - <xs:restriction base="xs:time"> - <xs:enumeration value="12:23:11"/> - <xs:enumeration value="12:00:11"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - </xs:sequence> - </xs:complexType> - - <xs:element name="AllTypesElement"> - <xs:complexType> - <xs:sequence> - <xs:element type="ex:AllSimpleTypes" name="AllSimpleTypesElement"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="LocalEnumElement"> - <xs:complexType> - <xs:sequence> - <xs:element name="LocalString"> - <xs:simpleType> - <xs:annotation><xs:appinfo> - <jaxb:typesafeEnumClass name="LocalStringCl"/> - </xs:appinfo></xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="a"/> - <xs:enumeration value="b"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="LocalInt"> - <xs:simpleType> - <xs:restriction base="xs:int"> - <xs:enumeration value="0"/> - <xs:enumeration value="1"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="LocalDouble"> - <xs:simpleType> - <xs:restriction base="xs:double"> - <xs:enumeration value="0.0"/> - <xs:enumeration value="1.0"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="LocalEnumAttribute"> - <xs:complexType> - <xs:attribute name="stringAttr"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="a"/> - <xs:enumeration value="b"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="intAttr"> - <xs:simpleType> - <xs:restriction base="xs:int"> - <xs:enumeration value="0"/> - <xs:enumeration value="1"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="doubleAttr"> - <xs:simpleType> - <xs:restriction base="xs:double"> - <xs:enumeration value="0.0"/> - <xs:enumeration value="1.0"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:complexType> - </xs:element> -</xs:schema> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 2003, 2004 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. +--> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + xml:lang="EN" + targetNamespace="http://ws.apache.org/jaxme/test/misc/enumeration" + xmlns:ex="http://ws.apache.org/jaxme/test/misc/enumeration" + xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" + xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" + jaxb:extensionBindingPrefixes="xjc" + elementFormDefault="qualified" + attributeFormDefault="unqualified" + jaxb:version="1.0"> + <xs:annotation> + <xs:documentation> + Demonstration of a complex type with all sorts of enumeration values. + </xs:documentation> + <xs:appinfo> + <jaxb:globalBindings + typesafeEnumBase="xs:string xs:int xs:long xs:short xs:double xs:float"> + <xjc:serializable/> + </jaxb:globalBindings> + </xs:appinfo> + </xs:annotation> + + <!-- In this example the typesafeEnumMember instances are part of the + typesafeEnumClass. --> + <xs:simpleType name="StringType"> + <xs:annotation> + <xs:appinfo> + <jaxb:typesafeEnumClass name="MyStringTypeClass"> + <jaxb:typesafeEnumMember name="FOO" value="FOO"/> + <jaxb:typesafeEnumMember name="BAR" value="BAR"/> + </jaxb:typesafeEnumClass> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="FOO"/> + <xs:enumeration value="BAR"/> + </xs:restriction> + </xs:simpleType> + + <!-- Here's another case: The typesafeEnumMember instances are part + of their respective values. Choose your own style. --> + <xs:simpleType name="IntType"> + <xs:annotation> + <xs:appinfo> + <jaxb:typesafeEnumClass name="MyIntTypeClass"/> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:int"> + <xs:enumeration value="3"> + <xs:annotation> + <xs:appinfo> + <jaxb:typesafeEnumMember name="INT3"/> + </xs:appinfo> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="0"> + <xs:annotation> + <xs:appinfo> + <jaxb:typesafeEnumMember name="INT0"/> + </xs:appinfo> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="-7"> + <xs:annotation> + <xs:appinfo> + <jaxb:typesafeEnumMember name="INT_7"/> + </xs:appinfo> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + + <!-- I personally prefer the former style, for shortness. So we + revert to this style. --> + <xs:simpleType name="LongType"> + <xs:annotation> + <xs:appinfo> + <jaxb:typesafeEnumClass name="MyLongTypeClass"> + <jaxb:typesafeEnumMember name="LONG_POSITIVE" value="987298379879887"/> + <jaxb:typesafeEnumMember name="LONG_ZERO" value="0"/> + <jaxb:typesafeEnumMember name="LONG_NEGATIVE" value="-23987982739273989"/> + </jaxb:typesafeEnumClass> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:long"> + <xs:enumeration value="987298379879887"/> + <xs:enumeration value="0"/> + <xs:enumeration value="-23987982739273989"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="ShortType"> + <xs:annotation> + <xs:appinfo> + <jaxb:typesafeEnumClass name="MyShortTypeClass"> + <jaxb:typesafeEnumMember name="SHORT_POSITIVE" value="3468"/> + <jaxb:typesafeEnumMember name="SHORT_ZERO" value="0"/> + <jaxb:typesafeEnumMember name="SHORT_NEGATIVE" value="-23"/> + </jaxb:typesafeEnumClass> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:short"> + <xs:enumeration value="3468"/> + <xs:enumeration value="0"/> + <xs:enumeration value="-23"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="DoubleType"> + <xs:annotation> + <xs:appinfo> + <jaxb:typesafeEnumClass name="MyDoubleTypeClass"> + <jaxb:typesafeEnumMember name="DOUBLE_POSITIVE" value="3249239847982.234"/> + <jaxb:typesafeEnumMember name="DOUBLE_ZERO" value="0"/> + <jaxb:typesafeEnumMember name="DOUBLE_NEGATIVE" value="-324234.234"/> + </jaxb:typesafeEnumClass> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:double"> + <xs:enumeration value="3249239847982.234"/> + <xs:enumeration value="0"/> + <xs:enumeration value="-324234.234"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="FloatType"> + <xs:annotation> + <xs:appinfo> + <jaxb:typesafeEnumClass name="MyFloatTypeClass"> + <jaxb:typesafeEnumMember name="FLOAT_POSITIVE" value="47982.234"/> + <jaxb:typesafeEnumMember name="FLOAT_ZERO" value="0"/> + <jaxb:typesafeEnumMember name="FLOAT_NEGATIVE" value="-24234.234"/> + </jaxb:typesafeEnumClass> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:float"> + <xs:enumeration value="47982.234"/> + <xs:enumeration value="0"/> + <xs:enumeration value="-24234.234"/> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="AllSimpleTypes"> + <xs:sequence> + <xs:element name="StringElem" type="ex:StringType"/> + <xs:element name="IntElem" type="ex:IntType"/> + <xs:element name="LongElem" type="ex:LongType"/> + <xs:element name="ShortElem" type="ex:ShortType"/> + <xs:element name="DoubleElem" type="ex:DoubleType"/> + <xs:element name="FloatElem" type="ex:FloatType"/> + <xs:element name="DateTimeElem" minOccurs="0"> + <xs:simpleType> + <xs:restriction base="xs:dateTime"> + <xs:enumeration value="2002-12-17T12:23:11"/> + <xs:enumeration value="2002-12-16T12:00:11"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="DateElem" minOccurs="0"> + <xs:simpleType> + <xs:restriction base="xs:date"> + <xs:enumeration value="2002-12-17"/> + <xs:enumeration value="2002-12-16"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="TimeElem" minOccurs="0"> + <xs:simpleType> + <xs:restriction base="xs:time"> + <xs:enumeration value="12:23:11"/> + <xs:enumeration value="12:00:11"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:element name="AllTypesElement"> + <xs:complexType> + <xs:sequence> + <xs:element type="ex:AllSimpleTypes" name="AllSimpleTypesElement"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="LocalEnumElement"> + <xs:complexType> + <xs:sequence> + <xs:element name="LocalString"> + <xs:simpleType> + <xs:annotation><xs:appinfo> + <jaxb:typesafeEnumClass name="LocalStringCl"/> + </xs:appinfo></xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="a"/> + <xs:enumeration value="b"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="LocalInt"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:enumeration value="0"/> + <xs:enumeration value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="LocalDouble"> + <xs:simpleType> + <xs:restriction base="xs:double"> + <xs:enumeration value="0.0"/> + <xs:enumeration value="1.0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="LocalEnumAttribute"> + <xs:complexType> + <xs:attribute name="stringAttr" default="b"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="a"/> + <xs:enumeration value="b"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="intAttr"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:enumeration value="0"/> + <xs:enumeration value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="doubleAttr"> + <xs:simpleType> + <xs:restriction base="xs:double"> + <xs:enumeration value="0.0"/> + <xs:enumeration value="1.0"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> +</xs:schema> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]