[298267] [xpath2] added few test cases, for the bug report, https://bugs.eclipse.org/bugs/show_bug.cgi?id=298267
diff --git a/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java b/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java
index 1088e0e..64c238a 100644
--- a/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java
+++ b/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java
@@ -1110,6 +1110,113 @@
 		assertEquals("true", actual);
 	}
 	
+	public void testXPathInstanceOf1() throws Exception {
+		// Bug 298267
+		URL fileURL = bundle.getEntry("/bugTestFiles/elementTypedValueBug.xml");
+		URL schemaURL = bundle
+				.getEntry("/bugTestFiles/elementTypedValueBug.xsd");
+
+		loadDOMDocument(fileURL, schemaURL);
+
+		// Get XSModel object for the Schema
+		XSModel schema = getGrammar(schemaURL);
+
+		DynamicContext dc = setupDynamicContext(schema);
+
+		String xpath = "Example/Transportation/mode instance of element()";
+		XPath path = compileXPath(dc, xpath);
+
+		Evaluator eval = new DefaultEvaluator(dc, domDoc);
+		ResultSequence rs = eval.evaluate(path);
+
+		XSBoolean result = (XSBoolean) rs.first();
+
+		String actual = result.string_value();
+
+		assertEquals("true", actual);
+
+	}
+	
+	public void testXPathInstanceOf2() throws Exception {
+		// Bug 298267
+		URL fileURL = bundle.getEntry("/bugTestFiles/elementTypedValueBug.xml");
+		URL schemaURL = bundle
+				.getEntry("/bugTestFiles/elementTypedValueBug.xsd");
+
+		loadDOMDocument(fileURL, schemaURL);
+
+		// Get XSModel object for the Schema
+		XSModel schema = getGrammar(schemaURL);
+
+		DynamicContext dc = setupDynamicContext(schema);
+
+		String xpath = "Example/Transportation/mode instance of element(mode)";
+		XPath path = compileXPath(dc, xpath);
+
+		Evaluator eval = new DefaultEvaluator(dc, domDoc);
+		ResultSequence rs = eval.evaluate(path);
+
+		XSBoolean result = (XSBoolean) rs.first();
+
+		String actual = result.string_value();
+
+		assertEquals("true", actual);
+
+	}
+	
+	public void testXPathInstanceOf3() throws Exception {
+		// Bug 298267
+		URL fileURL = bundle.getEntry("/bugTestFiles/elementTypedValueBug.xml");
+		URL schemaURL = bundle
+				.getEntry("/bugTestFiles/elementTypedValueBug.xsd");
+
+		loadDOMDocument(fileURL, schemaURL);
+
+		// Get XSModel object for the Schema
+		XSModel schema = getGrammar(schemaURL);
+
+		DynamicContext dc = setupDynamicContext(schema);
+
+		String xpath = "Example/Transportation/mode instance of element(x)";
+		XPath path = compileXPath(dc, xpath);
+
+		Evaluator eval = new DefaultEvaluator(dc, domDoc);
+		ResultSequence rs = eval.evaluate(path);
+
+		XSBoolean result = (XSBoolean) rs.first();
+
+		String actual = result.string_value();
+
+		assertEquals("false", actual);
+
+	}
+	
+	public void testXPathInstanceOf4() throws Exception {
+		// Bug 298267
+		URL fileURL = bundle.getEntry("/bugTestFiles/elementTypedValueBug.xml");
+		URL schemaURL = bundle
+				.getEntry("/bugTestFiles/elementTypedValueBug.xsd");
+
+		loadDOMDocument(fileURL, schemaURL);
+
+		// Get XSModel object for the Schema
+		XSModel schema = getGrammar(schemaURL);
+
+		DynamicContext dc = setupDynamicContext(schema);
+
+		String xpath = "Example/Transportation/mode instance of element(mode, abc)";
+		XPath path = compileXPath(dc, xpath);
+
+		Evaluator eval = new DefaultEvaluator(dc, domDoc);
+		ResultSequence rs = eval.evaluate(path);
+
+		XSBoolean result = (XSBoolean) rs.first();
+
+		String actual = result.string_value();
+
+		assertEquals("false", actual);
+
+	}
 
 	private CollationProvider createLengthCollatorProvider() {
 		return new CollationProvider() {