diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java
index 8d153512e..4825077e7 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java
@@ -117,32 +117,6 @@ public abstract class ValidateElement implements PacketExtension {
*/
public abstract void checkConsistency(FormField formField);
- /**
- *
- * This defines the empty validate element that does only specify a 'datatype' attribute.
- *
- */
- public static class EmptyValidateElement extends ValidateElement {
-
- /**
- * @param dataType
- * @see #getDatatype()
- */
- public EmptyValidateElement(String dataType) {
- super(dataType);
- }
-
- @Override
- protected void appendXML(XmlStringBuilder buf) {
- // The empty validate element does not contain any further elements or text, it is empty.
- }
-
- @Override
- public void checkConsistency(FormField formField) {
- // Since we can't know all possible datatypes, we can not perform any validation here
- }
- }
-
/**
* Validation only against the datatype itself. Indicates that the value(s) should simply match the field type and
* datatype constraints.
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java
index a3a05100c..4404915cc 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java
@@ -22,7 +22,6 @@ import java.util.logging.Logger;
import org.jivesoftware.smack.util.ParserUtils;
import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement;
import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.BasicValidateElement;
-import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.EmptyValidateElement;
import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.ListRange;
import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.OpenValidateElement;
import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement;
@@ -81,7 +80,9 @@ public class DataValidationProvider {
case XmlPullParser.END_TAG:
if (parser.getDepth() == initialDepth) {
if (dataValidation == null) {
- dataValidation = new EmptyValidateElement(dataType);
+ // XEP-122 ยง 3.2 states that "If no validation method is specified,
+ // form processors MUST assume validation."
+ dataValidation = new BasicValidateElement(dataType);
}
dataValidation.setListRange(listRange);
break outerloop;
diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java
index fa15d2f9b..28fef5c64 100644
--- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java
+++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java
@@ -25,7 +25,7 @@ import java.io.IOException;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.test.util.TestUtils;
import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement;
-import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.EmptyValidateElement;
+import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.BasicValidateElement;
import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.ListRange;
import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement;
import org.junit.Test;
@@ -38,7 +38,8 @@ import org.xmlpull.v1.XmlPullParserException;
*
*/
public class DataValidationTest {
- private static final String TEST_OUTPUT_MIN = "";
+ private static final String TEST_INPUT_MIN = "";
+ private static final String TEST_OUTPUT_MIN = "";
private static final String TEST_OUTPUT_RANGE = "";
private static final String TEST_OUTPUT_RANGE2 = "";
private static final String TEST_OUTPUT_FAIL = "";
@@ -46,19 +47,19 @@ public class DataValidationTest {
@Test
public void testMin() throws XmlPullParserException, IOException, SmackException {
- ValidateElement dv = new EmptyValidateElement(null);
+ ValidateElement dv = new BasicValidateElement(null);
assertNotNull( dv.toXML());
String output = dv.toXML().toString();
assertEquals(TEST_OUTPUT_MIN, output);
- XmlPullParser parser = getParser(output);
+ XmlPullParser parser = getParser(TEST_INPUT_MIN);
dv = DataValidationProvider.parse(parser);
assertNotNull(dv);
assertEquals("xs:string", dv.getDatatype());
- assertTrue( dv instanceof EmptyValidateElement);
+ assertTrue( dv instanceof BasicValidateElement);
assertNotNull( dv.toXML());
output = dv.toXML().toString();