Index: src/main/java/org/exolab/castor/xml/UnmarshalHandler.java =================================================================== --- src/main/java/org/exolab/castor/xml/UnmarshalHandler.java (Revision 6810) +++ src/main/java/org/exolab/castor/xml/UnmarshalHandler.java (Arbeitskopie) @@ -2678,16 +2678,14 @@ int index = atts.getIndex(name, namespace); - + String attValue = null; if (index >= 0) { + attValue = atts.getValue(index); processedAtts[index] = true; } - //-- otherwise...for now just continue, this code needs to - //-- change when we upgrade to new event API - else continue; try { - processAttribute(name, namespace, atts.getValue(index), descriptor, classDesc, object); + processAttribute(name, namespace, attValue, descriptor, classDesc, object); } catch(java.lang.IllegalStateException ise) { String err = "unable to add attribute \"" + name + "\" to '"; Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/dog-missing-attribute.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/dog-missing-attribute.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/dog-missing-attribute.xml (Revision 0) @@ -0,0 +1,2 @@ + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/dog-missing-attributes.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/dog-missing-attributes.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/dog-missing-attributes.xml (Revision 0) @@ -0,0 +1,2 @@ + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/Dog.java =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/Dog.java (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/Dog.java (Revision 0) @@ -0,0 +1,19 @@ +public class Dog { + + private String colour = null; + private String bark = null; + + public String getColour() { + return colour; + } + public void setColour(String colour) { + this.colour = colour; + } + + public String getBark() { + return bark; + } + public void setBark(String bark) { + this.bark = bark; + } +} \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/mapping.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/mapping.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/mapping.xml (Revision 0) @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/TestDescriptor.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/TestDescriptor.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/TestDescriptor.xml (Revision 0) @@ -0,0 +1,38 @@ + + + Test the required attribute in the field member + Werner Guttmann + + The field element allows to specify if an element or an attribute is required + or not. The aim of this test is to check that the validation is correct, for + cases where there is more than one attribute. + + basic capability + + + Dog + + + Valid document + mapping.xml + dog-complete.xml + dog-complete.xml + + + + Missing attributes + mapping.xml + dog-missing-attributes.xml + true + + + + Missing attribute + mapping.xml + dog-missing-attribute.xml + true + + + Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/dog-complete.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/dog-complete.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributes/dog-complete.xml (Revision 0) @@ -0,0 +1,2 @@ + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/Required_Root.java =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/Required_Root.java (Revision 6810) +++ xmlctf/tests/MasterTestSuite/mapping/required/Required_Root.java (Arbeitskopie) @@ -1,28 +0,0 @@ - - -import org.exolab.castor.xml.*; -import org.exolab.castor.mapping.*; - -public class Required_Root { - private String _name; - private String _item; - public Required_Root() { - } - - public String getName() { - return _name; - } - - public String getItem() { - return _item; - } - - public void setName(String name) { - _name = name; - } - - public void setItem(String item) { - _item = item; - } - -} \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/Required_Builder.java =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/Required_Builder.java (Revision 6810) +++ xmlctf/tests/MasterTestSuite/mapping/required/Required_Builder.java (Arbeitskopie) @@ -1,59 +0,0 @@ -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided - * that the following conditions are met: - * - * 1. Redistributions of source code must retain copyright - * statements and notices. Redistributions must also contain a - * copy of this document. - * - * 2. Redistributions in binary form must reproduce the - * above copyright notice, this list of conditions and the - * following disclaimer in the documentation and/or other - * materials provided with the distribution. - * - * 3. The name "Exolab" must not be used to endorse or promote - * products derived from this Software without prior written - * permission of Intalio, Inc. For written permission, - * please contact info@exolab.org. - * - * 4. Products derived from this Software may not be called "Exolab" - * nor may "Exolab" appear in their names without prior written - * permission of Intalio, Inc. Exolab is a registered - * trademark of Intalio, Inc. - * - * 5. Due credit should be given to the Exolab Project - * (http://www.exolab.org/). - * - * THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT - * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * INTALIO, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2002 (C) Intalio, Inc. All Rights Reserved. - * - */ - -import org.castor.xmlctf.ObjectModelBuilder; - -public class Required_Builder implements ObjectModelBuilder { - - /** - * Build the object we expect when we unmarshal 'input.xml' - */ - public Object buildInstance() { - Required_Root r = new Required_Root(); - r.setName("castor"); - r.setItem("beaver"); - return r; - } - -} Index: xmlctf/tests/MasterTestSuite/mapping/required/input_failure_attribute.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/input_failure_attribute.xml (Revision 6810) +++ xmlctf/tests/MasterTestSuite/mapping/required/input_failure_attribute.xml (Arbeitskopie) @@ -1,3 +0,0 @@ - - beaver - \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/dog-missing-attribute.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/dog-missing-attribute.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/dog-missing-attribute.xml (Revision 0) @@ -0,0 +1,6 @@ + + + + + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/dog-missing-attributes.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/dog-missing-attributes.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/dog-missing-attributes.xml (Revision 0) @@ -0,0 +1,6 @@ + + + + + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/Dog.java =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/Dog.java (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/Dog.java (Revision 0) @@ -0,0 +1,19 @@ +public class Dog { + + private String colour = null; + private String bark = null; + + public String getColour() { + return colour; + } + public void setColour(String colour) { + this.colour = colour; + } + + public String getBark() { + return bark; + } + public void setBark(String bark) { + this.bark = bark; + } +} \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/mapping.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/mapping.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/mapping.xml (Revision 0) @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/Kennel.java =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/Kennel.java (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/Kennel.java (Revision 0) @@ -0,0 +1,14 @@ +import java.util.ArrayList; +import java.util.List; + +public class Kennel { + + private List dogs = new ArrayList(); + + public List getDogs() { + return dogs; + } + public void setDogs(List dogs) { + this.dogs = dogs; + } +} \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/TestDescriptor.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/TestDescriptor.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/TestDescriptor.xml (Revision 0) @@ -0,0 +1,38 @@ + + + Test the required attribute in the field member + Werner Guttmann + + The field element allows to specify if an element or an attribute is required + or not. The aim of this test is to check that the validation is correct, for + cases where there is more than one attribute. + + basic capability + + + Kennel + + + Valid document + mapping.xml + dog-complete.xml + dog-complete.xml + + + + Missing attributes + mapping.xml + dog-missing-attributes.xml + true + + + + Missing attribute + mapping.xml + dog-missing-attribute.xml + true + + + Index: xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/dog-complete.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/dog-complete.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/multipleAttributesWithinContainer/dog-complete.xml (Revision 0) @@ -0,0 +1,6 @@ + + + + + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/simple/Required_Root.java =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/simple/Required_Root.java (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/simple/Required_Root.java (Revision 0) @@ -0,0 +1,28 @@ + + +import org.exolab.castor.xml.*; +import org.exolab.castor.mapping.*; + +public class Required_Root { + private String _name; + private String _item; + public Required_Root() { + } + + public String getName() { + return _name; + } + + public String getItem() { + return _item; + } + + public void setName(String name) { + _name = name; + } + + public void setItem(String item) { + _item = item; + } + +} \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/simple/Required_Builder.java =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/simple/Required_Builder.java (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/simple/Required_Builder.java (Revision 0) @@ -0,0 +1,59 @@ +/* + * Redistribution and use of this software and associated documentation + * ("Software"), with or without modification, are permitted provided + * that the following conditions are met: + * + * 1. Redistributions of source code must retain copyright + * statements and notices. Redistributions must also contain a + * copy of this document. + * + * 2. Redistributions in binary form must reproduce the + * above copyright notice, this list of conditions and the + * following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. The name "Exolab" must not be used to endorse or promote + * products derived from this Software without prior written + * permission of Intalio, Inc. For written permission, + * please contact info@exolab.org. + * + * 4. Products derived from this Software may not be called "Exolab" + * nor may "Exolab" appear in their names without prior written + * permission of Intalio, Inc. Exolab is a registered + * trademark of Intalio, Inc. + * + * 5. Due credit should be given to the Exolab Project + * (http://www.exolab.org/). + * + * THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT + * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * INTALIO, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Copyright 2002 (C) Intalio, Inc. All Rights Reserved. + * + */ + +import org.castor.xmlctf.ObjectModelBuilder; + +public class Required_Builder implements ObjectModelBuilder { + + /** + * Build the object we expect when we unmarshal 'input.xml' + */ + public Object buildInstance() { + Required_Root r = new Required_Root(); + r.setName("castor"); + r.setItem("beaver"); + return r; + } + +} Index: xmlctf/tests/MasterTestSuite/mapping/required/simple/input_failure_attribute.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/simple/input_failure_attribute.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/simple/input_failure_attribute.xml (Revision 0) @@ -0,0 +1,3 @@ + + beaver + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/simple/mapping.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/simple/mapping.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/simple/mapping.xml (Revision 0) @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/simple/TestDescriptor.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/simple/TestDescriptor.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/simple/TestDescriptor.xml (Revision 0) @@ -0,0 +1,37 @@ + + + Test the required attribute in the field member + Arnaud Blandin + + The field element allows to specify if an element or an attribute is required + or not. The aim of this test is to check that the validation is correct. + + basic capability + + + Required_Root + + + Valid document + mapping.xml + required_input.xml + required_input.xml + + + + Missing element + mapping.xml + input_failure_element.xml + true + + + + Missing attribute + mapping.xml + input_failure_attribute.xml + true + + + Index: xmlctf/tests/MasterTestSuite/mapping/required/simple/input_failure_element.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/simple/input_failure_element.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/simple/input_failure_element.xml (Revision 0) @@ -0,0 +1,2 @@ + + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/simple/required_input.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/simple/required_input.xml (Revision 0) +++ xmlctf/tests/MasterTestSuite/mapping/required/simple/required_input.xml (Revision 0) @@ -0,0 +1,3 @@ + + beaver + \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/mapping.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/mapping.xml (Revision 6810) +++ xmlctf/tests/MasterTestSuite/mapping/required/mapping.xml (Arbeitskopie) @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/TestDescriptor.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/TestDescriptor.xml (Revision 6810) +++ xmlctf/tests/MasterTestSuite/mapping/required/TestDescriptor.xml (Arbeitskopie) @@ -1,37 +0,0 @@ - - - Test the required attribute in the field member - Arnaud Blandin - - The field element allows to specify if an element or an attribute is required - or not. The aim of this test is to check that the validation is correct. - - basic capability - - - Required_Root - - - Valid document - mapping.xml - required_input.xml - required_input.xml - - - - Missing element - mapping.xml - input_failure_element.xml - true - - - - Missing attribute - mapping.xml - input_failure_attribute.xml - true - - - Index: xmlctf/tests/MasterTestSuite/mapping/required/input_failure_element.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/input_failure_element.xml (Revision 6810) +++ xmlctf/tests/MasterTestSuite/mapping/required/input_failure_element.xml (Arbeitskopie) @@ -1,2 +0,0 @@ - - \ Kein Zeilenvorschub am Ende der Datei Index: xmlctf/tests/MasterTestSuite/mapping/required/required_input.xml =================================================================== --- xmlctf/tests/MasterTestSuite/mapping/required/required_input.xml (Revision 6810) +++ xmlctf/tests/MasterTestSuite/mapping/required/required_input.xml (Arbeitskopie) @@ -1,3 +0,0 @@ - - beaver - \ Kein Zeilenvorschub am Ende der Datei