[398602] Return native which are as narrow as possible.
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSDecimal.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSDecimal.java
index eaa0411..1a09c25 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSDecimal.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSDecimal.java
@@ -509,7 +509,7 @@
 	}
 
 	@Override
-	public Object getNativeValue() {
+	public Number getNativeValue() {
 		return _value;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSInteger.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSInteger.java
index d5a724a..8425a72 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSInteger.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSInteger.java
@@ -95,6 +95,11 @@
 		return _value.toString();
 	}
 
+	@Override
+	public Number getNativeValue() {
+		return _value;
+	}
+	
 	/**
 	 * Check whether the integer represented is 0
 	 * 
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSNonNegativeInteger.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSNonNegativeInteger.java
index f3da7e1..52c90ed 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSNonNegativeInteger.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSNonNegativeInteger.java
@@ -103,8 +103,4 @@
 		return BuiltinTypeLibrary.XS_NONNEGATIVEINTEGER;
 	}
 
-	public Object getNativeValue() {
-		return getValue().longValue();
-	}
-
 }
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSNonPositiveInteger.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSNonPositiveInteger.java
index 3ed88db..1fecda7 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSNonPositiveInteger.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSNonPositiveInteger.java
@@ -103,8 +103,4 @@
 		return BuiltinTypeLibrary.XS_NONPOSITIVEINTEGER;
 	}
 
-	public Object getNativeValue() {
-		return getValue().longValue();
-	}
-
 }
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSPositiveInteger.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSPositiveInteger.java
index 108f714..9ac3159 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSPositiveInteger.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSPositiveInteger.java
@@ -103,8 +103,4 @@
 		return BuiltinTypeLibrary.XS_POSITIVEINTEGER;
 	}
 
-	public Object getNativeValue() {
-		return getValue();
-	}
-
 }
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSShort.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSShort.java
index e62f82f..7f8727c 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSShort.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSShort.java
@@ -100,7 +100,7 @@
 		return BuiltinTypeLibrary.XS_SHORT;
 	}
 
-	public Object getNativeValue() {
+	public Short getNativeValue() {
 		return getValue().shortValue();
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedByte.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedByte.java
index 01d5f6d..4c3bdf3 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedByte.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedByte.java
@@ -104,7 +104,7 @@
 		return BuiltinTypeLibrary.XS_UNSIGNEDBYTE;
 	}
 
-	public Object getNativeValue() {
+	public Number getNativeValue() {
 		return getValue().shortValue();
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedInt.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedInt.java
index 462f1ee..960b7bc 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedInt.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedInt.java
@@ -104,7 +104,7 @@
 		return BuiltinTypeLibrary.XS_UNSIGNEDINT;
 	}
 
-	public Object getNativeValue() {
-		return getValue().longValue();
+	public Number getNativeValue() {
+		return getValue().intValue();
 	}
 }
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedLong.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedLong.java
index 7b7dcd1..2da2dea 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedLong.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedLong.java
@@ -104,8 +104,4 @@
 		return BuiltinTypeLibrary.XS_UNSIGNEDLONG;
 	}
 
-	public Object getNativeValue() {
-		return getValue();
-	}
-
 }
diff --git a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedShort.java b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedShort.java
index 4da5af0..16f9c80 100644
--- a/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedShort.java
+++ b/bundles/org.eclipse.wst.xml.xpath2.processor/src/org/eclipse/wst/xml/xpath2/processor/internal/types/XSUnsignedShort.java
@@ -104,7 +104,7 @@
 		return BuiltinTypeLibrary.XS_UNSIGNEDSHORT;
 	}
 
-	public Object getNativeValue() {
+	public Number getNativeValue() {
 		return getValue().intValue();
 	}