summaryrefslogtreecommitdiffstats
path: root/libxml2/test/c14n/1-1-without-comments
diff options
context:
space:
mode:
Diffstat (limited to 'libxml2/test/c14n/1-1-without-comments')
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/doc.dtd1
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-1.xml14
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-2.xml11
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-3.xml18
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-4.xml9
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-5.xml12
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-6.xml2
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-7.xml11
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-7.xpath10
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-8.xml11
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/example-8.xpath10
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/world.txt1
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xml16
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xpath9
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xml16
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xpath9
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xml14
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xpath9
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-1.xml24
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-1.xpath11
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-2.xml23
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-2.xpath10
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-3.xml24
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-3.xpath11
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-4.xml24
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-4.xpath11
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-5.xml24
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-5.xpath11
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-6.xml23
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-6.xpath10
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-7.xml23
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlbase-prop-7.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlid-prop-1.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlid-prop-1.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlid-prop-2.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlid-prop-2.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmllang-prop-1.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmllang-prop-1.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmllang-prop-2.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmllang-prop-2.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmllang-prop-3.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmllang-prop-3.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmllang-prop-4.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmllang-prop-4.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlspace-prop-1.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlspace-prop-1.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlspace-prop-2.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlspace-prop-2.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlspace-prop-3.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlspace-prop-3.xpath10
-rw-r--r--libxml2/test/c14n/1-1-without-comments/xmlspace-prop-4.xml20
-rwxr-xr-xlibxml2/test/c14n/1-1-without-comments/xmlspace-prop-4.xpath10
52 files changed, 722 insertions, 0 deletions
diff --git a/libxml2/test/c14n/1-1-without-comments/doc.dtd b/libxml2/test/c14n/1-1-without-comments/doc.dtd
new file mode 100755
index 0000000..c460239
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/doc.dtd
@@ -0,0 +1 @@
+<!-- Empty DTD --> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/example-1.xml b/libxml2/test/c14n/1-1-without-comments/example-1.xml
new file mode 100755
index 0000000..ed450c7
--- /dev/null
+++ b/libxml2/test/c14n/1-1-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/libxml2/test/c14n/1-1-without-comments/example-2.xml b/libxml2/test/c14n/1-1-without-comments/example-2.xml
new file mode 100755
index 0000000..74eeea1
--- /dev/null
+++ b/libxml2/test/c14n/1-1-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/libxml2/test/c14n/1-1-without-comments/example-3.xml b/libxml2/test/c14n/1-1-without-comments/example-3.xml
new file mode 100755
index 0000000..a7a1950
--- /dev/null
+++ b/libxml2/test/c14n/1-1-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/libxml2/test/c14n/1-1-without-comments/example-4.xml b/libxml2/test/c14n/1-1-without-comments/example-4.xml
new file mode 100755
index 0000000..3fba138
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/example-4.xml
@@ -0,0 +1,9 @@
+<!DOCTYPE doc [<!ATTLIST normId id ID #IMPLIED>]>
+<doc>
+ <text>First line&#x0d;&#10;Second line</text>
+ <value>&#x32;</value>
+ <compute><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></compute>
+ <compute expr='value>"0" &amp;&amp; value&lt;"10" ?"valid":"error"'>valid</compute>
+ <norm attr=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>
+ <normId id=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>
+</doc>
diff --git a/libxml2/test/c14n/1-1-without-comments/example-5.xml b/libxml2/test/c14n/1-1-without-comments/example-5.xml
new file mode 100755
index 0000000..92c5322
--- /dev/null
+++ b/libxml2/test/c14n/1-1-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/libxml2/test/c14n/1-1-without-comments/example-6.xml b/libxml2/test/c14n/1-1-without-comments/example-6.xml
new file mode 100755
index 0000000..31e2071
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/example-6.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<doc>&#169;</doc>
diff --git a/libxml2/test/c14n/1-1-without-comments/example-7.xml b/libxml2/test/c14n/1-1-without-comments/example-7.xml
new file mode 100755
index 0000000..41171cb
--- /dev/null
+++ b/libxml2/test/c14n/1-1-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/libxml2/test/c14n/1-1-without-comments/example-7.xpath b/libxml2/test/c14n/1-1-without-comments/example-7.xpath
new file mode 100755
index 0000000..84ddb08
--- /dev/null
+++ b/libxml2/test/c14n/1-1-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/libxml2/test/c14n/1-1-without-comments/example-8.xml b/libxml2/test/c14n/1-1-without-comments/example-8.xml
new file mode 100755
index 0000000..a07f6c7
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/example-8.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" xml:base="something/else">
+ <e1>
+ <e2 xmlns="" xml:id="abc" xml:base="bar/">
+ <e3 id="E3" xml:base="foo"/>
+ </e2>
+ </e1>
+</doc>
diff --git a/libxml2/test/c14n/1-1-without-comments/example-8.xpath b/libxml2/test/c14n/1-1-without-comments/example-8.xpath
new file mode 100755
index 0000000..84ddb08
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/example-8.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/libxml2/test/c14n/1-1-without-comments/world.txt b/libxml2/test/c14n/1-1-without-comments/world.txt
new file mode 100755
index 0000000..04fea06
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/world.txt
@@ -0,0 +1 @@
+world \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xml
new file mode 100644
index 0000000..18b7c75
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xml
@@ -0,0 +1,16 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-c14n11spec-102
+
+Check that correct xml:base fixup is performed.
+-->
+<!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" xml:base="http://www.example.com/something/else">
+ <e1>
+ <e2 xmlns="" xml:id="abc" xml:base="../bar/">
+ <e3 id="E3" xml:base="foo"/>
+ </e2>
+ </e1>
+</doc> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xpath
new file mode 100644
index 0000000..e919acc
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xpath
@@ -0,0 +1,9 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-c14n11spec-102
+
+Check that correct xml:base fixup is performed.
+-->
+<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>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xml
new file mode 100644
index 0000000..d271afd
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xml
@@ -0,0 +1,16 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-c14n11spec2-102
+
+Check that correct xml:base fixup is performed.
+-->
+<!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" xml:base="something/else">
+ <e1>
+ <e2 xmlns="" xml:id="abc" xml:base="bar/">
+ <e3 id="E3" xml:base="foo"/>
+ </e2>
+ </e1>
+</doc> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xpath
new file mode 100644
index 0000000..cdaad3e
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xpath
@@ -0,0 +1,9 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-c14n11spec2-102
+
+Check that correct xml:base fixup is performed.
+-->
+<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>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xml
new file mode 100644
index 0000000..f46e1e9
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-c14n11spec3-102
+
+Check that correct xml:base fixup is performed.
+-->
+<a xml:base="foo/bar">
+ <b xml:base="..">
+ <c xml:base="..">
+ <d xml:base="x">
+ </d>
+ </c>
+ </b>
+</a>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xpath
new file mode 100644
index 0000000..1d8dd71
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xpath
@@ -0,0 +1,9 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-c14n11spec2-102
+
+Check that correct xml:base fixup is performed.
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[self::a or ancestor-or-self::d]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-1.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-1.xml
new file mode 100755
index 0000000..24a899b
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-1.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-1
+
+Check that implementations of [XML-C14N1.1] work properly when the
+xml:base origin appears in the output document subset and also children
+with xml:base, which do not require further processing, are also present.
+-->
+<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
+ <ietf:e1 xml:base="/xmlbase1/">
+ <ietf:e11 xml:base="/xmlbase11/">
+ <ietf:e111 xml:base="/xmlbase111/"/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 xml:base="/xmlbase121/"/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2>
+ <ietf:e21 xml:base="/xmlbase21/"/>
+ </ietf:e2>
+ <ietf:e3>
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlBaseDoc1>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-1.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-1.xpath
new file mode 100755
index 0000000..168e98d
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-1.xpath
@@ -0,0 +1,11 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-1
+
+Check that implementations of [XML-C14N1.1] work properly when the
+xml:base origin appears in the output document subset and also children
+with xml:base, which do not require further processing, are also present.
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:c14n11XmlBaseDoc1 and not(ancestor-or-self::ietf:e2)]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-2.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-2.xml
new file mode 100755
index 0000000..4c85329
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-2.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-2
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base
+at the first level (ietf:e1).
+-->
+<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
+ <ietf:e1 xml:base="/xmlbase1/">
+ <ietf:e11 xml:base="/xmlbase11/">
+ <ietf:e111 xml:base="/xmlbase111/"/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 xml:base="/xmlbase121/"/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2>
+ <ietf:e21 xml:base="/xmlbase21/"/>
+ </ietf:e2>
+ <ietf:e3>
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlBaseDoc1>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-2.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-2.xpath
new file mode 100755
index 0000000..fdab085
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-2.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-2
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base
+at the first level (ietf:e1).
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e1]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-3.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-3.xml
new file mode 100755
index 0000000..19ce738
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-3.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-3
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base
+if one of intermediate the levels (ietf:e1) are absent from the document
+subset.
+-->
+<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
+ <ietf:e1 xml:base="/xmlbase1/">
+ <ietf:e11 xml:base="/xmlbase11/">
+ <ietf:e111 xml:base="/xmlbase111/"/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 xml:base="/xmlbase121/"/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2>
+ <ietf:e21 xml:base="/xmlbase21/"/>
+ </ietf:e2>
+ <ietf:e3>
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlBaseDoc1>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-3.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-3.xpath
new file mode 100755
index 0000000..de87508
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-3.xpath
@@ -0,0 +1,11 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-3
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base
+if one of intermediate the levels (ietf:e1) are absent from the document
+subset.
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e11]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-4.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-4.xml
new file mode 100755
index 0000000..57e4436
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-4.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-4
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base
+if several intermediate levels (ietf:e1 and ietf:e11) are absent from
+the document subset.
+-->
+<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
+ <ietf:e1 xml:base="/xmlbase1/">
+ <ietf:e11 xml:base="/xmlbase11/">
+ <ietf:e111 xml:base="/xmlbase111/"/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 xml:base="/xmlbase121/"/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2>
+ <ietf:e21 xml:base="/xmlbase21/"/>
+ </ietf:e2>
+ <ietf:e3>
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlBaseDoc1>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-4.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-4.xpath
new file mode 100755
index 0000000..818ef10
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-4.xpath
@@ -0,0 +1,11 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-4
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base
+if several intermediate levels (ietf:e1 and ietf:e11) are absent from
+the document subset.
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e111]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-5.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-5.xml
new file mode 100755
index 0000000..f92a897
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-5.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-5
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base
+if one intermediate level (ietf:e2) without any xml:base attribute is absent
+from the document subset.
+-->
+<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
+ <ietf:e1 xml:base="/xmlbase1/">
+ <ietf:e11 xml:base="/xmlbase11/">
+ <ietf:e111 xml:base="/xmlbase111/"/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 xml:base="/xmlbase121/"/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2>
+ <ietf:e21 xml:base="/xmlbase21/"/>
+ </ietf:e2>
+ <ietf:e3>
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlBaseDoc1>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-5.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-5.xpath
new file mode 100755
index 0000000..7020803
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-5.xpath
@@ -0,0 +1,11 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-5
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base
+if one intermediate level (ietf:e2) without any xml:base attribute is absent
+from the document subset.
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e21]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-6.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-6.xml
new file mode 100755
index 0000000..62824f9
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-6.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-6
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base in
+one element that originally had no xml:base attribute.
+-->
+<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
+ <ietf:e1 xml:base="/xmlbase1/">
+ <ietf:e11 xml:base="/xmlbase11/">
+ <ietf:e111 xml:base="/xmlbase111/"/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 xml:base="/xmlbase121/"/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2>
+ <ietf:e21 xml:base="/xmlbase21/"/>
+ </ietf:e2>
+ <ietf:e3>
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlBaseDoc1>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-6.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-6.xpath
new file mode 100755
index 0000000..2b93c64
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-6.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-6
+
+Check that implementations of [XML-C14N1.1] properly build the xml:base in
+one element that originally had no xml:base attribute.
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e3]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-7.xml b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-7.xml
new file mode 100755
index 0000000..ee13916
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-7.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-7
+
+Check that implementations of [XML-C14N1.1] do not pass the xml:base
+to another element when it is not necessary.
+-->
+<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
+ <ietf:e1 xml:base="/xmlbase1/">
+ <ietf:e11 xml:base="/xmlbase11/">
+ <ietf:e111 xml:base="/xmlbase111/"/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 xml:base="/xmlbase121/"/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2>
+ <ietf:e21 xml:base="/xmlbase21/"/>
+ </ietf:e2>
+ <ietf:e3>
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlBaseDoc1>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-7.xpath b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-7.xpath
new file mode 100755
index 0000000..7d37ab8
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlbase-prop-7.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-7
+
+Check that implementations of [XML-C14N1.1] do not pass the xml:base
+to another element when it is not necessary.
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:c14n11XmlBaseDoc1 and not(ancestor-or-self::ietf:e1 or ancestor-or-self::ietf:e2)]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlid-prop-1.xml b/libxml2/test/c14n/1-1-without-comments/xmlid-prop-1.xml
new file mode 100644
index 0000000..ca58c2b
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlid-prop-1.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLID
+
+Check that implementations of [XML-C14N1.1] handle xml:id attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11XmlIdDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:id="IdInterop">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11XmlIdDoc1> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlid-prop-1.xpath b/libxml2/test/c14n/1-1-without-comments/xmlid-prop-1.xpath
new file mode 100755
index 0000000..dc5573c
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlid-prop-1.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLID
+
+Check that implementations of [XML-C14N1.1] handle xml:id attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e1]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlid-prop-2.xml b/libxml2/test/c14n/1-1-without-comments/xmlid-prop-2.xml
new file mode 100644
index 0000000..ca58c2b
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlid-prop-2.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLID
+
+Check that implementations of [XML-C14N1.1] handle xml:id attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11XmlIdDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:id="IdInterop">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11XmlIdDoc1> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlid-prop-2.xpath b/libxml2/test/c14n/1-1-without-comments/xmlid-prop-2.xpath
new file mode 100755
index 0000000..bed44b7
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlid-prop-2.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLID
+
+Check that implementations of [XML-C14N1.1] handle xml:id attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e11 or ancestor-or-self::ietf:e12]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmllang-prop-1.xml b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-1.xml
new file mode 100644
index 0000000..1111e33
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-1.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLLANG
+
+Check that implementations of [XML-C14N1.1] handle xml:lang attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11Xmllang xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:lang="EN">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11Xmllang> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmllang-prop-1.xpath b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-1.xpath
new file mode 100755
index 0000000..224924e
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-1.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLLANG
+
+Check that implementations of [XML-C14N1.1] handle xml:lang attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e1]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmllang-prop-2.xml b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-2.xml
new file mode 100644
index 0000000..1111e33
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-2.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLLANG
+
+Check that implementations of [XML-C14N1.1] handle xml:lang attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11Xmllang xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:lang="EN">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11Xmllang> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmllang-prop-2.xpath b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-2.xpath
new file mode 100755
index 0000000..ca21758
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-2.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLLANG
+
+Check that implementations of [XML-C14N1.1] handle xml:lang attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e2]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmllang-prop-3.xml b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-3.xml
new file mode 100644
index 0000000..1111e33
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-3.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLLANG
+
+Check that implementations of [XML-C14N1.1] handle xml:lang attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11Xmllang xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:lang="EN">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11Xmllang> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmllang-prop-3.xpath b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-3.xpath
new file mode 100755
index 0000000..86e77fa
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-3.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLLANG
+
+Check that implementations of [XML-C14N1.1] handle xml:lang attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e11]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmllang-prop-4.xml b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-4.xml
new file mode 100644
index 0000000..1111e33
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-4.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLLANG
+
+Check that implementations of [XML-C14N1.1] handle xml:lang attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11Xmllang xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:lang="EN">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11Xmllang> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmllang-prop-4.xpath b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-4.xpath
new file mode 100755
index 0000000..fdc7661
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmllang-prop-4.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLLANG
+
+Check that implementations of [XML-C14N1.1] handle xml:lang attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e11 or ancestor-or-self::ietf:e12]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-1.xml b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-1.xml
new file mode 100644
index 0000000..62da9e4
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-1.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLSPACE
+
+Check that implementations of [XML-C14N1.1] handle xml:space attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11XmlSpaceDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:space="true">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11XmlSpaceDoc1> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-1.xpath b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-1.xpath
new file mode 100755
index 0000000..bad373a
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-1.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLSPACE
+
+Check that implementations of [XML-C14N1.1] handle xml:space attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e1]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-2.xml b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-2.xml
new file mode 100644
index 0000000..62da9e4
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-2.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLSPACE
+
+Check that implementations of [XML-C14N1.1] handle xml:space attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11XmlSpaceDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:space="true">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11XmlSpaceDoc1> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-2.xpath b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-2.xpath
new file mode 100755
index 0000000..ffb7d85
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-2.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLSPACE
+
+Check that implementations of [XML-C14N1.1] handle xml:space attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e2]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-3.xml b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-3.xml
new file mode 100644
index 0000000..62da9e4
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-3.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLSPACE
+
+Check that implementations of [XML-C14N1.1] handle xml:space attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11XmlSpaceDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:space="true">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11XmlSpaceDoc1> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-3.xpath b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-3.xpath
new file mode 100755
index 0000000..3f27aed
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-3.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLSPACE
+
+Check that implementations of [XML-C14N1.1] handle xml:space attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e11]
+</XPath>
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-4.xml b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-4.xml
new file mode 100644
index 0000000..62da9e4
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-4.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLSPACE
+
+Check that implementations of [XML-C14N1.1] handle xml:space attributes
+as defined in [XML-C14N1.1]
+-->
+<ietf:c14n11XmlSpaceDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <ietf:e1 xml:space="true">
+ <ietf:e11>
+ <ietf:e111 />
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 />
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 >
+ <ietf:e21 />
+ </ietf:e2>
+</ietf:c14n11XmlSpaceDoc1> \ No newline at end of file
diff --git a/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-4.xpath b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-4.xpath
new file mode 100755
index 0000000..49c4395
--- /dev/null
+++ b/libxml2/test/c14n/1-1-without-comments/xmlspace-prop-4.xpath
@@ -0,0 +1,10 @@
+<!--
+http://www.w3.org/TR/xmldsig2ed-tests/#XMLSPACE
+
+Check that implementations of [XML-C14N1.1] handle xml:space attributes
+as defined in [XML-C14N1.1]
+-->
+<XPath xmlns:ietf="http://www.ietf.org" >
+(//. | //@* | //namespace::*)
+[ancestor-or-self::ietf:e11 or ancestor-or-self::ietf:e12]
+</XPath>