C14N tests integrated into LibXML2 test suite
* Makefile.am result/c14n/* test/c14n/*: C14N tests integrated
into LibXML2 test suite
diff --git a/ChangeLog b/ChangeLog
index 5f2b667..f7c78b6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu May 30 23:34:27 2002 Aleksey Sanin <aleksey@aleksey.com>
+
+ * Makefile.am result/c14n/* test/c14n/*: C14N tests integrated
+ into LibXML2 test suite
+
Thu May 30 21:23:06 2002 Aleksey Sanin <aleksey@aleksey.com>
* c14n.c: propagating xpath ancesstors node fix to c14n
diff --git a/Makefile.am b/Makefile.am
index 9685540..df09e31 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -106,7 +106,7 @@
testall : tests SVGtests SAXtests
-tests: XMLtests XMLenttests HTMLtests Validtests URItests XPathtests XPtrtests XIncludetests Scripttests Catatests @TEST_SCHEMAS@ @TEST_THREADS@
+tests: XMLtests XMLenttests HTMLtests Validtests URItests XPathtests XPtrtests XIncludetests C14Ntests Scripttests Catatests @TEST_SCHEMAS@ @TEST_THREADS@
@(cd python ; $(MAKE) tests)
valgrind:
@@ -611,6 +611,38 @@
rm result.$$name ; \
fi ; fi ; done)
+C14Ntests : testC14N$(EXEEXT)
+ -@(for m in with-comments without-comments exc-without-comments ; do \
+ echo "##"; \
+ echo "## C14N tests: $$m"; \
+ echo "##"; \
+ for i in $(srcdir)/test/c14n/$$m/*.xml ; do \
+ if [ ! -d $$i ] ; then \
+ name=`basename $$i .xml`; \
+ echo $$name; \
+ if [ -e $(srcdir)/test/c14n/$$m/$$name.xpath ] ; then \
+ xpathFile=$(srcdir)/test/c14n/$$m/$$name.xpath; \
+ else \
+ xpathFile=""; \
+ fi; \
+ if [ -e $(srcdir)/test/c14n/$$m/$$name.ns ] ; then \
+ nsList=`cat $(srcdir)/test/c14n/$$m/$$name.ns`; \
+ else \
+ nsList=""; \
+ fi; \
+ $(CHECKER) $(top_builddir)/testC14N --$$m $$i $$xpathFile $$nsList > $(srcdir)/test/c14n/test.tmp; \
+ if [ $$? -eq 0 ]; then \
+ diff $(srcdir)/result/c14n/$$m/$$name $(srcdir)/test/c14n/test.tmp ; \
+ if [ $$? -ne 0 ]; then \
+ echo "Test failed"; \
+ fi; \
+ else \
+ echo "C14N failed"; \
+ fi; \
+ fi; \
+ rm -f $(srcdir)/test/c14n/test.tmp; \
+ done; \
+ done)
Schemastests: testSchemas$(EXEEXT)
@(echo > .memdump)
diff --git a/result/c14n/exc-without-comments/test-0 b/result/c14n/exc-without-comments/test-0
new file mode 100644
index 0000000..3806ea0
--- /dev/null
+++ b/result/c14n/exc-without-comments/test-0
@@ -0,0 +1,7 @@
+<e6 test="../baz">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="" xmlns:a="http://www.w3.org" a:foo="bar">
+ <e9 attr="default"></e9>
+ </e8>
+ </e7>
+ </e6>
\ No newline at end of file
diff --git a/result/c14n/exc-without-comments/test-1 b/result/c14n/exc-without-comments/test-1
new file mode 100644
index 0000000..bd5930f
--- /dev/null
+++ b/result/c14n/exc-without-comments/test-1
@@ -0,0 +1,7 @@
+<e6 xmlns:a="http://www.w3.org" test="../baz">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="" a:foo="bar">
+ <e9 xmlns:a="http://www.ietf.org" attr="default"></e9>
+ </e8>
+ </e7>
+ </e6>
\ No newline at end of file
diff --git a/result/c14n/with-comments/example-1 b/result/c14n/with-comments/example-1
new file mode 100644
index 0000000..d98d168
--- /dev/null
+++ b/result/c14n/with-comments/example-1
@@ -0,0 +1,6 @@
+<?xml-stylesheet href="doc.xsl"
+ type="text/xsl" ?>
+<doc>Hello, world!<!-- Comment 1 --></doc>
+<?pi-without-data?>
+<!-- Comment 2 -->
+<!-- Comment 3 -->
\ No newline at end of file
diff --git a/result/c14n/with-comments/example-2 b/result/c14n/with-comments/example-2
new file mode 100644
index 0000000..2afa15c
--- /dev/null
+++ b/result/c14n/with-comments/example-2
@@ -0,0 +1,11 @@
+<doc>
+ <clean> </clean>
+ <dirty> A B </dirty>
+ <mixed>
+ A
+ <clean> </clean>
+ B
+ <dirty> A B </dirty>
+ C
+ </mixed>
+</doc>
\ No newline at end of file
diff --git a/result/c14n/with-comments/example-3 b/result/c14n/with-comments/example-3
new file mode 100644
index 0000000..4c287e6
--- /dev/null
+++ b/result/c14n/with-comments/example-3
@@ -0,0 +1,14 @@
+<doc>
+ <e1></e1>
+ <e2></e2>
+ <e3 id="elem3" name="elem3"></e3>
+ <e4 id="elem4" name="elem4"></e4>
+ <e5 xmlns="http://www.uvic.ca" xmlns:a="http://www.w3.org" xmlns:b="http://www.ietf.org" attr="I'm" attr2="all" b:attr="sorted" a:attr="out"></e5>
+ <e6 xmlns:a="http://www.w3.org">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="">
+ <e9 xmlns:a="http://www.ietf.org" attr="default"></e9>
+ </e8>
+ </e7>
+ </e6>
+</doc>
\ No newline at end of file
diff --git a/result/c14n/with-comments/example-5 b/result/c14n/with-comments/example-5
new file mode 100644
index 0000000..457d402
--- /dev/null
+++ b/result/c14n/with-comments/example-5
@@ -0,0 +1,4 @@
+<doc attrExtEnt="entExt">
+ Hello, world!
+</doc>
+<!-- Let world.txt contain "world" (excluding the quotes) -->
\ No newline at end of file
diff --git a/result/c14n/with-comments/example-6 b/result/c14n/with-comments/example-6
new file mode 100644
index 0000000..0be38f9
--- /dev/null
+++ b/result/c14n/with-comments/example-6
@@ -0,0 +1 @@
+<doc>©</doc>
\ No newline at end of file
diff --git a/result/c14n/with-comments/example-7 b/result/c14n/with-comments/example-7
new file mode 100644
index 0000000..0a96cc4
--- /dev/null
+++ b/result/c14n/with-comments/example-7
@@ -0,0 +1 @@
+<e1 xmlns="http://www.ietf.org" xmlns:w3c="http://www.w3.org"><e3 xmlns="" id="E3" xml:space="preserve"></e3></e1>
\ No newline at end of file
diff --git a/result/c14n/without-comments/example-1 b/result/c14n/without-comments/example-1
new file mode 100644
index 0000000..af9a977
--- /dev/null
+++ b/result/c14n/without-comments/example-1
@@ -0,0 +1,4 @@
+<?xml-stylesheet href="doc.xsl"
+ type="text/xsl" ?>
+<doc>Hello, world!</doc>
+<?pi-without-data?>
\ No newline at end of file
diff --git a/result/c14n/without-comments/example-2 b/result/c14n/without-comments/example-2
new file mode 100644
index 0000000..2afa15c
--- /dev/null
+++ b/result/c14n/without-comments/example-2
@@ -0,0 +1,11 @@
+<doc>
+ <clean> </clean>
+ <dirty> A B </dirty>
+ <mixed>
+ A
+ <clean> </clean>
+ B
+ <dirty> A B </dirty>
+ C
+ </mixed>
+</doc>
\ No newline at end of file
diff --git a/result/c14n/without-comments/example-3 b/result/c14n/without-comments/example-3
new file mode 100644
index 0000000..4c287e6
--- /dev/null
+++ b/result/c14n/without-comments/example-3
@@ -0,0 +1,14 @@
+<doc>
+ <e1></e1>
+ <e2></e2>
+ <e3 id="elem3" name="elem3"></e3>
+ <e4 id="elem4" name="elem4"></e4>
+ <e5 xmlns="http://www.uvic.ca" xmlns:a="http://www.w3.org" xmlns:b="http://www.ietf.org" attr="I'm" attr2="all" b:attr="sorted" a:attr="out"></e5>
+ <e6 xmlns:a="http://www.w3.org">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="">
+ <e9 xmlns:a="http://www.ietf.org" attr="default"></e9>
+ </e8>
+ </e7>
+ </e6>
+</doc>
\ No newline at end of file
diff --git a/result/c14n/without-comments/example-5 b/result/c14n/without-comments/example-5
new file mode 100644
index 0000000..c232e74
--- /dev/null
+++ b/result/c14n/without-comments/example-5
@@ -0,0 +1,3 @@
+<doc attrExtEnt="entExt">
+ Hello, world!
+</doc>
\ No newline at end of file
diff --git a/result/c14n/without-comments/example-6 b/result/c14n/without-comments/example-6
new file mode 100644
index 0000000..0be38f9
--- /dev/null
+++ b/result/c14n/without-comments/example-6
@@ -0,0 +1 @@
+<doc>©</doc>
\ No newline at end of file
diff --git a/result/c14n/without-comments/example-7 b/result/c14n/without-comments/example-7
new file mode 100644
index 0000000..0a96cc4
--- /dev/null
+++ b/result/c14n/without-comments/example-7
@@ -0,0 +1 @@
+<e1 xmlns="http://www.ietf.org" xmlns:w3c="http://www.w3.org"><e3 xmlns="" id="E3" xml:space="preserve"></e3></e1>
\ No newline at end of file
diff --git a/result/c14n/without-comments/test-0 b/result/c14n/without-comments/test-0
new file mode 100644
index 0000000..013de33
--- /dev/null
+++ b/result/c14n/without-comments/test-0
@@ -0,0 +1 @@
+I am the text.
\ No newline at end of file
diff --git a/result/c14n/without-comments/test-1 b/result/c14n/without-comments/test-1
new file mode 100644
index 0000000..0150f4a
--- /dev/null
+++ b/result/c14n/without-comments/test-1
@@ -0,0 +1,31 @@
+<X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509SubjectName>
+ CN=Merlin Hughes,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE
+ </X509SubjectName>
+ <X509IssuerSerial>
+ <X509IssuerName>
+ CN=Test DSA CA,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE
+ </X509IssuerName>
+ <X509SerialNumber>970849936</X509SerialNumber>
+ </X509IssuerSerial>
+ <X509Certificate>
+ MIIDNzCCAvWgAwIBAgIEOd3+kDAJBgcqhkjOOAQDMFsxCzAJBgNVBAYTAklFMQ8w
+ DQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9sb2dpZXMs
+ IEx0ZC4xFDASBgNVBAMTC1Rlc3QgRFNBIENBMB4XDTAwMTAwNjE2MzIxNVoXDTAx
+ MTAwNjE2MzIxNFowXTELMAkGA1UEBhMCSUUxDzANBgNVBAgTBkR1YmxpbjElMCMG
+ A1UEChMcQmFsdGltb3JlIFRlY2hub2xvZ2llcywgTHRkLjEWMBQGA1UEAxMNTWVy
+ bGluIEh1Z2hlczCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQDaJjfDTrawMHf8MiUt
+ Y54b37hSmYNnR3KpGT10uU1Dqppcju06uN0iGbqf947DjkBC25hKnqykK31xBw0E
+ CPbYq/KC98kghdf2xJCu6B8aqJ95K9jdVflJ3WP7PQxJn+fmM23zy6HYLXVICpfq
+ etdNj/VHCShZE3bdJiE6VobSFQIVAPQecqS2PaTDprcQnkwx4MHTRXhrAoGAMuGA
+ lqeB1ax+vyO2+Osubjhl7pHxLu47RIH+/M52DjESA9KMSrwzsYx8yNR2WooByrE0
+ t6fu0VncK7UK8olO4t7wpv2z4AFQPRVCKFwo0qgn5aKIkICGMlrRy81avb27wGcW
+ othx3iPPMtFXtoDqK0JItaI9R8zc1msFhM1GKMYDgYQAAoGActA8YGxrtngg/zKV
+ vqEOefnwmViFztcnPBYPlJsvh6yKI4iDm68fnp4Mi3RrJ6bZAygFrUIQLxLjV+OJ
+ tgJAEto0xAs+Mehuq1DkSFEpP3oDzCTOsrOiS1DwQe4oIb7zVk/9l7aPtJMHW0LV
+ lMdwZNFNNJoqMcT2ZfCPrfvYvQ2jRzBFMB4GA1UdEQQXMBWBE21lcmxpbkBiYWx0
+ aW1vcmUuaWUwDgYDVR0PAQH/BAQDAgeAMBMGA1UdIwQMMAqACEJZQG0KwRbPMAkG
+ ByqGSM44BAMDMQAwLgIVAK4skWEFYgrggaJA8vYAwSjg12+KAhUAwHTo7wd4tENw
+ 9LAKPklQ/74fH18=
+ </X509Certificate>
+ </X509Data>
\ No newline at end of file
diff --git a/result/c14n/without-comments/test-2 b/result/c14n/without-comments/test-2
new file mode 100644
index 0000000..c829481
--- /dev/null
+++ b/result/c14n/without-comments/test-2
@@ -0,0 +1,3 @@
+<n1:elem2 xmlns:n0="foo://bar" xmlns:n1="http://example.net" xmlns:n3="ftp://example.org" xml:lang="en">
+ <n3:stuff></n3:stuff>
+ </n1:elem2>
\ No newline at end of file
diff --git a/result/c14n/without-comments/test-3 b/result/c14n/without-comments/test-3
new file mode 100644
index 0000000..318cb19
--- /dev/null
+++ b/result/c14n/without-comments/test-3
@@ -0,0 +1,7 @@
+<e6 xmlns:a="http://www.w3.org" xmlns:foo="http://www.bar.org" test="../baz" xml:base="http://www.example.org/2002/">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="" a:foo="bar">
+ <e9 xmlns:a="http://www.ietf.org" attr="default"></e9>
+ </e8>
+ </e7>
+ </e6>
\ No newline at end of file
diff --git a/test/c14n/exc-without-comments/test-0.xml b/test/c14n/exc-without-comments/test-0.xml
new file mode 100644
index 0000000..c7c42d9
--- /dev/null
+++ b/test/c14n/exc-without-comments/test-0.xml
@@ -0,0 +1,18 @@
+<!DOCTYPE doc [<!ATTLIST e9 attr CDATA "default">]>
+<doc xmlns:foo="http://www.bar.org" xml:base="http://www.example.org/2002/">
+ <e1 />
+ <e2 ></e2>
+ <e3 name = "elem3" id="elem3" />
+ <e4 name="elem4" id="elem4" ></e4>
+ <e5 a:attr="out" b:attr="sorted" attr2="all" attr="I'm"
+ xmlns:b="http://www.ietf.org"
+ xmlns:a="http://www.w3.org"
+ xmlns="http://example.org"/>
+ <e6 xmlns="" test="../baz" xmlns:a="http://www.w3.org">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="" xmlns:a="http://www.w3.org" a:foo="bar">
+ <e9 xmlns="" xmlns:a="http://www.ietf.org"/>
+ </e8>
+ </e7>
+ </e6>
+</doc>
diff --git a/test/c14n/exc-without-comments/test-0.xpath b/test/c14n/exc-without-comments/test-0.xpath
new file mode 100644
index 0000000..faa0070
--- /dev/null
+++ b/test/c14n/exc-without-comments/test-0.xpath
@@ -0,0 +1,3 @@
+<XPath>
+(//. | //@* | //namespace::*)[ancestor-or-self::e6]
+</XPath>
\ No newline at end of file
diff --git a/test/c14n/exc-without-comments/test-1.ns b/test/c14n/exc-without-comments/test-1.ns
new file mode 100644
index 0000000..2e65efe
--- /dev/null
+++ b/test/c14n/exc-without-comments/test-1.ns
@@ -0,0 +1 @@
+a
\ No newline at end of file
diff --git a/test/c14n/exc-without-comments/test-1.xml b/test/c14n/exc-without-comments/test-1.xml
new file mode 100644
index 0000000..c7c42d9
--- /dev/null
+++ b/test/c14n/exc-without-comments/test-1.xml
@@ -0,0 +1,18 @@
+<!DOCTYPE doc [<!ATTLIST e9 attr CDATA "default">]>
+<doc xmlns:foo="http://www.bar.org" xml:base="http://www.example.org/2002/">
+ <e1 />
+ <e2 ></e2>
+ <e3 name = "elem3" id="elem3" />
+ <e4 name="elem4" id="elem4" ></e4>
+ <e5 a:attr="out" b:attr="sorted" attr2="all" attr="I'm"
+ xmlns:b="http://www.ietf.org"
+ xmlns:a="http://www.w3.org"
+ xmlns="http://example.org"/>
+ <e6 xmlns="" test="../baz" xmlns:a="http://www.w3.org">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="" xmlns:a="http://www.w3.org" a:foo="bar">
+ <e9 xmlns="" xmlns:a="http://www.ietf.org"/>
+ </e8>
+ </e7>
+ </e6>
+</doc>
diff --git a/test/c14n/exc-without-comments/test-1.xpath b/test/c14n/exc-without-comments/test-1.xpath
new file mode 100644
index 0000000..faa0070
--- /dev/null
+++ b/test/c14n/exc-without-comments/test-1.xpath
@@ -0,0 +1,3 @@
+<XPath>
+(//. | //@* | //namespace::*)[ancestor-or-self::e6]
+</XPath>
\ No newline at end of file
diff --git a/test/c14n/with-comments/doc.dtd b/test/c14n/with-comments/doc.dtd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/c14n/with-comments/doc.dtd
diff --git a/test/c14n/with-comments/example-1.xml b/test/c14n/with-comments/example-1.xml
new file mode 100644
index 0000000..ed450c7
--- /dev/null
+++ b/test/c14n/with-comments/example-1.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<?xml-stylesheet href="doc.xsl"
+ type="text/xsl" ?>
+
+<!DOCTYPE doc SYSTEM "doc.dtd">
+
+<doc>Hello, world!<!-- Comment 1 --></doc>
+
+<?pi-without-data ?>
+
+<!-- Comment 2 -->
+
+<!-- Comment 3 -->
diff --git a/test/c14n/with-comments/example-2.xml b/test/c14n/with-comments/example-2.xml
new file mode 100644
index 0000000..74eeea1
--- /dev/null
+++ b/test/c14n/with-comments/example-2.xml
@@ -0,0 +1,11 @@
+<doc>
+ <clean> </clean>
+ <dirty> A B </dirty>
+ <mixed>
+ A
+ <clean> </clean>
+ B
+ <dirty> A B </dirty>
+ C
+ </mixed>
+</doc>
diff --git a/test/c14n/with-comments/example-3.xml b/test/c14n/with-comments/example-3.xml
new file mode 100644
index 0000000..a7a1950
--- /dev/null
+++ b/test/c14n/with-comments/example-3.xml
@@ -0,0 +1,18 @@
+<!DOCTYPE doc [<!ATTLIST e9 attr CDATA "default">]>
+<doc>
+ <e1 />
+ <e2 ></e2>
+ <e3 name = "elem3" id="elem3" />
+ <e4 name="elem4" id="elem4" ></e4>
+ <e5 a:attr="out" b:attr="sorted" attr2="all" attr="I'm"
+ xmlns:b="http://www.ietf.org"
+ xmlns:a="http://www.w3.org"
+ xmlns="http://www.uvic.ca"/>
+ <e6 xmlns="" xmlns:a="http://www.w3.org">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="" xmlns:a="http://www.w3.org">
+ <e9 xmlns="" xmlns:a="http://www.ietf.org"/>
+ </e8>
+ </e7>
+ </e6>
+</doc>
diff --git a/test/c14n/with-comments/example-4.xml b/test/c14n/with-comments/example-4.xml
new file mode 100644
index 0000000..3fba138
--- /dev/null
+++ b/test/c14n/with-comments/example-4.xml
@@ -0,0 +1,9 @@
+<!DOCTYPE doc [<!ATTLIST normId id ID #IMPLIED>]>
+<doc>
+ <text>First line
 Second line</text>
+ <value>2</value>
+ <compute><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></compute>
+ <compute expr='value>"0" && value<"10" ?"valid":"error"'>valid</compute>
+ <norm attr=' '   
	 ' '/>
+ <normId id=' '   
	 ' '/>
+</doc>
diff --git a/test/c14n/with-comments/example-5.xml b/test/c14n/with-comments/example-5.xml
new file mode 100644
index 0000000..92c5322
--- /dev/null
+++ b/test/c14n/with-comments/example-5.xml
@@ -0,0 +1,12 @@
+<!DOCTYPE doc [
+<!ATTLIST doc attrExtEnt ENTITY #IMPLIED>
+<!ENTITY ent1 "Hello">
+<!ENTITY ent2 SYSTEM "world.txt">
+<!ENTITY entExt SYSTEM "earth.gif" NDATA gif>
+<!NOTATION gif SYSTEM "viewgif.exe">
+]>
+<doc attrExtEnt="entExt">
+ &ent1;, &ent2;!
+</doc>
+
+<!-- Let world.txt contain "world" (excluding the quotes) -->
diff --git a/test/c14n/with-comments/example-6.xml b/test/c14n/with-comments/example-6.xml
new file mode 100644
index 0000000..31e2071
--- /dev/null
+++ b/test/c14n/with-comments/example-6.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<doc>©</doc>
diff --git a/test/c14n/with-comments/example-7.xml b/test/c14n/with-comments/example-7.xml
new file mode 100644
index 0000000..41171cb
--- /dev/null
+++ b/test/c14n/with-comments/example-7.xml
@@ -0,0 +1,11 @@
+<!DOCTYPE doc [
+<!ATTLIST e2 xml:space (default|preserve) 'preserve'>
+<!ATTLIST e3 id ID #IMPLIED>
+]>
+<doc xmlns="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <e1>
+ <e2 xmlns="">
+ <e3 id="E3"/>
+ </e2>
+ </e1>
+</doc>
diff --git a/test/c14n/with-comments/example-7.xpath b/test/c14n/with-comments/example-7.xpath
new file mode 100644
index 0000000..84ddb08
--- /dev/null
+++ b/test/c14n/with-comments/example-7.xpath
@@ -0,0 +1,10 @@
+<XPath xmlns:ietf="http://www.ietf.org" >
+ (//.|//@*|//namespace::*)
+ [
+ self::ietf:e1
+ or
+ (parent::ietf:e1 and not(self::text() or self::e2))
+ or
+ count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node())
+ ]
+</XPath>
\ No newline at end of file
diff --git a/test/c14n/with-comments/world.txt b/test/c14n/with-comments/world.txt
new file mode 100644
index 0000000..04fea06
--- /dev/null
+++ b/test/c14n/with-comments/world.txt
@@ -0,0 +1 @@
+world
\ No newline at end of file
diff --git a/test/c14n/without-comments/doc.dtd b/test/c14n/without-comments/doc.dtd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/c14n/without-comments/doc.dtd
diff --git a/test/c14n/without-comments/example-1.xml b/test/c14n/without-comments/example-1.xml
new file mode 100644
index 0000000..ed450c7
--- /dev/null
+++ b/test/c14n/without-comments/example-1.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<?xml-stylesheet href="doc.xsl"
+ type="text/xsl" ?>
+
+<!DOCTYPE doc SYSTEM "doc.dtd">
+
+<doc>Hello, world!<!-- Comment 1 --></doc>
+
+<?pi-without-data ?>
+
+<!-- Comment 2 -->
+
+<!-- Comment 3 -->
diff --git a/test/c14n/without-comments/example-2.xml b/test/c14n/without-comments/example-2.xml
new file mode 100644
index 0000000..74eeea1
--- /dev/null
+++ b/test/c14n/without-comments/example-2.xml
@@ -0,0 +1,11 @@
+<doc>
+ <clean> </clean>
+ <dirty> A B </dirty>
+ <mixed>
+ A
+ <clean> </clean>
+ B
+ <dirty> A B </dirty>
+ C
+ </mixed>
+</doc>
diff --git a/test/c14n/without-comments/example-3.xml b/test/c14n/without-comments/example-3.xml
new file mode 100644
index 0000000..a7a1950
--- /dev/null
+++ b/test/c14n/without-comments/example-3.xml
@@ -0,0 +1,18 @@
+<!DOCTYPE doc [<!ATTLIST e9 attr CDATA "default">]>
+<doc>
+ <e1 />
+ <e2 ></e2>
+ <e3 name = "elem3" id="elem3" />
+ <e4 name="elem4" id="elem4" ></e4>
+ <e5 a:attr="out" b:attr="sorted" attr2="all" attr="I'm"
+ xmlns:b="http://www.ietf.org"
+ xmlns:a="http://www.w3.org"
+ xmlns="http://www.uvic.ca"/>
+ <e6 xmlns="" xmlns:a="http://www.w3.org">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="" xmlns:a="http://www.w3.org">
+ <e9 xmlns="" xmlns:a="http://www.ietf.org"/>
+ </e8>
+ </e7>
+ </e6>
+</doc>
diff --git a/test/c14n/without-comments/example-4.xml b/test/c14n/without-comments/example-4.xml
new file mode 100644
index 0000000..3fba138
--- /dev/null
+++ b/test/c14n/without-comments/example-4.xml
@@ -0,0 +1,9 @@
+<!DOCTYPE doc [<!ATTLIST normId id ID #IMPLIED>]>
+<doc>
+ <text>First line
 Second line</text>
+ <value>2</value>
+ <compute><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></compute>
+ <compute expr='value>"0" && value<"10" ?"valid":"error"'>valid</compute>
+ <norm attr=' '   
	 ' '/>
+ <normId id=' '   
	 ' '/>
+</doc>
diff --git a/test/c14n/without-comments/example-5.xml b/test/c14n/without-comments/example-5.xml
new file mode 100644
index 0000000..92c5322
--- /dev/null
+++ b/test/c14n/without-comments/example-5.xml
@@ -0,0 +1,12 @@
+<!DOCTYPE doc [
+<!ATTLIST doc attrExtEnt ENTITY #IMPLIED>
+<!ENTITY ent1 "Hello">
+<!ENTITY ent2 SYSTEM "world.txt">
+<!ENTITY entExt SYSTEM "earth.gif" NDATA gif>
+<!NOTATION gif SYSTEM "viewgif.exe">
+]>
+<doc attrExtEnt="entExt">
+ &ent1;, &ent2;!
+</doc>
+
+<!-- Let world.txt contain "world" (excluding the quotes) -->
diff --git a/test/c14n/without-comments/example-6.xml b/test/c14n/without-comments/example-6.xml
new file mode 100644
index 0000000..31e2071
--- /dev/null
+++ b/test/c14n/without-comments/example-6.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<doc>©</doc>
diff --git a/test/c14n/without-comments/example-7.xml b/test/c14n/without-comments/example-7.xml
new file mode 100644
index 0000000..41171cb
--- /dev/null
+++ b/test/c14n/without-comments/example-7.xml
@@ -0,0 +1,11 @@
+<!DOCTYPE doc [
+<!ATTLIST e2 xml:space (default|preserve) 'preserve'>
+<!ATTLIST e3 id ID #IMPLIED>
+]>
+<doc xmlns="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <e1>
+ <e2 xmlns="">
+ <e3 id="E3"/>
+ </e2>
+ </e1>
+</doc>
diff --git a/test/c14n/without-comments/example-7.xpath b/test/c14n/without-comments/example-7.xpath
new file mode 100644
index 0000000..84ddb08
--- /dev/null
+++ b/test/c14n/without-comments/example-7.xpath
@@ -0,0 +1,10 @@
+<XPath xmlns:ietf="http://www.ietf.org" >
+ (//.|//@*|//namespace::*)
+ [
+ self::ietf:e1
+ or
+ (parent::ietf:e1 and not(self::text() or self::e2))
+ or
+ count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node())
+ ]
+</XPath>
\ No newline at end of file
diff --git a/test/c14n/without-comments/test-0.xml b/test/c14n/without-comments/test-0.xml
new file mode 100644
index 0000000..7e1f9d4
--- /dev/null
+++ b/test/c14n/without-comments/test-0.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!DOCTYPE envelope [
+ <!ENTITY dsig "http://www.w3.org/2000/09/xmldsig#">
+ <!ENTITY c14n "http://www.w3.org/TR/2001/REC-xml-c14n-20010315">
+ <!ENTITY xpath "http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <!ENTITY xslt "http://www.w3.org/TR/1999/REC-xslt-19991116">
+ <!ATTLIST Notaries Id ID #IMPLIED>
+]>
+<Object Id="object-1" MimeType="text/plain">I am the text.</Object>
diff --git a/test/c14n/without-comments/test-0.xpath b/test/c14n/without-comments/test-0.xpath
new file mode 100644
index 0000000..1fca7bf
--- /dev/null
+++ b/test/c14n/without-comments/test-0.xpath
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE envelope [
+ <!ENTITY dsig "http://www.w3.org/2000/09/xmldsig#">
+ <!ENTITY c14n "http://www.w3.org/TR/2001/REC-xml-c14n-20010315">
+ <!ENTITY xpath "http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <!ENTITY xslt "http://www.w3.org/TR/1999/REC-xslt-19991116">
+ <!ATTLIST Notaries Id ID #IMPLIED>
+]>
+<XPath>
+ (//.|//@*|//namespace::*)
+ [
+ self::text()
+ ]
+</XPath>
diff --git a/test/c14n/without-comments/test-1.xml b/test/c14n/without-comments/test-1.xml
new file mode 100644
index 0000000..2156615
--- /dev/null
+++ b/test/c14n/without-comments/test-1.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE envelope [
+ <!ENTITY dsig "http://www.w3.org/2000/09/xmldsig#">
+ <!ENTITY c14n "http://www.w3.org/TR/2001/REC-xml-c14n-20010315">
+ <!ENTITY xpath "http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <!ENTITY xslt "http://www.w3.org/TR/1999/REC-xslt-19991116">
+ <!ATTLIST Notaries Id ID #IMPLIED>
+]>
+ <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="signature">
+ <Object Id="object-4">
+ <X509Data>
+ <X509SubjectName>
+ CN=Merlin Hughes,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE
+ </X509SubjectName>
+ <X509IssuerSerial>
+ <X509IssuerName>
+ CN=Test DSA CA,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE
+ </X509IssuerName>
+ <X509SerialNumber>970849936</X509SerialNumber>
+ </X509IssuerSerial>
+ <X509Certificate>
+ MIIDNzCCAvWgAwIBAgIEOd3+kDAJBgcqhkjOOAQDMFsxCzAJBgNVBAYTAklFMQ8w
+ DQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9sb2dpZXMs
+ IEx0ZC4xFDASBgNVBAMTC1Rlc3QgRFNBIENBMB4XDTAwMTAwNjE2MzIxNVoXDTAx
+ MTAwNjE2MzIxNFowXTELMAkGA1UEBhMCSUUxDzANBgNVBAgTBkR1YmxpbjElMCMG
+ A1UEChMcQmFsdGltb3JlIFRlY2hub2xvZ2llcywgTHRkLjEWMBQGA1UEAxMNTWVy
+ bGluIEh1Z2hlczCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQDaJjfDTrawMHf8MiUt
+ Y54b37hSmYNnR3KpGT10uU1Dqppcju06uN0iGbqf947DjkBC25hKnqykK31xBw0E
+ CPbYq/KC98kghdf2xJCu6B8aqJ95K9jdVflJ3WP7PQxJn+fmM23zy6HYLXVICpfq
+ etdNj/VHCShZE3bdJiE6VobSFQIVAPQecqS2PaTDprcQnkwx4MHTRXhrAoGAMuGA
+ lqeB1ax+vyO2+Osubjhl7pHxLu47RIH+/M52DjESA9KMSrwzsYx8yNR2WooByrE0
+ t6fu0VncK7UK8olO4t7wpv2z4AFQPRVCKFwo0qgn5aKIkICGMlrRy81avb27wGcW
+ othx3iPPMtFXtoDqK0JItaI9R8zc1msFhM1GKMYDgYQAAoGActA8YGxrtngg/zKV
+ vqEOefnwmViFztcnPBYPlJsvh6yKI4iDm68fnp4Mi3RrJ6bZAygFrUIQLxLjV+OJ
+ tgJAEto0xAs+Mehuq1DkSFEpP3oDzCTOsrOiS1DwQe4oIb7zVk/9l7aPtJMHW0LV
+ lMdwZNFNNJoqMcT2ZfCPrfvYvQ2jRzBFMB4GA1UdEQQXMBWBE21lcmxpbkBiYWx0
+ aW1vcmUuaWUwDgYDVR0PAQH/BAQDAgeAMBMGA1UdIwQMMAqACEJZQG0KwRbPMAkG
+ ByqGSM44BAMDMQAwLgIVAK4skWEFYgrggaJA8vYAwSjg12+KAhUAwHTo7wd4tENw
+ 9LAKPklQ/74fH18=
+ </X509Certificate>
+ </X509Data>
+ </Object>
+ </Signature>
\ No newline at end of file
diff --git a/test/c14n/without-comments/test-1.xpath b/test/c14n/without-comments/test-1.xpath
new file mode 100644
index 0000000..3c11e29
--- /dev/null
+++ b/test/c14n/without-comments/test-1.xpath
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE envelope [
+ <!ENTITY dsig "http://www.w3.org/2000/09/xmldsig#">
+ <!ENTITY c14n "http://www.w3.org/TR/2001/REC-xml-c14n-20010315">
+ <!ENTITY xpath "http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <!ENTITY xslt "http://www.w3.org/TR/1999/REC-xslt-19991116">
+ <!ATTLIST Notaries Id ID #IMPLIED>
+]>
+<XPath xmlns:dsig="&dsig;">
+ (//.|//@*|//namespace::*)
+ [
+ ancestor-or-self::dsig:X509Data
+ ]
+</XPath>
diff --git a/test/c14n/without-comments/test-2.xml b/test/c14n/without-comments/test-2.xml
new file mode 100644
index 0000000..9fda49e
--- /dev/null
+++ b/test/c14n/without-comments/test-2.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<n0:local xmlns:n0="foo://bar" xmlns:n3="ftp://example.org">
+ <n1:elem2 xmlns:n1="http://example.net" xml:lang="en">
+ <n3:stuff xmlns:n3="ftp://example.org"/>
+ </n1:elem2>
+</n0:local>
+
+
\ No newline at end of file
diff --git a/test/c14n/without-comments/test-2.xpath b/test/c14n/without-comments/test-2.xpath
new file mode 100644
index 0000000..9653bc3
--- /dev/null
+++ b/test/c14n/without-comments/test-2.xpath
@@ -0,0 +1,8 @@
+
+<XPath xmlns:n1="http://example.net" >
+ (//. | //@* | //namespace::*)
+ [
+ ancestor-or-self::n1:elem2
+ ]
+</XPath>
+
\ No newline at end of file
diff --git a/test/c14n/without-comments/test-3.xml b/test/c14n/without-comments/test-3.xml
new file mode 100644
index 0000000..c7c42d9
--- /dev/null
+++ b/test/c14n/without-comments/test-3.xml
@@ -0,0 +1,18 @@
+<!DOCTYPE doc [<!ATTLIST e9 attr CDATA "default">]>
+<doc xmlns:foo="http://www.bar.org" xml:base="http://www.example.org/2002/">
+ <e1 />
+ <e2 ></e2>
+ <e3 name = "elem3" id="elem3" />
+ <e4 name="elem4" id="elem4" ></e4>
+ <e5 a:attr="out" b:attr="sorted" attr2="all" attr="I'm"
+ xmlns:b="http://www.ietf.org"
+ xmlns:a="http://www.w3.org"
+ xmlns="http://example.org"/>
+ <e6 xmlns="" test="../baz" xmlns:a="http://www.w3.org">
+ <e7 xmlns="http://www.ietf.org">
+ <e8 xmlns="" xmlns:a="http://www.w3.org" a:foo="bar">
+ <e9 xmlns="" xmlns:a="http://www.ietf.org"/>
+ </e8>
+ </e7>
+ </e6>
+</doc>
diff --git a/test/c14n/without-comments/test-3.xpath b/test/c14n/without-comments/test-3.xpath
new file mode 100644
index 0000000..faa0070
--- /dev/null
+++ b/test/c14n/without-comments/test-3.xpath
@@ -0,0 +1,3 @@
+<XPath>
+(//. | //@* | //namespace::*)[ancestor-or-self::e6]
+</XPath>
\ No newline at end of file
diff --git a/test/c14n/without-comments/world.txt b/test/c14n/without-comments/world.txt
new file mode 100644
index 0000000..04fea06
--- /dev/null
+++ b/test/c14n/without-comments/world.txt
@@ -0,0 +1 @@
+world
\ No newline at end of file