summaryrefslogtreecommitdiff
path: root/test/testcases/tests/level3/core/files
diff options
context:
space:
mode:
Diffstat (limited to 'test/testcases/tests/level3/core/files')
-rw-r--r--test/testcases/tests/level3/core/files/.cvsignore0
-rw-r--r--test/testcases/tests/level3/core/files/CVS/Entries71
-rw-r--r--test/testcases/tests/level3/core/files/CVS/Repository1
-rw-r--r--test/testcases/tests/level3/core/files/CVS/Root1
-rw-r--r--test/testcases/tests/level3/core/files/CVS/Template0
-rw-r--r--test/testcases/tests/level3/core/files/Yes28
-rw-r--r--test/testcases/tests/level3/core/files/barfoo.svg27
-rw-r--r--test/testcases/tests/level3/core/files/barfoo.xhtml25
-rw-r--r--test/testcases/tests/level3/core/files/barfoo.xml25
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_base.svg37
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_base.xhtml29
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_base.xml29
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_nodefaultns.svg28
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_nodefaultns.xhtml26
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_nodefaultns.xml26
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_standalone_no.svg28
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_standalone_no.xhtml26
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_standalone_no.xml26
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_standalone_yes.svg24
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_standalone_yes.xhtml26
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_standalone_yes.xml26
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_utf16.svgbin0 -> 1892 bytes
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_utf16.xhtmlbin0 -> 1082 bytes
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_utf16.xmlbin0 -> 1222 bytes
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_utf8.svg30
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_utf8.xhtml28
-rw-r--r--test/testcases/tests/level3/core/files/barfoo_utf8.xml28
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform01.svg17
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform01.xhtml14
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform01.xml14
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform02.svg14
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform02.xhtml11
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform02.xml11
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform03.svg22
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform03.xhtml18
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform03.xml18
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform04.svg15
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform04.xhtml13
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform04.xml13
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform05.svg15
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform05.xhtml13
-rw-r--r--test/testcases/tests/level3/core/files/canonicalform05.xml13
-rw-r--r--test/testcases/tests/level3/core/files/datatype_normalization.svg89
-rw-r--r--test/testcases/tests/level3/core/files/datatype_normalization.svg.xsd60
-rw-r--r--test/testcases/tests/level3/core/files/datatype_normalization.xml90
-rw-r--r--test/testcases/tests/level3/core/files/datatype_normalization.xsd212
-rw-r--r--test/testcases/tests/level3/core/files/datatype_normalization2.svg45
-rw-r--r--test/testcases/tests/level3/core/files/datatype_normalization2.svg.xsd60
-rw-r--r--test/testcases/tests/level3/core/files/datatype_normalization2.xhtml33
-rw-r--r--test/testcases/tests/level3/core/files/datatype_normalization2.xml33
-rw-r--r--test/testcases/tests/level3/core/files/datatype_normalization2.xsd99
-rw-r--r--test/testcases/tests/level3/core/files/external_barfoo.svg31
-rw-r--r--test/testcases/tests/level3/core/files/external_barfoo.xhtml33
-rw-r--r--test/testcases/tests/level3/core/files/external_barfoo.xml33
-rw-r--r--test/testcases/tests/level3/core/files/external_foo.entbin0 -> 86 bytes
-rw-r--r--test/testcases/tests/level3/core/files/external_foobr.ent1
-rw-r--r--test/testcases/tests/level3/core/files/external_widget.ent1
-rw-r--r--test/testcases/tests/level3/core/files/hc_nodtdstaff.html10
-rw-r--r--test/testcases/tests/level3/core/files/hc_nodtdstaff.svg10
-rw-r--r--test/testcases/tests/level3/core/files/hc_nodtdstaff.xhtml10
-rw-r--r--test/testcases/tests/level3/core/files/hc_nodtdstaff.xml10
-rw-r--r--test/testcases/tests/level3/core/files/hc_staff.svg87
-rw-r--r--test/testcases/tests/level3/core/files/hc_staff.svg.xsd60
-rw-r--r--test/testcases/tests/level3/core/files/hc_staff.xhtml73
-rw-r--r--test/testcases/tests/level3/core/files/hc_staff.xml73
-rw-r--r--test/testcases/tests/level3/core/files/hc_staff.xsd250
-rw-r--r--test/testcases/tests/level3/core/files/svgtest.js0
-rw-r--r--test/testcases/tests/level3/core/files/svgunit.js0
-rw-r--r--test/testcases/tests/level3/core/files/typeinfo.svg29
-rw-r--r--test/testcases/tests/level3/core/files/typeinfo.svg.xsd60
-rw-r--r--test/testcases/tests/level3/core/files/typeinfo.xhtml18
-rw-r--r--test/testcases/tests/level3/core/files/typeinfo.xml18
-rw-r--r--test/testcases/tests/level3/core/files/typeinfo.xsd107
-rw-r--r--test/testcases/tests/level3/core/files/xhtml1-strict.dtd65
74 files changed, 2516 insertions, 0 deletions
diff --git a/test/testcases/tests/level3/core/files/.cvsignore b/test/testcases/tests/level3/core/files/.cvsignore
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/.cvsignore
diff --git a/test/testcases/tests/level3/core/files/CVS/Entries b/test/testcases/tests/level3/core/files/CVS/Entries
new file mode 100644
index 0000000..2634cf9
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/CVS/Entries
@@ -0,0 +1,71 @@
+/.cvsignore/1.2/Fri Apr 3 02:47:59 2009//
+/Yes/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo.svg/1.2/Fri Apr 3 02:47:59 2009//
+/barfoo.xhtml/1.4/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo.xml/1.5/Fri Apr 3 02:47:59 2009//
+/barfoo_base.svg/1.3/Fri Apr 3 02:47:59 2009//
+/barfoo_base.xhtml/1.3/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo_base.xml/1.4/Fri Apr 3 02:47:59 2009//
+/barfoo_nodefaultns.svg/1.1/Fri Apr 3 02:47:59 2009//
+/barfoo_nodefaultns.xhtml/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo_nodefaultns.xml/1.2/Fri Apr 3 02:47:59 2009//
+/barfoo_standalone_no.svg/1.1/Fri Apr 3 02:47:59 2009//
+/barfoo_standalone_no.xhtml/1.4/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo_standalone_no.xml/1.4/Fri Apr 3 02:47:59 2009//
+/barfoo_standalone_yes.svg/1.1/Fri Apr 3 02:47:59 2009//
+/barfoo_standalone_yes.xhtml/1.4/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo_standalone_yes.xml/1.4/Fri Apr 3 02:47:59 2009//
+/barfoo_utf16.svg/1.3/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo_utf16.xhtml/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo_utf16.xml/1.3/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo_utf8.svg/1.1/Fri Apr 3 02:47:59 2009//
+/barfoo_utf8.xhtml/1.4/Fri Apr 3 02:47:59 2009/-kb/
+/barfoo_utf8.xml/1.4/Fri Apr 3 02:47:59 2009//
+/canonicalform01.svg/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform01.xhtml/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform01.xml/1.2/Fri Apr 3 02:47:59 2009//
+/canonicalform02.svg/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform02.xhtml/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform02.xml/1.2/Fri Apr 3 02:47:59 2009//
+/canonicalform03.svg/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform03.xhtml/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform03.xml/1.2/Fri Apr 3 02:47:59 2009//
+/canonicalform04.svg/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform04.xhtml/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform04.xml/1.2/Fri Apr 3 02:47:59 2009//
+/canonicalform05.svg/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform05.xhtml/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/canonicalform05.xml/1.2/Fri Apr 3 02:47:59 2009//
+/datatype_normalization.svg/1.3/Fri Apr 3 02:47:59 2009/-kb/
+/datatype_normalization.svg.xsd/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/datatype_normalization.xml/1.3/Fri Apr 3 02:47:59 2009//
+/datatype_normalization.xsd/1.3/Fri Apr 3 02:47:59 2009/-kb/
+/datatype_normalization2.svg/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/datatype_normalization2.svg.xsd/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/datatype_normalization2.xhtml/1.3/Fri Apr 3 02:47:59 2009/-kb/
+/datatype_normalization2.xml/1.3/Fri Apr 3 02:47:59 2009//
+/datatype_normalization2.xsd/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/external_barfoo.svg/1.2/Fri Apr 3 02:47:59 2009//
+/external_barfoo.xhtml/1.4/Fri Apr 3 02:47:59 2009/-kb/
+/external_barfoo.xml/1.5/Fri Apr 3 02:47:59 2009//
+/external_foo.ent/1.1/Fri Apr 3 02:47:59 2009//
+/external_foobr.ent/1.1/Fri Apr 3 02:47:59 2009//
+/external_widget.ent/1.1/Fri Apr 3 02:47:59 2009//
+/hc_nodtdstaff.html/1.2/Fri Apr 3 02:47:59 2009//
+/hc_nodtdstaff.svg/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/hc_nodtdstaff.xhtml/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/hc_nodtdstaff.xml/1.2/Fri Apr 3 02:47:59 2009//
+/hc_staff.svg/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/hc_staff.svg.xsd/1.1/Fri Apr 3 02:47:59 2009/-kb/
+/hc_staff.xhtml/1.5/Fri Apr 3 02:47:59 2009/-kb/
+/hc_staff.xml/1.6/Fri Apr 3 02:47:59 2009//
+/hc_staff.xsd/1.8/Fri Apr 3 02:47:59 2009/-kb/
+/svgtest.js/1.1/Fri Apr 3 02:47:59 2009//
+/svgunit.js/1.1/Fri Apr 3 02:47:59 2009//
+/typeinfo.svg/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/typeinfo.svg.xsd/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/typeinfo.xhtml/1.3/Fri Apr 3 02:47:59 2009/-kb/
+/typeinfo.xml/1.3/Fri Apr 3 02:47:59 2009//
+/typeinfo.xsd/1.2/Fri Apr 3 02:47:59 2009/-kb/
+/xhtml1-strict.dtd/1.4/Fri Apr 3 02:47:59 2009/-kb/
+D
diff --git a/test/testcases/tests/level3/core/files/CVS/Repository b/test/testcases/tests/level3/core/files/CVS/Repository
new file mode 100644
index 0000000..1efd590
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/CVS/Repository
@@ -0,0 +1 @@
+2001/DOM-Test-Suite/tests/level3/core/files
diff --git a/test/testcases/tests/level3/core/files/CVS/Root b/test/testcases/tests/level3/core/files/CVS/Root
new file mode 100644
index 0000000..3c7177e
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/CVS/Root
@@ -0,0 +1 @@
+:pserver:anonymous@dev.w3.org:/sources/public
diff --git a/test/testcases/tests/level3/core/files/CVS/Template b/test/testcases/tests/level3/core/files/CVS/Template
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/CVS/Template
diff --git a/test/testcases/tests/level3/core/files/Yes b/test/testcases/tests/level3/core/files/Yes
new file mode 100644
index 0000000..b2019bc
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/Yes
@@ -0,0 +1,28 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+<!--
+
+xsi:noNamespaceSchemaLocation="Yes" appears in hc_staff.xml
+but it was not anticipated that "Yes" would be resolved since
+there were no elements without a namespace. However, since
+at least one processor does attempt to load "Yes", this file
+is here to satisfy that request.
+
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="bogus" type="xsd:string"/>
+</xsd:schema>
diff --git a/test/testcases/tests/level3/core/files/barfoo.svg b/test/testcases/tests/level3/core/files/barfoo.svg
new file mode 100644
index 0000000..a513594
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo.svg
@@ -0,0 +1,27 @@
+<!DOCTYPE svg [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT svg (rect,script,body)>
+<!ATTLIST svg xmlns CDATA #IMPLIED>
+<!ELEMENT rect EMPTY>
+<!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED
+ fill CDATA #REQUIRED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT body (p)>
+<!ATTLIST body xmlns CDATA #IMPLIED>
+<!ELEMENT br EMPTY>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script type CDATA #IMPLIED>
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+]>
+<svg xmlns="http://www.w3.org/2000/svg">
+<rect x="0" y="0" width="100" height="100" fill="blue"/><script type="text/ecmascript">&svgtest;&svgunit;</script>
+<body xmlns='http://www.w3.org/1999/xhtml'>
+<p>bar</p>
+</body>
+</svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/barfoo.xhtml b/test/testcases/tests/level3/core/files/barfoo.xhtml
new file mode 100644
index 0000000..51c8c07
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo.xhtml
@@ -0,0 +1,25 @@
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>replaceWholeText sample</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar</p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/barfoo.xml b/test/testcases/tests/level3/core/files/barfoo.xml
new file mode 100644
index 0000000..9d055dc
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo.xml
@@ -0,0 +1,25 @@
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>replaceWholeText sample</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar</p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_base.svg b/test/testcases/tests/level3/core/files/barfoo_base.svg
new file mode 100644
index 0000000..e905cc8
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_base.svg
@@ -0,0 +1,37 @@
+<!DOCTYPE svg [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT svg (rect,script,head,body)>
+<!ATTLIST svg xmlns CDATA #IMPLIED
+ xml:base CDATA #IMPLIED>
+<!ELEMENT rect EMPTY>
+<!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED
+ fill CDATA #REQUIRED>
+<!ELEMENT body (p)>
+<!ATTLIST body
+ xml:base CDATA #IMPLIED
+ xmlns CDATA #IMPLIED
+ id ID #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+<!ELEMENT head (title)>
+<!ATTLIST head xmlns CDATA #IMPLIED>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script type CDATA #IMPLIED>
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+]>
+<svg xmlns="http://www.w3.org/2000/svg" xml:base="http://www.w3.org/DOM/L3Test">
+<rect x="0" y="0" width="100" height="100" fill="blue"/><script type="text/ecmascript">&svgtest;&svgunit;</script>
+<head xmlns='http://www.w3.org/1999/xhtml'>
+<title>XML Base sample</title>
+</head>
+<body xmlns='http://www.w3.org/1999/xhtml' xml:base="http://www.w3.org/DOM/EmployeeID" id="body">
+<p>bar</p><!-- keep comment adjacent to p -->
+</body>
+</svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/barfoo_base.xhtml b/test/testcases/tests/level3/core/files/barfoo_base.xhtml
new file mode 100644
index 0000000..4c79469
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_base.xhtml
@@ -0,0 +1,29 @@
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html
+ xmlns CDATA #IMPLIED
+ xml:base CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p)>
+<!ATTLIST body xml:base CDATA #IMPLIED
+ id ID #IMPLIED
+ onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:base="http://www.w3.org/DOM/L3Test">
+<head>
+<title>XML Base sample</title>
+</head>
+<body xml:base="http://www.w3.org/DOM/EmployeeID" id="body">
+<p>bar</p><!-- keep comment adjacent to p -->
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_base.xml b/test/testcases/tests/level3/core/files/barfoo_base.xml
new file mode 100644
index 0000000..4079a3b
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_base.xml
@@ -0,0 +1,29 @@
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html
+ xmlns CDATA #IMPLIED
+ xml:base CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p)>
+<!ATTLIST body xml:base CDATA #IMPLIED
+ id ID #IMPLIED
+ onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:base="http://www.w3.org/DOM/L3Test">
+<head>
+<title>XML Base sample</title>
+</head>
+<body xml:base="http://www.w3.org/DOM/EmployeeID" id="body">
+<p>bar</p><!-- keep comment adjacent to p -->
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_nodefaultns.svg b/test/testcases/tests/level3/core/files/barfoo_nodefaultns.svg
new file mode 100644
index 0000000..dbb156c
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_nodefaultns.svg
@@ -0,0 +1,28 @@
+<!DOCTYPE svg:svg [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT svg:svg (svg:rect,svg:script,html:body)>
+<!ATTLIST svg:svg xmlns:svg CDATA #IMPLIED>
+<!ELEMENT svg:rect EMPTY>
+<!ATTLIST svg:rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED
+ fill CDATA #REQUIRED>
+<!ELEMENT html:p (#PCDATA|html:br)*>
+<!ATTLIST html:p class CDATA #IMPLIED>
+<!ELEMENT html:body (html:p)>
+<!ATTLIST html:body xmlns:html CDATA #IMPLIED>
+<!ELEMENT html:br EMPTY>
+<!ELEMENT svg:script (#PCDATA)>
+<!ATTLIST svg:script type CDATA #IMPLIED>
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+]>
+<svg:svg xmlns:svg="http://www.w3.org/2000/svg">
+<svg:rect x="0" y="0" width="100" height="100" fill="blue"/><svg:script type="text/ecmascript">&svgtest;&svgunit;</svg:script>
+<html:body xmlns:html='http://www.w3.org/1999/xhtml'>
+<html:p class="visible:false">bar</html:p>
+</html:body>
+</svg:svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/barfoo_nodefaultns.xhtml b/test/testcases/tests/level3/core/files/barfoo_nodefaultns.xhtml
new file mode 100644
index 0000000..8c2c151
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_nodefaultns.xhtml
@@ -0,0 +1,26 @@
+<!DOCTYPE html:html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html:html (html:head, html:body)>
+<!ATTLIST html:html xmlns:html CDATA #IMPLIED>
+<!ELEMENT html:head (html:title,script*)>
+<!ATTLIST html:head xmlns CDATA #IMPLIED>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT html:title (#PCDATA)>
+<!ELEMENT html:body (html:p)>
+<!ELEMENT html:p (#PCDATA|html:br)*>
+<!ATTLIST html:p class CDATA #IMPLIED>
+<!ELEMENT html:br EMPTY>
+]>
+<html:html xmlns:html='http://www.w3.org/1999/xhtml'>
+<html:head xmlns='http://www.w3.org/1999/xhtml'>
+<html:title>test file</html:title>
+</html:head>
+<html:body>
+<html:p class="visible:false">bar</html:p>
+</html:body>
+</html:html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_nodefaultns.xml b/test/testcases/tests/level3/core/files/barfoo_nodefaultns.xml
new file mode 100644
index 0000000..dc7220c
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_nodefaultns.xml
@@ -0,0 +1,26 @@
+<!DOCTYPE html:html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html:html (html:head, html:body)>
+<!ATTLIST html:html xmlns:html CDATA #IMPLIED>
+<!ELEMENT html:head (html:title,script*)>
+<!ATTLIST html:head xmlns CDATA #IMPLIED>
+<!ELEMENT html:title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT html:body (html:p)>
+<!ELEMENT html:p (#PCDATA|html:br)*>
+<!ATTLIST html:p class CDATA #IMPLIED>
+<!ELEMENT html:br EMPTY>
+]>
+<html:html xmlns:html='http://www.w3.org/1999/xhtml'>
+<html:head xmlns='http://www.w3.org/1999/xhtml'>
+<html:title>test file</html:title>
+</html:head>
+<html:body>
+<html:p class="visible:false">bar</html:p>
+</html:body>
+</html:html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_standalone_no.svg b/test/testcases/tests/level3/core/files/barfoo_standalone_no.svg
new file mode 100644
index 0000000..ad183a3
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_standalone_no.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT svg (rect,script,body)>
+<!ATTLIST svg xmlns CDATA #IMPLIED>
+<!ELEMENT rect EMPTY>
+<!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED
+ fill CDATA #REQUIRED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT body (p)>
+<!ATTLIST body xmlns CDATA #IMPLIED>
+<!ELEMENT br EMPTY>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script type CDATA #IMPLIED>
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+]>
+<svg xmlns="http://www.w3.org/2000/svg">
+<rect x="0" y="0" width="100" height="100" fill="blue"/><script type="text/ecmascript">&svgtest;&svgunit;</script>
+<body xmlns='http://www.w3.org/1999/xhtml'>
+<p>bar</p>
+</body>
+</svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/barfoo_standalone_no.xhtml b/test/testcases/tests/level3/core/files/barfoo_standalone_no.xhtml
new file mode 100644
index 0000000..e41c526
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_standalone_no.xhtml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>replaceWholeText sample</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar</p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_standalone_no.xml b/test/testcases/tests/level3/core/files/barfoo_standalone_no.xml
new file mode 100644
index 0000000..6723dfa
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_standalone_no.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>replaceWholeText sample</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar</p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_standalone_yes.svg b/test/testcases/tests/level3/core/files/barfoo_standalone_yes.svg
new file mode 100644
index 0000000..1d76949
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_standalone_yes.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!DOCTYPE svg [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT svg (rect,body)>
+<!ATTLIST svg xmlns CDATA #IMPLIED>
+<!ELEMENT rect EMPTY>
+<!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED
+ fill CDATA #REQUIRED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT body (p)>
+<!ATTLIST body xmlns CDATA #IMPLIED>
+<!ELEMENT br EMPTY>
+]>
+<svg xmlns="http://www.w3.org/2000/svg">
+<rect x="0" y="0" width="100" height="100" fill="blue"/>
+<body xmlns='http://www.w3.org/1999/xhtml'>
+<p>bar</p>
+</body>
+</svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/barfoo_standalone_yes.xhtml b/test/testcases/tests/level3/core/files/barfoo_standalone_yes.xhtml
new file mode 100644
index 0000000..49f389e
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_standalone_yes.xhtml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>getXmlStandalone test doc</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar</p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_standalone_yes.xml b/test/testcases/tests/level3/core/files/barfoo_standalone_yes.xml
new file mode 100644
index 0000000..0adf126
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_standalone_yes.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>getXmlStandalone test doc</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar</p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_utf16.svg b/test/testcases/tests/level3/core/files/barfoo_utf16.svg
new file mode 100644
index 0000000..40f8314
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_utf16.svg
Binary files differ
diff --git a/test/testcases/tests/level3/core/files/barfoo_utf16.xhtml b/test/testcases/tests/level3/core/files/barfoo_utf16.xhtml
new file mode 100644
index 0000000..260282d
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_utf16.xhtml
Binary files differ
diff --git a/test/testcases/tests/level3/core/files/barfoo_utf16.xml b/test/testcases/tests/level3/core/files/barfoo_utf16.xml
new file mode 100644
index 0000000..e6706ab
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_utf16.xml
Binary files differ
diff --git a/test/testcases/tests/level3/core/files/barfoo_utf8.svg b/test/testcases/tests/level3/core/files/barfoo_utf8.svg
new file mode 100644
index 0000000..8ebb45d
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_utf8.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="uTf-8"?>
+<!DOCTYPE svg [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT svg (rect,script,body)>
+<!ATTLIST svg xmlns CDATA #IMPLIED>
+<!ELEMENT rect EMPTY>
+<!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED
+ fill CDATA #REQUIRED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT body (p)>
+<!ATTLIST body xmlns CDATA #IMPLIED>
+<!ELEMENT br EMPTY>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script type CDATA #IMPLIED>
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+<!ENTITY ent5 PUBLIC "entityURI" "entityFile" NDATA notation1>
+<!NOTATION notation1 PUBLIC "notation1File">
+]>
+<svg xmlns="http://www.w3.org/2000/svg">
+<rect x="0" y="0" width="100" height="100" fill="blue"/><script type="text/ecmascript">&svgtest;&svgunit;</script>
+<body xmlns='http://www.w3.org/1999/xhtml'>
+<p>bar</p>
+</body>
+</svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/barfoo_utf8.xhtml b/test/testcases/tests/level3/core/files/barfoo_utf8.xhtml
new file mode 100644
index 0000000..5a7e3fc
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_utf8.xhtml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="uTf-8"?>
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+<!ENTITY ent5 PUBLIC "entityURI" "entityFile" NDATA notation1>
+<!NOTATION notation1 PUBLIC "notation1File">
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>test file</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar</p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/barfoo_utf8.xml b/test/testcases/tests/level3/core/files/barfoo_utf8.xml
new file mode 100644
index 0000000..414340c
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/barfoo_utf8.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="uTf-8"?>
+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+<!ENTITY ent5 PUBLIC "entityURI" "entityFile" NDATA notation1>
+<!NOTATION notation1 PUBLIC "notation1File">
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>test file</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar</p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/canonicalform01.svg b/test/testcases/tests/level3/core/files/canonicalform01.svg
new file mode 100644
index 0000000..ea1a91e
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform01.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+
+<?xml-stylesheet href="doc.xsl"
+ type="text/xsl" ?>
+
+<!DOCTYPE svg SYSTEM "xhtml1-strict.dtd"[
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+]>
+<svg xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="100" height="100" fill="blue"/><script type="text/ecmascript">&svgtest;&svgunit;</script><body xmlns='http://www.w3.org/1999/xhtml'>
+<p>Hello, world!<!-- Comment 1 --></p></body></svg>
+
+<?pi-without-data ?>
+
+<!-- Comment 2 -->
+
+<!-- Comment 3 -->
diff --git a/test/testcases/tests/level3/core/files/canonicalform01.xhtml b/test/testcases/tests/level3/core/files/canonicalform01.xhtml
new file mode 100644
index 0000000..35a0979
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform01.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<?xml-stylesheet href="doc.xsl"
+ type="text/xsl" ?>
+
+<!DOCTYPE html SYSTEM "xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform01</title></head><body onload="parent.loadComplete()">
+<p>Hello, world!<!-- Comment 1 --></p></body></html>
+
+<?pi-without-data ?>
+
+<!-- Comment 2 -->
+
+<!-- Comment 3 -->
diff --git a/test/testcases/tests/level3/core/files/canonicalform01.xml b/test/testcases/tests/level3/core/files/canonicalform01.xml
new file mode 100644
index 0000000..ac9b7c8
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform01.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<?xml-stylesheet href="doc.xsl"
+ type="text/xsl" ?>
+
+<!DOCTYPE html SYSTEM "xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform01</title></head><body onload="parent.loadComplete()">
+<p>Hello, world!<!-- Comment 1 --></p></body></html>
+
+<?pi-without-data ?>
+
+<!-- Comment 2 -->
+
+<!-- Comment 3 -->
diff --git a/test/testcases/tests/level3/core/files/canonicalform02.svg b/test/testcases/tests/level3/core/files/canonicalform02.svg
new file mode 100644
index 0000000..132c460
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform02.svg
@@ -0,0 +1,14 @@
+<!DOCTYPE svg SYSTEM "xhtml1-strict.dtd"[
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+]><svg xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="100" height="100" fill="blue"/><script type="text/ecmascript">&svgtest;&svgunit;</script><body xmlns='http://www.w3.org/1999/xhtml'>
+ <acronym> </acronym>
+ <em> A B </em>
+ <p>
+ A
+ <acronym> </acronym>
+ B
+ <em> A B </em>
+ C
+ </p>
+</body></svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/canonicalform02.xhtml b/test/testcases/tests/level3/core/files/canonicalform02.xhtml
new file mode 100644
index 0000000..270d698
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform02.xhtml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform02</title></head><body onload="parent.loadComplete()">
+ <acronym> </acronym>
+ <em> A B </em>
+ <p>
+ A
+ <acronym> </acronym>
+ B
+ <em> A B </em>
+ C
+ </p>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/canonicalform02.xml b/test/testcases/tests/level3/core/files/canonicalform02.xml
new file mode 100644
index 0000000..f949cfc
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform02.xml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform02</title></head><body onload="parent.loadComplete()">
+ <acronym> </acronym>
+ <em> A B </em>
+ <p>
+ A
+ <acronym> </acronym>
+ B
+ <em> A B </em>
+ C
+ </p>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/canonicalform03.svg b/test/testcases/tests/level3/core/files/canonicalform03.svg
new file mode 100644
index 0000000..e6ea9a4
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform03.svg
@@ -0,0 +1,22 @@
+<!DOCTYPE svg SYSTEM "xhtml1-strict.dtd"[
+<!ATTLIST acronym title CDATA "default">
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+]>
+<svg xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="100" height="100" fill="blue"/><script type="text/ecmascript">&svgtest;&svgunit;</script><body xmlns='http://www.w3.org/1999/xhtml'>
+ <br />
+ <br ></br>
+ <div name = "elem3" id="elem3" />
+ <div name="elem4" id="elem4" ></div>
+ <div a:attr="out" b:attr="sorted" name="all" class="I'm"
+ xmlns:b="http://www.ietf.org"
+ xmlns:a="http://www.w3.org"
+ xmlns="http://example.org"/>
+ <div xmlns="" xmlns:a="http://www.w3.org">
+ <div xmlns="http://www.ietf.org">
+ <div xmlns="" xmlns:a="http://www.w3.org">
+ <acronym xmlns="" xmlns:a="http://www.ietf.org"/>
+ </div>
+ </div>
+ </div>
+</body></svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/canonicalform03.xhtml b/test/testcases/tests/level3/core/files/canonicalform03.xhtml
new file mode 100644
index 0000000..4caa90d
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform03.xhtml
@@ -0,0 +1,18 @@
+<!DOCTYPE html [<!ATTLIST acronym title CDATA "default">]>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform03</title></head><body onload="parent.loadComplete()">
+ <br />
+ <br ></br>
+ <div name = "elem3" id="elem3" />
+ <div name="elem4" id="elem4" ></div>
+ <div a:attr="out" b:attr="sorted" name="all" class="I'm"
+ xmlns:b="http://www.ietf.org"
+ xmlns:a="http://www.w3.org"
+ xmlns="http://example.org"/>
+ <div xmlns="" xmlns:a="http://www.w3.org">
+ <div xmlns="http://www.ietf.org">
+ <div xmlns="" xmlns:a="http://www.w3.org">
+ <acronym xmlns="" xmlns:a="http://www.ietf.org"/>
+ </div>
+ </div>
+ </div>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/canonicalform03.xml b/test/testcases/tests/level3/core/files/canonicalform03.xml
new file mode 100644
index 0000000..d1257bc
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform03.xml
@@ -0,0 +1,18 @@
+<!DOCTYPE html [<!ATTLIST acronym title CDATA "default">]>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform03</title></head><body onload="parent.loadComplete()">
+ <br />
+ <br ></br>
+ <div name = "elem3" id="elem3" />
+ <div name="elem4" id="elem4" ></div>
+ <div a:attr="out" b:attr="sorted" name="all" class="I'm"
+ xmlns:b="http://www.ietf.org"
+ xmlns:a="http://www.w3.org"
+ xmlns="http://example.org"/>
+ <div xmlns="" xmlns:a="http://www.w3.org">
+ <div xmlns="http://www.ietf.org">
+ <div xmlns="" xmlns:a="http://www.w3.org">
+ <acronym xmlns="" xmlns:a="http://www.ietf.org"/>
+ </div>
+ </div>
+ </div>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/canonicalform04.svg b/test/testcases/tests/level3/core/files/canonicalform04.svg
new file mode 100644
index 0000000..0b5a1d1
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform04.svg
@@ -0,0 +1,15 @@
+<!DOCTYPE svg [
+<!ATTLIST div id ID #IMPLIED>
+<!ATTLIST div class NMTOKENS #IMPLIED>
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+]>
+<svg xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="100" height="100" fill="blue"/><script type="text/ecmascript">&svgtest;&svgunit;</script><body xmlns='http://www.w3.org/1999/xhtml'>
+ <em>First line&#x0d;&#10;Second line</em>
+ <acronym>&#x32;</acronym>
+ <code><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></code>
+ <code title='value>"0" &amp;&amp; value&lt;"10" ?"valid":"error"'>valid</code>
+ <div title=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>
+ <div class=' A &#x20;&#13;&#xa;&#9; B '/>
+ <div id=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>
+</body></svg>
diff --git a/test/testcases/tests/level3/core/files/canonicalform04.xhtml b/test/testcases/tests/level3/core/files/canonicalform04.xhtml
new file mode 100644
index 0000000..53a51ca
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform04.xhtml
@@ -0,0 +1,13 @@
+<!DOCTYPE html [
+<!ATTLIST div id ID #IMPLIED>
+<!ATTLIST div class NMTOKENS #IMPLIED>
+]>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform04</title></head><body onload="parent.loadComplete()">
+ <em>First line&#x0d;&#10;Second line</em>
+ <acronym>&#x32;</acronym>
+ <code><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></code>
+ <code title='value>"0" &amp;&amp; value&lt;"10" ?"valid":"error"'>valid</code>
+ <div title=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>
+ <div class=' A &#x20;&#13;&#xa;&#9; B '/>
+ <div id=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/canonicalform04.xml b/test/testcases/tests/level3/core/files/canonicalform04.xml
new file mode 100644
index 0000000..41f59bf
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform04.xml
@@ -0,0 +1,13 @@
+<!DOCTYPE html [
+<!ATTLIST div id ID #IMPLIED>
+<!ATTLIST div class NMTOKENS #IMPLIED>
+]>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform04</title></head><body onload="parent.loadComplete()">
+ <em>First line&#x0d;&#10;Second line</em>
+ <acronym>&#x32;</acronym>
+ <code><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></code>
+ <code title='value>"0" &amp;&amp; value&lt;"10" ?"valid":"error"'>valid</code>
+ <div title=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>
+ <div class=' A &#x20;&#13;&#xa;&#9; B '/>
+ <div id=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/canonicalform05.svg b/test/testcases/tests/level3/core/files/canonicalform05.svg
new file mode 100644
index 0000000..c52d5a8
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform05.svg
@@ -0,0 +1,15 @@
+<!DOCTYPE svg [
+<!ATTLIST p attrExtEnt ENTITY #IMPLIED>
+<!ENTITY ent1 "Hello">
+<!ENTITY ent2 SYSTEM "world.txt">
+<!ENTITY entExt SYSTEM "earth.gif" NDATA gif>
+<!NOTATION gif SYSTEM "viewgif.exe">
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+]>
+<svg xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="100" height="100" fill="blue"/><script type="text/ecmascript">&svgtest;&svgunit;</script><body xmlns='http://www.w3.org/1999/xhtml'>
+<p attrExtEnt="entExt">
+ &ent1;, &ent2;!
+</p></body></svg>
+
+<!-- Let world.txt contain "world" (excluding the quotes) --> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/canonicalform05.xhtml b/test/testcases/tests/level3/core/files/canonicalform05.xhtml
new file mode 100644
index 0000000..722d017
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform05.xhtml
@@ -0,0 +1,13 @@
+<!DOCTYPE html [
+<!ATTLIST p attrExtEnt ENTITY #IMPLIED>
+<!ENTITY ent1 "Hello">
+<!ENTITY ent2 SYSTEM "world.txt">
+<!ENTITY entExt SYSTEM "earth.gif" NDATA gif>
+<!NOTATION gif SYSTEM "viewgif.exe">
+]>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform05</title></head><body onload="parent.loadComplete()">
+<p attrExtEnt="entExt">
+ &ent1;, &ent2;!
+</p></body></html>
+
+<!-- Let world.txt contain "world" (excluding the quotes) -->
diff --git a/test/testcases/tests/level3/core/files/canonicalform05.xml b/test/testcases/tests/level3/core/files/canonicalform05.xml
new file mode 100644
index 0000000..8e7a345
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/canonicalform05.xml
@@ -0,0 +1,13 @@
+<!DOCTYPE html [
+<!ATTLIST p attrExtEnt ENTITY #IMPLIED>
+<!ENTITY ent1 "Hello">
+<!ENTITY ent2 SYSTEM "world.txt">
+<!ENTITY entExt SYSTEM "earth.gif" NDATA gif>
+<!NOTATION gif SYSTEM "viewgif.exe">
+]>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>canonicalform05</title></head><body onload="parent.loadComplete()">
+<p attrExtEnt="entExt">
+ &ent1;, &ent2;!
+</p></body></html>
+
+<!-- Let world.txt contain "world" (excluding the quotes) -->
diff --git a/test/testcases/tests/level3/core/files/datatype_normalization.svg b/test/testcases/tests/level3/core/files/datatype_normalization.svg
new file mode 100644
index 0000000..77f4988
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/datatype_normalization.svg
@@ -0,0 +1,89 @@
+<!DOCTYPE svg [
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+<!ELEMENT svg (rect, script, data)>
+<!ATTLIST svg
+ xmlns CDATA #IMPLIED
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ELEMENT rect EMPTY>
+ <!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED>
+ <!ELEMENT script (#PCDATA)>
+ <!ATTLIST script type CDATA #IMPLIED>
+ <!ELEMENT data (double*, boolean*, decimal*, float*, dateTime*, time*)>
+ <!ATTLIST data xmlns CDATA #IMPLIED>
+ <!ELEMENT double (#PCDATA)>
+ <!ATTLIST double
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT boolean (#PCDATA)>
+ <!ATTLIST boolean
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT decimal (#PCDATA)>
+ <!ATTLIST decimal
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT float (#PCDATA)>
+ <!ATTLIST float
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT dateTime (#PCDATA)>
+ <!ATTLIST dateTime
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT time (#PCDATA)>
+ <!ATTLIST time
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+]>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2000/svg datatype_normalization.svg.xsd">
+<rect x="0" y="0" width="100" height="100"/><script type="text/ecmascript">&svgtest;&svgunit;</script>
+<data xmlns='http://www.w3.org/2001/DOM-Test-Suite/Level-3/datatype_normalization'>
+<double value="
+ +0003.141592600E+0000 " union=" +0003.141592600E+0000
+ "> -31415926.00E-7
+2.718</double>
+<double value=" NaN" union="NaN "> INF -INF </double>
+<double value="
+1 " union="1
+"> -0</double>
+<boolean value="
+ true" union="false
+ "> false true false </boolean>
+<boolean value="
+ 1" union=" 0
+ ">0 1 0 </boolean>
+<decimal value=" +0003.141592600 " union=" +0003.141592600 "> +10 .1 </decimal>
+<decimal value=" 01 " union=" 01 "> -.001 </decimal>
+<float value=" +0003.141592600E+0000 " union=" +0003.141592600E+0000 "> -31415926.00E-7
+2.718</float>
+<float value=" NaN " union=" NaN "> INF -INF </float>
+<float value="
+1 " union="1
+">-0</float>
+<dateTime value="
+2004-01-21T15:30:00-05:00" union="2004-01-21T20:30:00-05:00
+">2004-01-21T15:30:00
+2004-01-21T15:30:00Z</dateTime>
+<dateTime value="
+2004-01-21T15:30:00.0000-05:00" union="2004-01-21T15:30:00.0000-05:00
+"> 2004-01-21T15:30:00.0000 </dateTime>
+<dateTime value="2004-01-21T15:30:00.0001-05:00" union="2004-01-21T15:30:00.0001-05:00">2004-01-21T15:30:00.0001</dateTime>
+<time value="
+15:30:00-05:00" union="15:30:00-05:00
+"> 15:30:00 </time>
+<time value="
+ 15:30:00.0000-05:00" union=" 15:30:00.0000-05:00
+ ">15:30:00.0000</time>
+<time value="
+ 15:30:00.0001-05:00" union="15:30:00.0001-05:00
+ ">15:30:00.0001</time>
+</data>
+</svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/datatype_normalization.svg.xsd b/test/testcases/tests/level3/core/files/datatype_normalization.svg.xsd
new file mode 100644
index 0000000..e2cdde3
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/datatype_normalization.svg.xsd
@@ -0,0 +1,60 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+<!--
+
+This schema is attempts to use every construct that could
+be interrogated by DOM Level 3 and is no way intended to
+be a general purpose schema for SVG
+
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:data="http://www.w3.org/2001/DOM-Test-Suite/Level-3/datatype_normalization">
+
+ <xsd:import namespace="http://www.w3.org/2001/DOM-Test-Suite/Level-3/datatype_normalization" schemaLocation="datatype_normalization.xsd"/>
+
+ <xsd:element name="svg">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="rect"/>
+ <xsd:element ref="script"/>
+ <xsd:element ref="data:data"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="rect">
+ <xsd:complexType>
+ <xsd:attribute name="x" type="xsd:double" use="required"/>
+ <xsd:attribute name="y" type="xsd:double" use="required"/>
+ <xsd:attribute name="height" type="xsd:double" use="required"/>
+ <xsd:attribute name="width" type="xsd:double" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="script">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/test/testcases/tests/level3/core/files/datatype_normalization.xml b/test/testcases/tests/level3/core/files/datatype_normalization.xml
new file mode 100644
index 0000000..cced1b9
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/datatype_normalization.xml
@@ -0,0 +1,90 @@
+<!DOCTYPE svg [
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+<!ELEMENT svg (rect, script, data)>
+<!ATTLIST svg
+ xmlns CDATA #IMPLIED
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ELEMENT rect EMPTY>
+ <!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED>
+ <!ELEMENT script (#PCDATA)>
+ <!ATTLIST script type CDATA #IMPLIED>
+ <!ELEMENT data (double*, boolean*, decimal*, float*, dateTime*, time*)>
+ <!ATTLIST data xmlns CDATA #IMPLIED>
+ <!ELEMENT double (#PCDATA)>
+ <!ATTLIST double
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT boolean (#PCDATA)>
+ <!ATTLIST boolean
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT decimal (#PCDATA)>
+ <!ATTLIST decimal
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT float (#PCDATA)>
+ <!ATTLIST float
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT dateTime (#PCDATA)>
+ <!ATTLIST dateTime
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+ <!ELEMENT time (#PCDATA)>
+ <!ATTLIST time
+ value CDATA #IMPLIED
+ union CDATA #IMPLIED>
+
+]>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2000/svg datatype_normalization.svg.xsd">
+<rect x="0" y="0" width="100" height="100"/><script type="text/ecmascript">&svgtest;&svgunit;</script>
+<data xmlns='http://www.w3.org/2001/DOM-Test-Suite/Level-3/datatype_normalization'>
+<double value="
+ +0003.141592600E+0000 " union=" +0003.141592600E+0000
+ "> -31415926.00E-7
+2.718</double>
+<double value=" NaN" union="NaN "> INF -INF </double>
+<double value="
+1 " union="1
+"> -0</double>
+<boolean value="
+ true" union="false
+ "> false true false </boolean>
+<boolean value="
+ 1" union=" 0
+ ">0 1 0 </boolean>
+<decimal value=" +0003.141592600 " union=" +0003.141592600 "> +10 .1 </decimal>
+<decimal value=" 01 " union=" 01 "> -.001 </decimal>
+<float value=" +0003.141592600E+0000 " union=" +0003.141592600E+0000 "> -31415926.00E-7
+2.718</float>
+<float value=" NaN " union=" NaN "> INF -INF </float>
+<float value="
+1 " union="1
+">-0</float>
+<dateTime value="
+2004-01-21T15:30:00-05:00" union="2004-01-21T20:30:00-05:00
+">2004-01-21T15:30:00
+2004-01-21T15:30:00Z</dateTime>
+<dateTime value="
+2004-01-21T15:30:00.0000-05:00" union="2004-01-21T15:30:00.0000-05:00
+"> 2004-01-21T15:30:00.0000 </dateTime>
+<dateTime value="2004-01-21T15:30:00.0001-05:00" union="2004-01-21T15:30:00.0001-05:00">2004-01-21T15:30:00.0001</dateTime>
+<time value="
+15:30:00-05:00" union="15:30:00-05:00
+"> 15:30:00 </time>
+<time value="
+ 15:30:00.0000-05:00" union=" 15:30:00.0000-05:00
+ ">15:30:00.0000</time>
+<time value="
+ 15:30:00.0001-05:00" union="15:30:00.0001-05:00
+ ">15:30:00.0001</time>
+</data>
+</svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/datatype_normalization.xsd b/test/testcases/tests/level3/core/files/datatype_normalization.xsd
new file mode 100644
index 0000000..2b3a789
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/datatype_normalization.xsd
@@ -0,0 +1,212 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/2001/DOM-Test-Suite/Level-3/datatype_normalization"
+ xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-3/datatype_normalization">
+
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="double"/>
+ <xsd:element ref="boolean"/>
+ <xsd:element ref="decimal"/>
+ <xsd:element ref="float"/>
+ <xsd:element ref="dateTime"/>
+ <xsd:element ref="time"/>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="myDouble">
+ <xsd:restriction base="xsd:double"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myDoubleList">
+ <xsd:list itemType="myDouble"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myDoubleUnion">
+ <xsd:union memberTypes="myDouble xsd:anyURI"/>
+ </xsd:simpleType>
+
+ <xsd:element name="double">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="myDoubleList">
+ <xsd:attribute name="value" type="myDouble" use="required"/>
+ <xsd:attribute name="union" type="myDoubleUnion" use="required"/>
+ <xsd:attribute name="default" type="myDouble"
+ default="+0003.141592600E+0000" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+
+ <xsd:simpleType name="myBoolean">
+ <xsd:restriction base="xsd:boolean"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myBooleanList">
+ <xsd:list itemType="myBoolean"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myBooleanUnion">
+ <xsd:union memberTypes="myBoolean xsd:anyURI"/>
+ </xsd:simpleType>
+
+ <xsd:element name="boolean">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="myBooleanList">
+ <xsd:attribute name="value" type="myBoolean" use="required"/>
+ <xsd:attribute name="union" type="myDoubleUnion" use="required"/>
+ <xsd:attribute name="default" type="myBoolean"
+ default="1" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+
+ <xsd:simpleType name="myDecimal">
+ <xsd:restriction base="xsd:decimal"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myDecimalList">
+ <xsd:list itemType="myDecimal"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myDecimalUnion">
+ <xsd:union memberTypes="myDecimal xsd:anyURI"/>
+ </xsd:simpleType>
+
+ <xsd:element name="decimal">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="myDecimalList">
+ <xsd:attribute name="value" type="myDecimal" use="required"/>
+ <xsd:attribute name="union" type="myDecimalUnion" use="required"/>
+ <xsd:attribute name="default" type="myDecimal"
+ default="+0003.141592600" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="myFloat">
+ <xsd:restriction base="xsd:float"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myFloatList">
+ <xsd:list itemType="myFloat"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myFloatUnion">
+ <xsd:union memberTypes="myFloat xsd:anyURI"/>
+ </xsd:simpleType>
+
+ <xsd:element name="float">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="myFloatList">
+ <xsd:attribute name="value" type="myFloat" use="required"/>
+ <xsd:attribute name="union" type="myFloatUnion" use="required"/>
+ <xsd:attribute name="default" type="myDouble"
+ default="+0003.141592600E+0000" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+
+ <xsd:simpleType name="myDateTime">
+ <xsd:restriction base="xsd:dateTime"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myDateTimeList">
+ <xsd:list itemType="myDateTime"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myDateTimeUnion">
+ <xsd:union memberTypes="myDateTime xsd:anyURI"/>
+ </xsd:simpleType>
+
+ <xsd:element name="dateTime">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="myDateTimeList">
+ <xsd:attribute name="value" type="myDateTime" use="required"/>
+ <xsd:attribute name="union" type="myDateTimeUnion" use="required"/>
+ <xsd:attribute name="default" type="myDateTime"
+ default="2004-01-21T15:30:00-05:00" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+
+ <xsd:simpleType name="myTime">
+ <xsd:restriction base="xsd:time"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myTimeList">
+ <xsd:list itemType="myTime"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myTimeUnion">
+ <xsd:union memberTypes="myTime xsd:anyURI"/>
+ </xsd:simpleType>
+
+ <xsd:element name="time">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="myTimeList">
+ <xsd:attribute name="value" type="myTime" use="required"/>
+ <xsd:attribute name="union" type="myTimeUnion" use="required"/>
+ <xsd:attribute name="default" type="myTime"
+ default="15:30:00-05:00" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+
+ <xsd:simpleType name="myUnion">
+ <xsd:union memberTypes="xsd:integer xsd:string"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myUnionList">
+ <xsd:list itemType="myUnion"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="myUnionUnion">
+ <xsd:union memberTypes="myUnion xsd:anyURI"/>
+ </xsd:simpleType>
+
+ <xsd:element name="union">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="myUnionList">
+ <xsd:attribute name="value" type="myUnion" use="required"/>
+ <xsd:attribute name="union" type="myUnionUnion" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/test/testcases/tests/level3/core/files/datatype_normalization2.svg b/test/testcases/tests/level3/core/files/datatype_normalization2.svg
new file mode 100644
index 0000000..14e5dd7
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/datatype_normalization2.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY svgunit SYSTEM "svgunit.js">
+ <!ENTITY svgtest SYSTEM "svgtest.js">
+ <!ELEMENT svg (rect, script, body)>
+ <!ATTLIST svg
+ xmlns CDATA #IMPLIED
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ELEMENT rect EMPTY>
+ <!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED>
+ <!ATTLIST body xmlns CDATA #IMPLIED>
+]>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2000/svg datatype_normalization2.svg.xsd">
+<rect x="0" y="0" width="100" height="100"/><script type="text/ecmascript">&svgtest;&svgunit;</script><body xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ <!-- preserve, string default -->
+ <em> EMP 0001 </em>
+ <!-- explicit preserve -->
+ <acronym> EMP 0001 </acronym>
+ <!-- explicit collapse -->
+ <code>
+ EMP 0001
+</code>
+ <code>EMP 0001</code>
+ <code>EMP 0001</code>
+ <!-- explicit replace -->
+ <sup>
+ EMP 0001
+</sup>
+ <sup>EMP 0001</sup>
+ <sup>EMP 0001</sup>
+ <sup>EMP
+0001</sup>
+ </p>
+</body>
+</svg>
diff --git a/test/testcases/tests/level3/core/files/datatype_normalization2.svg.xsd b/test/testcases/tests/level3/core/files/datatype_normalization2.svg.xsd
new file mode 100644
index 0000000..0df77aa
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/datatype_normalization2.svg.xsd
@@ -0,0 +1,60 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+<!--
+
+This schema is attempts to use every construct that could
+be interrogated by DOM Level 3 and is no way intended to
+be a general purpose schema for SVG
+
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+ <xsd:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="datatype_normalization2.xsd"/>
+
+ <xsd:element name="svg">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="rect"/>
+ <xsd:element ref="script"/>
+ <xsd:element ref="xhtml:body"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="rect">
+ <xsd:complexType>
+ <xsd:attribute name="x" type="xsd:double" use="required"/>
+ <xsd:attribute name="y" type="xsd:double" use="required"/>
+ <xsd:attribute name="height" type="xsd:double" use="required"/>
+ <xsd:attribute name="width" type="xsd:double" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="script">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/test/testcases/tests/level3/core/files/datatype_normalization2.xhtml b/test/testcases/tests/level3/core/files/datatype_normalization2.xhtml
new file mode 100644
index 0000000..3b93b18
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/datatype_normalization2.xhtml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml datatype_normalization2.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>datatype_normalization2</title></head><body onload="parent.loadComplete()">
+ <p>
+ <!-- preserve, string default -->
+ <em> EMP 0001 </em>
+ <!-- explicit preserve -->
+ <acronym> EMP 0001 </acronym>
+ <!-- explicit collapse -->
+ <code>
+ EMP 0001
+</code>
+ <code>EMP 0001</code>
+ <code>EMP 0001</code>
+ <!-- explicit replace -->
+ <sup>
+ EMP 0001
+</sup>
+ <sup>EMP 0001</sup>
+ <sup>EMP 0001</sup>
+ <sup>EMP
+0001</sup>
+ </p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/datatype_normalization2.xml b/test/testcases/tests/level3/core/files/datatype_normalization2.xml
new file mode 100644
index 0000000..19d9415
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/datatype_normalization2.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml datatype_normalization2.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>datatype_normalization2</title></head><body onload="parent.loadComplete()">
+ <p>
+ <!-- preserve, string default -->
+ <em> EMP 0001 </em>
+ <!-- explicit preserve -->
+ <acronym> EMP 0001 </acronym>
+ <!-- explicit collapse -->
+ <code>
+ EMP 0001
+</code>
+ <code>EMP 0001</code>
+ <code>EMP 0001</code>
+ <!-- explicit replace -->
+ <sup>
+ EMP 0001
+</sup>
+ <sup>EMP 0001</sup>
+ <sup>EMP 0001</sup>
+ <sup>EMP
+0001</sup>
+ </p>
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/datatype_normalization2.xsd b/test/testcases/tests/level3/core/files/datatype_normalization2.xsd
new file mode 100644
index 0000000..c7a7903
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/datatype_normalization2.xsd
@@ -0,0 +1,99 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+<!--
+
+This schema is intended to support specific DOM L3 tests is no way intended to
+be a general purpose schema for XHTML
+
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/1999/xhtml"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsd:element name="html">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="head"/>
+ <xsd:element ref="body"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="head">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="meta"/>
+ <xsd:element ref="title"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="title" type="xsd:string"/>
+ <xsd:element name="meta">
+ <xsd:complexType>
+ <xsd:attribute name="http-equiv" type="xsd:string" use="required"/>
+ <xsd:attribute name="content" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="body">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="p"/>
+ </xsd:sequence>
+ <xsd:attribute name="onload" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="p">
+ <xsd:complexType>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="em"/>
+ <xsd:element ref="code"/>
+ <xsd:element ref="sup"/>
+ <xsd:element ref="acronym"/>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="em" type="xsd:string"/>
+
+ <xsd:simpleType name="acronym">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="preserve"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="acronym" type="acronym"/>
+
+ <xsd:simpleType name="code">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="collapse"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="code" type="code"/>
+
+ <xsd:simpleType name="sup">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="replace"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="sup" type="sup"/>
+
+</xsd:schema>
diff --git a/test/testcases/tests/level3/core/files/external_barfoo.svg b/test/testcases/tests/level3/core/files/external_barfoo.svg
new file mode 100644
index 0000000..98afcde
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/external_barfoo.svg
@@ -0,0 +1,31 @@
+<!DOCTYPE svg [
+<!ENTITY ent1 SYSTEM 'external_foo.ent'>
+<!ENTITY ent2 SYSTEM 'external_foobr.ent'>
+<!ENTITY ent3 SYSTEM 'external_widget.ent'>
+<!ENTITY ent5 PUBLIC "entityURI" "entityFile" NDATA notation1>
+<!ELEMENT svg (rect,script,p*)>
+<!ATTLIST svg xmlns CDATA #IMPLIED>
+<!ELEMENT rect EMPTY>
+<!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED
+ fill CDATA #REQUIRED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ATTLIST p xmlns CDATA #IMPLIED
+ xml:base CDATA #IMPLIED>
+<!ELEMENT br EMPTY>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script type CDATA #IMPLIED>
+<!ENTITY svgunit SYSTEM "svgunit.js">
+<!ENTITY svgtest SYSTEM "svgtest.js">
+<!NOTATION notation1 PUBLIC "notation1File">
+]>
+<svg xmlns="http://www.w3.org/2000/svg">
+<rect x="0" y="0" width="100" height="100" fill="blue"/>
+<script type="text/ecmascript">&svgtest;&svgunit;</script>
+<p xmlns='http://www.w3.org/1999/xhtml'>bar&ent2;&ent1;</p>
+<p xmlns='http://www.w3.org/1999/xhtml' xml:base="http://www.example.com/bogus_base">bar&ent2;&ent1;</p>
+&ent3;
+</svg> \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/external_barfoo.xhtml b/test/testcases/tests/level3/core/files/external_barfoo.xhtml
new file mode 100644
index 0000000..e316dee
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/external_barfoo.xhtml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html [
+<!ENTITY ent1 SYSTEM 'external_foo.ent'>
+<!ENTITY ent2 SYSTEM 'external_foobr.ent'>
+<!ENTITY ent3 SYSTEM 'external_widget.ent'>
+<!ENTITY ent5 PUBLIC "entityURI" "entityFile" NDATA notation1>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p*)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ATTLIST p xml:base CDATA #IMPLIED
+ xmlns CDATA #IMPLIED>
+<!ELEMENT br EMPTY>
+<!NOTATION notation1 PUBLIC "notation1File">
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>external entity encoding sample</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar&ent2;&ent1;</p>
+<p xml:base="http://www.example.com/bogus_base">bar&ent2;&ent1;</p>
+&ent3;
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/external_barfoo.xml b/test/testcases/tests/level3/core/files/external_barfoo.xml
new file mode 100644
index 0000000..cc36fa4
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/external_barfoo.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html [
+<!ENTITY ent1 SYSTEM 'external_foo.ent'>
+<!ENTITY ent2 SYSTEM 'external_foobr.ent'>
+<!ENTITY ent3 SYSTEM 'external_widget.ent'>
+<!ENTITY ent5 PUBLIC "entityURI" "entityFile" NDATA notation1>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT body (p*)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ATTLIST p xml:base CDATA #IMPLIED
+ xmlns CDATA #IMPLIED>
+<!ELEMENT br EMPTY>
+<!NOTATION notation1 PUBLIC "notation1File">
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>external entity encoding sample</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>bar&ent2;&ent1;</p>
+<p xml:base="http://www.example.com/bogus_base">bar&ent2;&ent1;</p>
+&ent3;
+</body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/external_foo.ent b/test/testcases/tests/level3/core/files/external_foo.ent
new file mode 100644
index 0000000..fe8efcd
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/external_foo.ent
Binary files differ
diff --git a/test/testcases/tests/level3/core/files/external_foobr.ent b/test/testcases/tests/level3/core/files/external_foobr.ent
new file mode 100644
index 0000000..2cd59e8
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/external_foobr.ent
@@ -0,0 +1 @@
+<br/>foo \ No newline at end of file
diff --git a/test/testcases/tests/level3/core/files/external_widget.ent b/test/testcases/tests/level3/core/files/external_widget.ent
new file mode 100644
index 0000000..7c7d8a9
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/external_widget.ent
@@ -0,0 +1 @@
+<p xmlns='http://www.w3.org/1999/xhtml'>widget</p>
diff --git a/test/testcases/tests/level3/core/files/hc_nodtdstaff.html b/test/testcases/tests/level3/core/files/hc_nodtdstaff.html
new file mode 100644
index 0000000..0506a01
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/hc_nodtdstaff.html
@@ -0,0 +1,10 @@
+<html><head><title>hc_nodtdstaff</title></head><body onload="parent.loadComplete()">
+ <p>
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/hc_nodtdstaff.svg b/test/testcases/tests/level3/core/files/hc_nodtdstaff.svg
new file mode 100644
index 0000000..0ff4110
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/hc_nodtdstaff.svg
@@ -0,0 +1,10 @@
+<svg xmlns='http://www.w3.org/2000/svg'><rect x="0" y="0" width="100" height="100"/><head xmlns='http://www.w3.org/1999/xhtml'><title>hc_nodtdstaff</title></head><body xmlns='http://www.w3.org/1999/xhtml'>
+ <p>
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+</body></svg>
diff --git a/test/testcases/tests/level3/core/files/hc_nodtdstaff.xhtml b/test/testcases/tests/level3/core/files/hc_nodtdstaff.xhtml
new file mode 100644
index 0000000..d183b02
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/hc_nodtdstaff.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>hc_nodtdstaff</title></head><body onload="parent.loadComplete()">
+ <p>
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/hc_nodtdstaff.xml b/test/testcases/tests/level3/core/files/hc_nodtdstaff.xml
new file mode 100644
index 0000000..7926374
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/hc_nodtdstaff.xml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>hc_nodtdstaff</title></head><body onload="parent.loadComplete()">
+ <p>
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/hc_staff.svg b/test/testcases/tests/level3/core/files/hc_staff.svg
new file mode 100644
index 0000000..e11e135
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/hc_staff.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE svg
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+ <!ENTITY svgunit SYSTEM "svgunit.js">
+ <!ENTITY svgtest SYSTEM "svgtest.js">
+ <!ELEMENT svg (rect, script, body)>
+ <!ATTLIST svg
+ xmlns CDATA #IMPLIED
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ELEMENT rect EMPTY>
+ <!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED>
+ <!ATTLIST body xmlns CDATA #IMPLIED>
+]>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2000/svg hc_staff.svg.xsd">
+<rect x="0" y="0" width="100" height="100"/><script type="text/ecmascript">&svgtest;&svgunit;</script><body xmlns="http://www.w3.org/1999/xhtml">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></svg>
diff --git a/test/testcases/tests/level3/core/files/hc_staff.svg.xsd b/test/testcases/tests/level3/core/files/hc_staff.svg.xsd
new file mode 100644
index 0000000..52335a3
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/hc_staff.svg.xsd
@@ -0,0 +1,60 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+<!--
+
+This schema is attempts to use every construct that could
+be interrogated by DOM Level 3 and is no way intended to
+be a general purpose schema for SVG
+
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+ <xsd:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="hc_staff.xsd"/>
+
+ <xsd:element name="svg">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="rect"/>
+ <xsd:element ref="script"/>
+ <xsd:element ref="xhtml:body"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="rect">
+ <xsd:complexType>
+ <xsd:attribute name="x" type="xsd:double" use="required"/>
+ <xsd:attribute name="y" type="xsd:double" use="required"/>
+ <xsd:attribute name="height" type="xsd:double" use="required"/>
+ <xsd:attribute name="width" type="xsd:double" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="script">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/test/testcases/tests/level3/core/files/hc_staff.xhtml b/test/testcases/tests/level3/core/files/hc_staff.xhtml
new file mode 100644
index 0000000..f2b6e71
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/hc_staff.xhtml
@@ -0,0 +1,73 @@
+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="svgunit.js"/><script charset="UTF-8" type="text/javascript" src="svgtest.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="parent.loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/hc_staff.xml b/test/testcases/tests/level3/core/files/hc_staff.xml
new file mode 100644
index 0000000..0366a05
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/hc_staff.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="svgunit.js"/><script charset="UTF-8" type="text/javascript" src="svgtest.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="parent.loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
diff --git a/test/testcases/tests/level3/core/files/hc_staff.xsd b/test/testcases/tests/level3/core/files/hc_staff.xsd
new file mode 100644
index 0000000..915cba0
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/hc_staff.xsd
@@ -0,0 +1,250 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+<!--
+
+This schema is attempts to use every construct that could
+be interrogated by DOM Level 3 and is no way intended to
+be a general purpose schema for XHTML
+
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/1999/xhtml"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsd:element name="html">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="head"/>
+ <xsd:element ref="body"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="head">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="meta"/>
+ <xsd:element ref="title"/>
+ <xsd:element ref="script" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="meta">
+ <xsd:complexType>
+ <xsd:attribute name="http-equiv" type="xsd:string" use="required"/>
+ <xsd:attribute name="content" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="script">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="src" type="xsd:string" use="optional"/>
+ <xsd:attribute name="charset" type="xsd:string" use="optional"/>
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="title" type="xsd:string"/>
+
+ <xsd:element name="body">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="p"/>
+ </xsd:sequence>
+ <xsd:attribute name="onload" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="classType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Yes"/>
+ <xsd:enumeration value="No"/>
+ <xsd:enumeration value="Y&#945;"/>
+ <xsd:enumeration value="Y"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="part1">
+ <xsd:sequence>
+ <xsd:element ref="em"/>
+ <xsd:element ref="strong"/>
+ <xsd:element ref="code"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="pType">
+ <xsd:complexContent>
+ <xsd:extension base="part1">
+ <xsd:sequence>
+ <xsd:element ref="sup"/>
+ <xsd:element ref="var"/>
+ <xsd:element ref="acronym"/>
+ </xsd:sequence>
+ <xsd:attribute name="title" type="xsd:string" use="optional"/>
+ <xsd:attribute name="class" type="classType" use="optional"/>
+ <xsd:attribute name="dir" type="dirType" use="optional" default="rtl"/>
+ <xsd:attribute name="foo" type="xsd:string" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+
+ <xsd:element name="p">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:restriction base="pType">
+ <xsd:sequence>
+ <xsd:element ref="em"/>
+ <xsd:element ref="strong"/>
+ <xsd:element ref="code"/>
+ <xsd:element ref="sup"/>
+ <xsd:element ref="var"/>
+ <xsd:element ref="acronym"/>
+ </xsd:sequence>
+ <xsd:attribute name="title" type="xsd:string" use="optional"/>
+ <xsd:attribute name="class" type="classType" use="optional"/>
+ <xsd:attribute name="dir" type="dirType" use="optional" default="rtl"/>
+ <xsd:attribute name="foo" type="xsd:string" use="prohibited"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="emp0001_3Type">
+ <xsd:restriction base="xsd:ID">
+ <xsd:enumeration value="EMP0001"/>
+ <xsd:enumeration value="EMP0002"/>
+ <xsd:enumeration value="EMP0003"/>
+ <xsd:enumeration value="EMP0004"/>
+ <xsd:enumeration value="EMP0005"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="emp0004_5Type">
+ <xsd:restriction base="xsd:ID">
+ <xsd:enumeration value="EMP0006"/>
+ <xsd:enumeration value="EMP0007"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="unboundedEmType">
+ <xsd:union memberTypes="emp0001_3Type emp0004_5Type"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="emType">
+ <xsd:restriction base="unboundedEmType">
+ <xsd:pattern value="EMP[0-9]*"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:element name="em" type="emType"/>
+
+ <xsd:simpleType name="unboundedStrongType">
+ <xsd:list itemType="xsd:string"/>
+ </xsd:simpleType>
+
+
+ <xsd:simpleType name="strongType">
+ <xsd:restriction base="unboundedStrongType">
+ <xsd:maxLength value="100"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="strong" type="strongType"/>
+
+ <!-- union of union and union of list -->
+ <xsd:simpleType name="integers">
+ <xsd:list itemType="xsd:integer"/>
+ </xsd:simpleType>
+
+
+ <xsd:simpleType name="sup">
+ <xsd:union memberTypes="emType integers xsd:string"/>
+ </xsd:simpleType>
+ <xsd:element name="sup" type="sup"/>
+
+ <!-- list of union of union -->
+ <xsd:simpleType name="supervisoryTitle">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Specialist"/>
+ <xsd:enumeration value="Director"/>
+ <xsd:enumeration value="Manager"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="nonSupervisoryTitle">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Accountant"/>
+ <xsd:enumeration value="Secretary"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="title">
+ <xsd:union memberTypes="supervisoryTitle nonSupervisoryTitle"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="field">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Department"/>
+ <xsd:enumeration value="Personnel"/>
+ <xsd:enumeration value="Computer"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="codeItem">
+ <xsd:union memberTypes="field title"/>
+ </xsd:simpleType>
+ <xsd:simpleType name="code">
+ <xsd:list itemType="codeItem"/>
+ </xsd:simpleType>
+ <xsd:element name="code" type="code"/>
+
+ <xsd:element name="span" type="xsd:string"/>
+
+ <xsd:complexType name="var" mixed="true">
+ <xsd:sequence>
+ <xsd:element ref="span" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="var" type="var"/>
+
+ <xsd:simpleType name="dirType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="ltr"/>
+ <xsd:enumeration value="rtl"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="acronym">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="class" type="classType" use="optional"/>
+ <xsd:attribute name="title" type="xsd:string" use="optional"/>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
diff --git a/test/testcases/tests/level3/core/files/svgtest.js b/test/testcases/tests/level3/core/files/svgtest.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/svgtest.js
diff --git a/test/testcases/tests/level3/core/files/svgunit.js b/test/testcases/tests/level3/core/files/svgunit.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/svgunit.js
diff --git a/test/testcases/tests/level3/core/files/typeinfo.svg b/test/testcases/tests/level3/core/files/typeinfo.svg
new file mode 100644
index 0000000..35c2d44
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/typeinfo.svg
@@ -0,0 +1,29 @@
+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE svg
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY svgunit SYSTEM "svgunit.js">
+ <!ENTITY svgtest SYSTEM "svgtest.js">
+ <!ELEMENT svg (rect, script, body)>
+ <!ATTLIST svg
+ xmlns CDATA #IMPLIED
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ELEMENT rect EMPTY>
+ <!ATTLIST rect
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ width CDATA #REQUIRED
+ height CDATA #REQUIRED>
+ <!ATTLIST body xmlns CDATA #IMPLIED>
+]>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2000/svg typeinfo.svg.xsd">
+<rect x="0" y="0" width="100" height="100"/><script type="text/ecmascript">&svgtest;&svgunit;</script><body xmlns="http://www.w3.org/1999/xhtml">
+ <p id="foo1"><strong>foo1 foo2</strong></p>
+ <p id="foo2"><code>1</code><code>unbounded</code></p>
+ <p><em>127</em><em>48</em></p>
+ <p><acronym>3.1415926 2.718</acronym></p>
+ </body>
+</svg>
diff --git a/test/testcases/tests/level3/core/files/typeinfo.svg.xsd b/test/testcases/tests/level3/core/files/typeinfo.svg.xsd
new file mode 100644
index 0000000..51b4e7d
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/typeinfo.svg.xsd
@@ -0,0 +1,60 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+<!--
+
+This schema is attempts to use every construct that could
+be interrogated by DOM Level 3 and is no way intended to
+be a general purpose schema for SVG
+
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+ <xsd:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="typeinfo.xsd"/>
+
+ <xsd:element name="svg">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="rect"/>
+ <xsd:element ref="script"/>
+ <xsd:element ref="xhtml:body"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="rect">
+ <xsd:complexType>
+ <xsd:attribute name="x" type="xsd:double" use="required"/>
+ <xsd:attribute name="y" type="xsd:double" use="required"/>
+ <xsd:attribute name="height" type="xsd:double" use="required"/>
+ <xsd:attribute name="width" type="xsd:double" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="script">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/test/testcases/tests/level3/core/files/typeinfo.xhtml b/test/testcases/tests/level3/core/files/typeinfo.xhtml
new file mode 100644
index 0000000..23eeacd
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/typeinfo.xhtml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd"[
+<!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml typeinfo.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title></head>
+ <body onload="parent.loadComplete()">
+ <p id="foo1"><strong>foo1 foo2</strong></p>
+ <p id="foo2"><code>1</code><code>unbounded</code></p>
+ <p><em>127</em><em>48</em></p>
+ <p><acronym>3.1415926 2.718</acronym></p>
+ </body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/typeinfo.xml b/test/testcases/tests/level3/core/files/typeinfo.xml
new file mode 100644
index 0000000..b94469b
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/typeinfo.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd"[
+<!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml typeinfo.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title></head>
+ <body onload="parent.loadComplete()">
+ <p id="foo1"><strong>foo1 foo2</strong></p>
+ <p id="foo2"><code>1</code><code>unbounded</code></p>
+ <p><em>127</em><em>48</em></p>
+ <p><acronym>3.1415926 2.718</acronym></p>
+ </body>
+</html>
diff --git a/test/testcases/tests/level3/core/files/typeinfo.xsd b/test/testcases/tests/level3/core/files/typeinfo.xsd
new file mode 100644
index 0000000..ff72aef
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/typeinfo.xsd
@@ -0,0 +1,107 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+<!--
+
+This schema provides supports misc_typeinfo.xml
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/1999/xhtml"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsd:element name="html">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="head"/>
+ <xsd:element ref="body"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="head">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="meta"/>
+ <xsd:element ref="title"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="title" type="xsd:string"/>
+ <xsd:element name="meta">
+ <xsd:complexType>
+ <xsd:attribute name="http-equiv" type="xsd:string" use="required"/>
+ <xsd:attribute name="content" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+
+
+ <xsd:element name="body">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="p"/>
+ </xsd:sequence>
+ <xsd:attribute name="onload" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="p">
+ <xsd:complexType>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="em"/>
+ <xsd:element ref="strong"/>
+ <xsd:element ref="code"/>
+ <xsd:element ref="acronym"/>
+ </xsd:choice>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="strong" type="xsd:IDREFS"/>
+ <xsd:element name="em" type="xsd:byte"/>
+ <xsd:simpleType name="unbounded">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="unbounded"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="unsignedIntOrUnbounded">
+ <xsd:union memberTypes="xsd:unsignedInt unbounded"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="doubleList">
+ <xsd:list itemType="xsd:double"/>
+ </xsd:simpleType>
+
+ <xsd:element name="acronym">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="doubleList">
+ <xsd:attribute name="id" use="optional" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="code">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="unsignedIntOrUnbounded">
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
diff --git a/test/testcases/tests/level3/core/files/xhtml1-strict.dtd b/test/testcases/tests/level3/core/files/xhtml1-strict.dtd
new file mode 100644
index 0000000..7ba5dd7
--- /dev/null
+++ b/test/testcases/tests/level3/core/files/xhtml1-strict.dtd
@@ -0,0 +1,65 @@
+<!--
+
+Copyright (c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+
+<!--
+
+This is a radically simplified DTD for use in the DOM Test Suites
+due to a XML non-conformance of one implementation in processing
+parameter entities. When that non-conformance is resolved,
+this DTD can be replaced by the normal DTD for XHTML.
+
+-->
+
+
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (meta,title,script*)>
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+ http-equiv CDATA #IMPLIED
+ content CDATA #IMPLIED>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT body (p*)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|em|strong|code|sup|var|acronym|abbr)*>
+<!ATTLIST p
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED
+ id ID #IMPLIED
+>
+<!ELEMENT em (#PCDATA)>
+<!ELEMENT span (#PCDATA)>
+<!ELEMENT strong (#PCDATA)>
+<!ELEMENT code (#PCDATA)>
+<!ELEMENT sup (#PCDATA)>
+<!ELEMENT var (#PCDATA|span)*>
+<!ELEMENT acronym (#PCDATA)>
+<!ATTLIST acronym
+ title CDATA #IMPLIED
+ class CDATA #IMPLIED
+ id ID #IMPLIED
+>
+<!ELEMENT abbr (#PCDATA)>
+<!ATTLIST abbr
+ title CDATA #IMPLIED
+ class CDATA #IMPLIED
+ id ID #IMPLIED
+>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ type CDATA #IMPLIED
+ src CDATA #IMPLIED
+ charset CDATA #IMPLIED>